Flash CS4, положение рамки кадра после мыши - PullRequest
1 голос
/ 18 ноября 2009

У меня есть небольшой скрипт, который перемещает головку кадра назад и вперед в зависимости от того, где моя координата mouseX находится внутри основного flash-ролика. Вот мой код, и он работает до сих пор:

function onEnterFrame(event:Event):void
{
    var frame:Number = Math.round(mouseX / (stage.stageWidth / animation.totalFrames));
    animation.gotoAndStop(frame);
}

Однако, когда курсор мыши X покидает окно Flash при x = 0, левый край фильма и мышь снова входит в окно Flash на stage.stageWidth, правый край фильма, весь фильм скачет / рывки до последнего фреймворка.

Теперь это как раз то, что нужно, но я хочу смягчить эффект перехода от экс. кадр 0 до кадра 30.

Так что вместо того, чтобы показывать 30, должен быть плавный переход. Может кто-нибудь предложить, как манипулировать вышеупомянутой функцией, чтобы включить такое поведение!

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009

Вы можете использовать уравнение замедления, например:

var finalFrame:uint=0;
function onEnterFrame(event:Event):void {
    var frame:Number = Math.round(mouseX / (stage.stageWidth / animation.totalFrames));
    finalFrame+=(frame-finalFrame)*0.2; //simple easing
    animation.gotoAndStop(finalFrame);
}

Или вы могли бы даже использовать анимацию для более плавного перехода ...

1 голос
/ 19 ноября 2009

Окончательное решение:

function onEnterFrame(event:Event):void
{
    var frame:Number = mouseX / (stage.stageWidth / animation.totalFrames);
    var newFrame:Number = animation.currentFrame + ((frame - animation.currentFrame) / 3);
    animation.gotoAndStop(Math.round(newFrame));
}

Уф !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...