Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 将对象显示为动画帧?AS3_Flash_Actionscript 3 - Fatal编程技术网

Flash 将对象显示为动画帧?AS3

Flash 将对象显示为动画帧?AS3,flash,actionscript-3,Flash,Actionscript 3,如何使用displayObjects作为动画帧? 我的库中有六个符号,我想用计时器设置动画。这样做的好处是能够改变动画的速度,并且消除了混乱的时间线 唯一的缺点是库中对象的初始设置。我尝试过开关/案例设计模式,visible=true和z-depth,但无法正常工作。有答案吗 //setup code var timer:Timer = new Timer(100, 20); timer.addEventListener(TimerEvent.TIMER, countdown); functio

如何使用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

像这样的。这是为了可读性而写的,不是为了性能或可扩展性,但应该会让您走上正确的道路

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();
var帧:数组=[
新框架1(),
新框架2(),
新框架3(),
新框架4(),
新框架5(),
新框架6()
];
对于每个(变量帧:帧中的精灵){
addChild(框架);
}
var定时器:定时器=新定时器(100);
timer.addEventListener(TimerEvent.timer,倒计时);
函数倒计时(事件:TimerEvent){
myText.text=String(0+timer.currentCount);
var currentFrame:int=timer.currentCount%frames.length;
对于(变量i:int=0;i
谢谢。这正是我所需要的。我知道在flash世界中,“时间线”通常是不受欢迎的,尤其是新手。当你开始到处乱扔代码时,它肯定会变得一团糟。但你似乎在和flash的工作原理作斗争。如果您确实需要在运行时更改动画速度,这可能是一个选项(尽管您也可以通过代码控制时间轴播放头)。如果您不能或不想使用FlashIDE,这是一条路要走。但如果你不这样做,你就有点错过了时间线的全部要点。让艺术家/设计师用他们熟悉的工具做他们更了解的事情。