Хорошо, поэтому мне удалось приблизительно определить, что я хотел, используя два таймера:
package {
import flash.display.MovieClip;
import flash.events.*;
import gs.TweenLite;
import fl.motion.easing.*;
import flash.utils.Timer;
public class ImageTile extends MovieClip {
public function ImageTile() {
var atimer:Timer = new Timer(Math.floor(Math.random()*20*1000),1);
atimer.addEventListener(TimerEvent.TIMER, initSquares);
atimer.start();
}
function initSquares(e:Event) {
//trace("should be 15 of these, no more!");
var timer:Timer = new Timer(10000);
timer.addEventListener(TimerEvent.TIMER, fade);
timer.start();
}
function fade(e:Event) {
TweenLite.to(this, 2, {alpha:Math.random()});
}
}
}
По сути, мое главное требование состояло в том, чтобы каждый квадрат делал анимацию постепенного изменения с фиксированным интервалом между ними, и чтобы все они не делали это на одном и том же интервале. Я уверен, что это не так чисто, как могло бы быть, поэтому любой рефакторинг был бы признателен.
Также отмечу, что я использую библиотеку TweenLite для своего затухания.