簡體   English   中英

DisplayObjects作為動畫幀? AS3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM