ActionScript 3 Alpha Tweening - PullRequest
       32

ActionScript 3 Alpha Tweening

0 голосов
/ 02 июня 2011

Я создаю пользовательский предварительный загрузчик, который отличается от «традиционной» скользящей панели, которая является обычной в RIA. Прелоадер использует 100 белых лазерных лучей, которые расположены по прямой линии, и вместе они показывают индикатор выполнения. Позвольте мне описать, как это работает, прежде чем я задам свой вопрос:

................. ....... ,,,,,,,,, ::::::::::: :::::::::::::: BBBBBBBB и так далее ...

Приведенная выше строка отражает дух индикатора предварительного загрузчика. На этом рисунке, чем крупнее и толще персонаж, тем ярче лазерный луч в моем настоящем прелоадере:

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

Шаг "2" - вот где все становится сложнее. По какой-то причине пробные лазеры не становятся темнее, за исключением нескольких случайных лазеров. Вот фрагмент кода, управляющего яркостью (или, как я уже использовал, свойством альфа) точки:

... more code ...

//Build the dots according the configuration and load status parameters
  private function buildDots(x:int, y:int):void {
  //Draw the dot, details not shown
    var dot:Shape = new Shape();

  //Begin the transitioning
    this.fadeOn(dot);
  }

//Fade a dot to full brightness
  private function fadeOn(dot:Shape):void {
    var fadeOn:Tween = new Tween(dot, "alpha", None.easeNone, 0, 1, this.fadeOnTime, true);

      fadeOn.addEventListener(TweenEvent.MOTION_FINISH, fadeOff);
  }

//Fade a dot to black
  private function fadeOff(e:TweenEvent):void {
    var fadeOff:Tween = new Tween(e.target.obj, "alpha", None.easeNone, 1, .2, this.fadeOffTime, true);
  }

... more code ...

Может кто-нибудь показать мне, где я иду не так? Эти данные могут помочь:

  1. Весь этот preloader находится внутри пользовательского класса.
  2. Лазерные лучи создаются полностью кодом, без доступа к библиотеке.

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

Спасибо за ваше время!

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Я вижу встроенную функцию.

Я бы перекодировал с использованием мощных классов TweenMax от Greensockhttp://www.greensock.com/tweenmax/

0 голосов
/ 02 июня 2011

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

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

...