如何将displayObjects用作动画帧?
我的库中有六个符号,我想用计时器制作动画。优点是能够改变动画的速度,消除凌乱的时间线。
唯一的缺点是库中对象的初始设置。我已经尝试过开关/案例设计模式,visible = true和z-depth,但我无法让它正常工作。有什么答案吗?
//setup code
var timer:Timer = new Timer(100, 20);
timer.addEventListener(TimerEvent.TIMER, countdown);
function countdown(event:TimerEvent) {
myText.text = String(0 + timer.currentCount);
}
timer.start();
var frame1:Frame1 = new Frame1;
addChild(frame1);
//frame1.visible = false
var frame2:Frame2 = new Frame2;
addChild(frame2);
//frame1.visible = false
var frame3:Frame3 = new Frame3;
addChild(frame3);
//frame1.visible = false
var frame4:Frame4 = new Frame4;
addChild(frame4);
//frame1.visible = false
var frame5:Frame5 = new Frame5;
addChild(frame5);
//frame1.visible = false
var frame6:Frame6 = new Frame6;
addChild(frame6);
//frame1.visible = false
答案 0 :(得分:1)
像这样的东西。这是为了可读性而不是性能或可扩展性而编写的,但应该让您走上正确的轨道。
var frames:Array = [
new Frame1(),
new Frame2(),
new Frame3(),
new Frame4(),
new Frame5(),
new Frame6()
];
for each (var frame:Sprite in frames) {
addChild(frame);
}
var timer:Timer = new Timer(100);
timer.addEventListener(TimerEvent.TIMER, countdown);
function countdown(event:TimerEvent) {
myText.text = String(0 + timer.currentCount);
var currentFrame:int = timer.currentCount % frames.length;
for (var i:int = 0; i < frames.length; ++i) {
frames[i].visible = (i == currentFrame);
}
}
timer.start();