MouseEvent不在影片剪辑上调度

时间:2014-06-05 07:42:32

标签: actionscript-3

我知道这一定很容易,但不知何故,我花了不少时间才弄明白。我在一个扩展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);
    }
}

实际上我希望两个影片剪辑互相排斥,即一个影片剪辑上的鼠标事件不应该干扰另一个影片片段。有什么指针吗?

2 个答案:

答案 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中绘制一个形状,然后重试。