我知道这一定很容易,但不知何故,我花了不少时间才弄明白。我在一个扩展Sprite的类中有两个影片剪辑。当我向舞台添加事件监听器时,每件事情都可以。但是当我尝试将事件监听器添加到其中一个影片剪辑时,事件似乎从未发送过。这是它的样子 -
public class MyClass extends Sprite
{
private var movieclip1:MovieClip, movieclip2:MovieClip;
private function init(e:Event == null):void
{
movieclip1 = new MovieClip();
movieclip2 = new MovieClip();
//works fine, dispatches event
stage.addEventListener(MouseEvent.MOUSE_DOWN. mousedown);
//not working
movieclip1.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
addChild(movieclip1);
addChild(movieclip2);
}
}
实际上我希望两个影片剪辑互相排斥,即一个影片剪辑上的鼠标事件不应该干扰另一个影片片段。有什么指针吗?
答案 0 :(得分:2)
空的MovieClips和Sprite不能调整大小,它们将是0,0然后它们将无法调度MouseEvents。
如果有一些内容,您可以调整MovieClip的大小。 Sprite的大小将包含2个MovieClip。
如果MovieClips为空= 0,0 Sprite将为0,0
关于2个MovieClip之间的事件: 他们不会干涉,因为冒泡的事件会上升。
因此,听取MC1的听众只会在MC1上点击,MC2也是如此
答案 1 :(得分:1)
您可以追踪movieclip1或movieclip2的宽度和高度,两者都会得到0。 所以,你不能点击它们。
您可以使用graphcis在这两个mcs中绘制一个形状,然后重试。