所以我在容器影片剪辑中生成了 65 个影片剪辑。 (它位于一个容器中,因为它位于游戏中并且位于弹出窗口中。)MovieClip 是通过访问库中 AS3 链接的 MovieClip 创建的。每个都存储在 MovieClip 数组中。从那里,我将一些文本信息(包括一些隐藏文本)放入每个信息中,并添加一些事件监听器。除了一件事之外,代码本身工作得很好。事件监听器接收目标作为 MovieClip 内的文本字段之一,而不是 MovieClip 本身。我绝对确定鼠标事件监听器已应用于影片剪辑。
for (var i:int = 0; i < mcArray.length; i++)
{
mcArray[i] = new IDButton();
MovieClip(mcArray[i]).tf1.text = String(ID1[i])
MovieClip(mcArray[i]).tf2.text = String(ID2[i]);
MovieClip(mcArray[i]).tf3.text = String(ID3[i]);
MovieClip(mcArray[i]).tf1.selectable = false;
MovieClip(mcArray[i]).tf2.selectable = false;
MovieClip(mcArray[i]).tf3.selectable = false;
MovieClip(mcArray[i]).tf1.visible = false;
MovieClip(mcArray[i]).tf2.visible = false;
MovieClip(mcArray[i]).name = "MC" + String(i);
container.addChild(MovieClip(mcArray[i]));
MovieClip(mcArray[i]).addEventListener(MouseEvent.CLICK, mcClickHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OVER, mcHoverHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OUT, mcOffHandler);
MovieClip(mcArray[i]).x = 0;
MovieClip(mcArray[i]).y = MovieClip(mcArray[i]).height * i;
}
(说实话,我不知道那里有 MovieClip 是否多余。我想这表明我对 Flash 普遍缺乏信任。)
为了测试,我在 mcClickHandler 函数中跟踪了目标名称,它一直返回“tf3”。
最佳答案
AS3 中的事件有两个“目标”属性:target
和 currentTarget
。如果其中一个不起作用,另一个通常会起作用。
基本上,target
是鼠标单击的实际对象,currentTarget
是附加了监听器的对象。
关于actionscript-3 - ActionScript 3.0 : Having a weird issue with a click target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991435/