[英]DisplayObjects as animation frames? AS3
如何將displayObjects用作動畫框架?
我的圖書館中有六個符號,我想用一個計時器作為動畫。 優點是可以更改動畫的速度,並消除了混亂的時間線。
唯一的缺點是庫中對象的初始設置。 我已經嘗試過開關/案例設計模式,visible = true和z深度,但是我無法使其正常工作。 有什么答案嗎?
//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
這樣的事情。 編寫本文的目的是為了提高可讀性,而不是性能或可擴展性,但是它應該使您走上正確的道路。
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.