Эффект CrossFade в Flash с AS 3.0

Я пытаюсь сделать плавно накладывать эффект, и я имею

TransitionManager.start (imageHolder, {type:Fade, direction:Transition. В, duration:0.75});

Который заставляет изображение постепенно появиться, но я также хочу, чтобы изображение постепенно исчезло, который оно не делает, когда я изменяю direction:Transition. В к direction:Transition.

Кто-либо знает то, что я пропускаю?Спасибо!

1
задан Bill 10 August 2010 в 19:35
поделиться

1 ответ

Используйте Greensocks TweenLite. Ваша жизнь станет лучше от этого. Та же строка с TweenLite была бы:

TweenLite.to(imageHolder, 0.75, {alpha:1});

Затем для затухания вы бы сделали:

TweenLite.to(imageHolder, 0.75, {alpha:0});

Вы также можете сделать это простое затухание, используя булевский флаг и на enterFrame вот так:

var fadeIn:Boolean = true;

addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(e:Event):void 
{
    var easeSpeed:Number = 0.4;
    var targetAlpha:Number = (fadeIn) ? 1 : 0;
    imageHolder.alpha += (1 - imageHolder.alpha) * easeSpeed;
}

просто установите fadeIn в true или false в любом другом месте вашего кода, и enterframe позаботится о затухании. targetAlpha устанавливается с помощью троичного оператора, который проверяет, true или false fadeIn. Если верно, то targetAlpha устанавливается в 1, иначе - в 0. Последняя строка в функции enterFrameHandler - это простой алгоритм облегчения, который облегчает движение к цели на процент каждый кадр. Отрегулируйте easeSpeed, пока это не будет выглядеть правильно.

2
ответ дан 2 September 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: