0

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

我有一个名为 shirts 的电影剪辑,其中有:

我在关键帧 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:在场景实例 229 中找不到帧标签实例 229。在 flash.display::MovieClip/gotoAndStop() 在 sportbarbie_fla::Symbol3_101/onShirtClick()

有什么想法吗?

4

1 回答 1

0

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

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

于 2013-10-17T01:31:52.047 回答