Загрузка внешних изображений, а затем исчезновение между ними с помощью ActionScript 3.0 ...? - PullRequest
0 голосов
/ 16 августа 2010

Я использую класс Loader в AS3.0 для загрузки внешних изображений.Мне нужно каждый раз загружать случайное изображение, и я использую таймер для загрузки нового изображения через 5 секунд или около того.Когда я загружаю первое изображение, я звоню ...

myMovieClip.addChild(loader);

После первого звонка ...

if (myMovieClip.numChildren > 0) {
  myMovieClip.addChildAt(loader, 1);
}

Итак, это должно добавить вновь загруженное изображение позадипервый ... который, кажется, работает ...

Следующий шаг, который я хочу сделать, - это постепенное исчезновение между этими двумя клипами, так что один передний исчезает через пару секунд, а затем, наконец,удаляется, когда он невидимЕще через несколько секунд я загружаю следующий и повторяю процесс.

В настоящее время я запускаю таймер, и когда он срабатывает, я делаю это ...

if (Loader(myMovieClip.getChildAt(0)).content.alpha <= 0)
{
  // Check if the alpha value is 0...if so, remove the image and stop the timer
  myMovieClip.removeChildAt(0);
  timer.stop();
}
else
{
  // Increase transparency
  Loader(myMovieClip.getChildAt(0)).content.alpha -= 0.1;
}

Проблема в том, чтомоя рутина не работает.Одно изображение загружается, а следующее появляется сразу же после завершения загрузки.

Мой код выглядит как хак ... есть ли лучший способ, который на самом деле работает ...?

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

Несколько указателей.

Перед добавлением изображения убедитесь, что его альфа равно 0, в противном случае ваше изображение будет отображаться мгновенно.

Фокс прав, вы можете использовать класс для обработки замирания или изображения, а именноанимация альфа-свойства изображения.Лично я предпочитаю использовать TweenMax или TweenLite (greensock.com), но есть много разных классов, которые могут справиться с этим очень хорошо.

Вы можете использовать событие onComplete вашего класса анимации, чтобы удалить изображение, когда оно больше не видно.

Вы должны убедиться, что следующее изображение загружено перед запуском процедуры замирания, поэтомуЯ бы посоветовал вызвать следующее изображение, как только загрузится предыдущее, и проверить его с помощью логического выражения перед запуском процедуры затухания.

0 голосов
/ 16 августа 2010

Попробуйте использовать класс AS3 Tween: http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/transitions/Tween.html

Используя его, всякий раз, когда вы загружаете другое изображение, просто создайте анимацию, чтобы затемнить существующее изображение, и другую анимацию, чтобы затемнить в новом изображении.

Вот пример использования класса Tween: http://www.zedia.net/actionscript-3-tweens-tutorial/

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