DisplayObjects как кадры анимации? AS3 - PullRequest
0 голосов
/ 06 апреля 2010

Как я могу использовать displayObjects в качестве кадров анимации?
В моей библиотеке шесть символов, которые я хочу анимировать с помощью таймера.Преимуществом будет возможность изменять скорость анимации и устранять грязную временную шкалу.

Единственным недостатком является начальная настройка объектов в библиотеке.Я пробовал шаблоны проектирования switch / case, 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

1 Ответ

1 голос
/ 06 апреля 2010

Как то так. Это написано для удобочитаемости, а не для производительности или расширяемости, но должно привести вас на правильный путь.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...