我试图嵌入到我的Flash文件中的actionscript出现错误

时间:2012-03-27 19:31:24

标签: flash animation flash-cs5

基本上我正在做一个摇曳的草效果,这个错误出现了,我不太确定如何解决它。

场景1,图层'动作',第1帧,第19行1180:调用可能未定义的方法duplicateMovieClip。

Scene1-Actions第1帧:

 import flash.display.MovieClip;

function duplicate(name:MovieClip, amount:Number):void
{
    for(var i = 1; i<= amount; i++)
    {
        duplicateMovieClip(name, name+"_"+i, i);
    }


}
duplicate(grass_mc, 50);

grass-Action Frames 1

onClipEvent(load)
{
    this.height= random(70)+5
    this.width = random(15)+5
    this._x = random(Stage.width);
    this.gotoAndPlay(random(20));

}

2 个答案:

答案 0 :(得分:1)

所以基本上你需要as3中as2的良好的'duplicateMovieClip方法。有几种方法可以获得类似的结果,但首先,我建议你阅读一些关于对象 OOP 通常用于ActionScript3,例如this one from kirupa

一旦你读到你应该有能力做到这一点,但是这里是一个演练,试图保持简单:

转到图书馆,右键点击草符号,选择属性,然后选中Export for ActionScript和{{1 }}。将Export in frame 1写为类名,保留基类(它会说 flash.display.MovieClip 。你。我会得到一个提示,说找不到这个类,因为现在没关系了。完成这个,每次你用Grass行创建一个Grass对象,然后你var my_mc:MovieClip = new Grass();到舞台上(或者已经在舞台上的任何动画片段)你正在创建原始草影片剪辑的“副本”。

因此,例如,此代码将创建一个Grass movieclip的50个实例:

addChild

此外,您标记为 grass-Action Frames 1 的代码全部在as2中,我将其转换为as3并将其作为时间线上的函数写入清洁度,因此您需要将它从草影片剪辑中移除。

希望这有帮助!

答案 1 :(得分:0)

duplicateMovieClip方法来自ActionScript2,现在在ActionScript 3中已弃用。

您不能再“复制”影片剪辑,但有几种方法可以实现相同的结果。如果您对创建一个将创建对象的多个实例的新类没有信心,请查看this link它应该有助于解释该过程。