首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初学者:在Haxe/ActionScript3 3中将框架动态插入到MovieClip

初学者:在Haxe/ActionScript3 3中将框架动态插入到MovieClip
EN

Stack Overflow用户
提问于 2009-01-15 08:22:20
回答 2查看 4.3K关注 0票数 2

假设我有一个资源文件,它导出包含4帧的mc1。我想创建一个新的MovieClip并插入这样的帧:

代码语言:javascript
复制
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

编辑更多细节

我不使用Flash。我正在使用:

(用于SVG generation)

  • swfmill (创建资产文件)

  • Haxe(创建动画)

)

在这一点上,我没有试图建立游戏或任何互动。我已经成功地创建了一个简单的动画,背景精灵正在旋转(仅此而已)。我使用TimerEvent来实现这一点。相反,我非常希望能够构造一个MovieClip,并在上面附加单独的帧,然后在循环上播放它。

或者,我可以创建一个MovieClip,并以编程的方式逐帧地绘制它。(当然,在循环中玩)

基本上,我想使用ActionScript来生成内容,而不是swfmill(不是simple方言,simple很好)。因为我是初学者,我不知道我还能给你什么其他的信息。所以请告诉我我能不能提供其他细节?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-15 09:53:14

没有Flash,就没有必要使用gotoAndStop()等。

由于不能将不同的资产添加到不同的框架中,所以应该使用addChild(assetToAdd)将它们作为层添加,并将除一个之外的所有资产设置为visible = false。然后添加一个像这样的简单函数:

代码语言:javascript
复制
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;
       }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2009-01-15 08:58:41

我不知道有什么方便的方法来做你想做的事。您的示例将无法工作,因为currentFrame是一个只读属性,而且它返回的只是一个表示帧号的整数,而不是构成实际帧的数据。

如果您需要动态地重新排列帧,我的建议是将特定的MovieClip封装在一个自定义类中,该类将gotoAndPlay(x)转换为您想要的任何数字。

然而,这可能不是很有用,取决于你想要达到什么,但如果你澄清一点你的问题,我相信我们可以提出一个适当的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/446003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档