AS3错误#2109

时间:2013-10-16 22:54:59

标签: actionscript-3 flash

我正在尝试做一个简单的装扮游戏。

我有一个名为衬衫的电影剪辑,我有:

我在关键帧1上有一个停止()的AS3动作; 我有衬衫层,我把所有衬衫都放在关键框架上。衬衫的每个关键框架。 我有一个标签层,我把衬衫的标签。请注意,所有标签都是:

shirt1

我还有一个项目影片剪辑,其中我有3个影片剪辑(实际衬衫的图片)。每个影片剪辑的实例名称为...... shirt1等。

在我的AS3图层中,来自项目影片剪辑,我有类似的内容:

var shirtsArray = [shirt1, shirt2];

for each (var shirtItem in shirtsArray) 
{
    shirtItem.addEventListener(MouseEvent.CLICK, onShirtClick);
shirtItem.buttonMode = true;
}

function onShirtClick (event:MouseEvent):void 
{
    MovieClip(parent).shirts.gotoAndStop(event.target.name);
}

当我运行文件并点击其中一件衬衫时,我明白了:

  

ArgumentError:错误#2109:在场景实例228中找不到帧标签instance229。       在flash.display :: MovieClip / gotoAndStop()       at sportbarbie_fla :: Symbol3_101 / onShirtClick()

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据错误消息,似乎event.targetMovieClip(parent).shirts的MC相同(因为两者都具有相同的自动分配的实例名称instance229)。在不知道场景布局的情况下很难猜出原因。

注意:没有必要为每个MC添加点击监听器,如果它不包含其他类型的项目,您可以将其添加到其父MC。这称为事件冒泡(参见this article)。