初学者:动态地插入帧中HAXE/ActionScript3的一个MovieClip

muh*_*huk 2 flash haxe dynamic actionscript-3

假设我有一个资源文件,其中mc1包含4个帧.我想创建一个新的MovieClip插入框架,如下所示:

mc2:flash.display.MovieClip = new flash.display.MovieClip()

mc1.gotoAndStop(2);
mc2.gotoAndStop(1);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(1);
mc2.gotoAndStop(2);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(2);
mc2.gotoAndStop(3);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(4);
mc2.gotoAndStop(4);
mc2.currentFrame = mc1.currenctFrame
Run Code Online (Sandbox Code Playgroud)

[编辑]更多细节

我没有使用Flash IDE.我在用:

  • Inkscape(用于SVG生成)
  • swfmill(创建资产文件)
  • Haxe(制作动画)

我现在不是在尝试构建游戏或任何交互式游戏.我设法创建了一个简单的动画,其中背景精灵正在旋转(就是这样).我用TimerEvents来实现这个目标.但我真的希望能够构建一个MovieClip并在其上附加单个帧然后在循环播放它.

或者,我可以创建一个MovieClip,并以编程方式逐帧绘制.(当然然后循环播放)

基本上我想使用ActionScript生成内容而不是swfmill的XML(不是simple方言,simple很好).由于我是初学者,我不知道我能给你什么其他信息.所以请告诉我是否可以提供任何其他细节?

Iai*_*ain 5

没有Flash IDE,使用gotoAndStop()等几乎没有意义.

由于您无法在不同的帧上添加不同的资源,因此应使用addChild(assetToAdd)将它们全部添加为图层,并将除1之外的所有资源设置为visible = false.然后添加一个这样的简单函数:

function showFrame(num:int):void
{
    for (var i:int = 0; i < numChildren; i++)
    {
       if (i == num)
       {
          getChildAt(i).visible = true;
       }
       else
       {
          getChildAt(i).visible = false;
       }
    }
}
Run Code Online (Sandbox Code Playgroud)