Просмотр полной версии : Плавное возвращение
Вобщем вопрос такой) Есть ползунок (movieClip), нужно чтобы он перетаскивался при нажатии на нём мышкой. Причём если он не передвинут в противоположный конец - то совершался бы плавный откат на исходное положение. Код должен находиться на самом мувиклипе... Перетаскивание получилось, плавный откат - нет...Подскажите что не так, вот код:
on (press)
{
startDrag (this, true, 40, 85, 200, 85);
}
on (release)
{
stopDrag ();
if (this._x < 200)
{
this._x = this._x-1;
}
else
{
_root.gotoAndPlay(2);
this._x = 40;
this._y = 85;
}
}
Что за бред про то что код должен быть на мувиклипе?
Вот нормальная реализация. там разберешься
var id;
var setTime = 2;
var fadeTime = 100;
btn.onPress = function() { clearInterval(id); this.startDrag("",false, 40,0,200,0) }
btn.onRelease = checkPoint;
function checkPoint() {
btn.stopDrag();
if(btn._x < 200) { clearInterval(id); id= setInterval(fade,fadeTime) } else { clearInterval(id); }
}
function fade() {
if(btn._x>40 && btn._x <200) { btn._x = btn._x-setTime }
else { clearInterval(id); }
}
не пашет, ещё варианты будут? по возможности дополните мой код
все там пашет. разобраться вам надо сначала. А не просить написать за вас готовый скрипт. что впринципе я уже и сделал
Добавлено через 10 минут
Щас ради интереса даже проверил что я тут наобум написал. Написал я все верно, тока скорость мелкую задал и координаты немного не так.
Создай на сцене клип btn помести его в 0-0 координаты и напиши код :
var id;
var setTime = 2;
var fadeTime = 10;
btn.onPress = function() {
clearInterval(id);
this.startDrag("",false,0,500,0,0);
};
btn.onRelease = btn.onReleaseOutside = checkPoint;
function checkPoint() {
btn.stopDrag();
if (btn._x<500) {
clearInterval(id);
id = setInterval(fade, fadeTime);
} else {
clearInterval(id);
}
}
function fade() {
if (btn._x>0 && btn._x<500) {
btn._x = btn._x-setTime;
} else {
clearInterval(id);
}
}
Вот так, например (см. вложение):
import mx.transitions.Tween;
var timeToBack:Number = 0.5; //время на откат
var xLimitLeft:Number = 45;
var xLimitRight:Number = 450;
var x0:Number = fader._x ; //запоминаем начальное положение
fader.onPress = function () {
this.startDrag(false, xLimitLeft, this._y, xLimitRight, this._y);
};
fader.onRelease = fader.onReleaseOutside = function () {
this.stopDrag();
if (this._x != xLimitLeft && this._x != xLimitRight) {
backIt(this);
}
};
function backIt (mc:MovieClip) {
var back:Tween = new Tween (mc, '_x', mx.transitions.easing.Strong.easeOut, mc._x, x0, timeToBack, true);
}
Сделал! :)
function goback()
{
if (goingback)
{
slider._x = slider._x - 20;
} // end if
if (slider._x <= 42)
{
slider._x = 40;
clearInterval(intervalid);
goingback = false;
}
}
goingback = false;
slider.onPress = function()
{
clearInterval(id);
this.startDrag("",false,85,200,85,40);
};
slider.onMouseUp = function ()
{
this.stopDrag();
if (slider._x < 200)
{
goingback = true;
intervalid = setInterval(goback, 1);
}
else
{
_root.gotoAndPlay(2);
slider._x = 40;
slider._y = 85;
} // end else if
};
stop ();
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.