基本上我正在做一个摇曳的草效果,这个错误出现了,我不太确定如何解决它。
场景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));
}
答案 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它应该有助于解释该过程。