打印

[AS3] 关于侦听器的问题

这个问题一直糊涂。

有时候加载在stage.addEventListener 就是不行,而加载在主时间轴上就可以了:addEventListener ,

真的有时候很糊涂啊。谁能把这个问题给说说呢?

TOP

stage.addEventListener 行
http://www.flash023.cn 终极讨厌

TOP

stage.addEventListener(MouseEvent.CLICK ,fun);


function fun(e:MouseEvent) {
       trace("ok");
}

this.addEventListener(MouseEvent.CLICK ,fun); //侦听不到。为何?

你说说这两种情况,不一样啊。。。。。

TOP

试试

trace(this);试试,看this到底是谁?

TOP

回复 bbkx 在 3# 的帖子

不是侦听不到,是你点不到。this现在是个空容器,上面没有可点的东西(可交互的)。如果你在上面加个mc之类的东西,点这个mc就可以帧听到了.
stage代表舞台,不多说了.

TOP

舞台上有个图形元件也不行,除非有个影片剪辑元件

TOP

flash主文档类好像是初始化时已经在stage了,这个东西确实不理解,flex也是需要等待addedtostage的。

TOP

public function 构造函数(){
    addEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
}

private function addedToStageHandler(event:Event):void{
    stage.addEventListener(MouseEvent.CLICK,clickHandler);
}

private function clickHandler(event:MouseEvent):void{
    ...
}

有些麻烦,不过除了文档类以外,所有类在执行构造函数的时候stage属性都是null,必须在它触发ADDED_TO_STAGE事件后stage才会被初始化

TOP

也就是说仅仅对于鼠标类的侦听是这样 :stage属性都是null ?

TOP