我正在尝试做一个简单的装扮游戏。
我有一个名为衬衫的电影剪辑,我有:
我在关键帧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()
有什么想法吗?
答案 0 :(得分:0)
根据错误消息,似乎event.target
与MovieClip(parent).shirts
的MC相同(因为两者都具有相同的自动分配的实例名称instance229
)。在不知道场景布局的情况下很难猜出原因。
注意:没有必要为每个MC添加点击监听器,如果它不包含其他类型的项目,您可以将其添加到其父MC。这称为事件冒泡(参见this article)。