我正在尝试做这样的事情:
package com.clicker{
import flash.display.*;
import flash.events.MouseEvent;
public class Stager extends MovieClip {
public function clicker():void {
stage.addEventListener(MouseEvent.CLICK, do_stage);
}
function do_stage(e:MouseEvent):void {
trace("stage clicked");
}
}
}
但是,我得到了1009错误。
当我这样做时:
import com.clicker.*;
var test:Stager = new Stager();
test.clicker();
addChild(test);
请帮帮我。非常感谢您提前和节日快乐。
答案 0 :(得分:8)
阶段。如果您想了解它,可以使用ADDED_TO_STAGE事件。
所以,你可以这样做:
package com.clicker{
import flash.display.*;
import flash.events.*;
public class Stager extends MovieClip {
public function clicker():void {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(MouseEvent.CLICK, do_stage);
}
function do_stage(e:MouseEvent):void {
trace("stage clicked");
}
}
}
答案 1 :(得分:0)
因为您在添加到舞台test.clicker();
之前调用test
之前没有this.stage对象,请尝试:
public class Stager extends MovieClip {
public function clicker():void {
this.addEventListener( Event.ADDED_TO_STAGE , function(ev:Event) {
stage.addEventListener(MouseEvent.CLICK, do_stage);
});
}
function do_stage(e:MouseEvent):void {
trace("stage clicked");
}
}
希望这会有所帮助...