AS3 Tween Easing

Я установил наведение и зависание анимации на определенный элемент во флэш-памяти, когда вы наводите курсор на элемент, и информационное окно скользит вниз, а когда вы наводите курсор, оно скользит назад. При наведении курсора, когда я прекращаю работу до окончания анимации при наведении, данный объект переходит в конец первой анимации и обратно. Как сделать анимацию более легкой, когда кто-то наводит курсор на что-то?

function initialPlacement()
{
    block1.x = (-814);
    block1.y = (stage.stageHeight - 100);
}

initialPlacement();

tension.addEventListener(MouseEvent.ROLL_OVER,hover1);
tension.addEventListener(MouseEvent.ROLL_OUT,off1);

function hover1(event:MouseEvent):void{
    hover1tween.start();
}

var hover1tween:Tween = new Tween(block1,"x",Regular.easeOut,(0-block1.width),0,30,false);

hover1tween.stop();

function off1(event:MouseEvent):void{
    off1tween.start();
}

var off1tween:Tween = new Tween(block1,"x",Regular.easeInOut,0,(0-block1.width),30,false);
off1tween.stop();

initialPlacement();

1 ответ

Я полагаю, что самым простым способом было бы использование функции continueTo, которая будет отправлять анимацию в новом направлении, а не перезапускать ее.

function initialPlacement()
{
    block1.x = (-814);
    block1.y = (stage.stageHeight - 100);

    block1tween = new Tween(block1,"x",Regular.easeInOut,(0-block1.width),0,30,false);
    block1tween.stop();
}

var block1tween:Tween;
initialPlacement();

tension.addEventListener(MouseEvent.ROLL_OVER,hover1);
tension.addEventListener(MouseEvent.ROLL_OUT,off1);

function hover1(event:MouseEvent):void{
    block1tween.continueTo(0, 30);
}

function off1(event:MouseEvent):void{
    block1tween.continueTo((0-block1.width),30);
}

Это отвечает вашим потребностям? В противном случае вы могли бы заменить анимацию новым, каждый раз передавая текущие координаты в параметре "begin" Tween, но я считаю, что просто использовать continueTo() намного проще и чище.

Другие вопросы по тегам