假设我有一个资源文件,它导出包含4帧的mc1。我想创建一个新的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编辑更多细节
我不使用Flash。我正在使用:
(用于SVG generation)
)
在这一点上,我没有试图建立游戏或任何互动。我已经成功地创建了一个简单的动画,背景精灵正在旋转(仅此而已)。我使用TimerEvent来实现这一点。相反,我非常希望能够构造一个MovieClip,并在上面附加单独的帧,然后在循环上播放它。
或者,我可以创建一个MovieClip,并以编程的方式逐帧地绘制它。(当然,在循环中玩)
基本上,我想使用ActionScript来生成内容,而不是swfmill(不是simple方言,simple很好)。因为我是初学者,我不知道我还能给你什么其他的信息。所以请告诉我我能不能提供其他细节?
发布于 2009-01-15 09:53:14
没有Flash,就没有必要使用gotoAndStop()等。
由于不能将不同的资产添加到不同的框架中,所以应该使用addChild(assetToAdd)将它们作为层添加,并将除一个之外的所有资产设置为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;
}
}
}发布于 2009-01-15 08:58:41
我不知道有什么方便的方法来做你想做的事。您的示例将无法工作,因为currentFrame是一个只读属性,而且它返回的只是一个表示帧号的整数,而不是构成实际帧的数据。
如果您需要动态地重新排列帧,我的建议是将特定的MovieClip封装在一个自定义类中,该类将gotoAndPlay(x)转换为您想要的任何数字。
然而,这可能不是很有用,取决于你想要达到什么,但如果你澄清一点你的问题,我相信我们可以提出一个适当的建议。
https://stackoverflow.com/questions/446003
复制相似问题