0

我正在尝试在自定义类中创建事件侦听器。我在书中看到过这一点,但我收到错误“在 MouseDown 上访问未定义的属性”。我试图尽可能地抽象这个问题。下面提供了我用来调用我的类的命令。感谢您的任何见解。

package  
{
import flash.display.*;;
import flash.events.*;;

public class MouseDraw extends Sprite {

    public function MouseDraw() {
        addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);        
        }


    public function OnMouseDown(event:MouseEvent):void {
        trace("mouse down");        
    }                   

}   

}

//fla中的代码

var mouseDraw:MouseDraw= new MouseDraw();
addChild(mouseDraw);
4

2 回答 2

1

您的代码中有一个错字:您的处理程序 ( OnMouseDown()) 的名称以大写字母开头,但您添加了onMouseDown一个小写的事件侦听器。将您的函数重命名为onMouseDown,它应该可以工作。

于 2013-02-13T21:17:07.277 回答
0

哇——在疯狂的谷歌搜索之后让它工作。感谢所有评论的人。故事的寓意——不要相信你在书中看到的代码会编译!

package  
{
import flash.display.*;;
import flash.events.*;;

public class MouseDraw extends Sprite {

    public function MouseDraw() {

        graphics.lineStyle(1);

        addEventListener(Event.ADDED_TO_STAGE, init);                       
        }


    private function init(e:Event):void {
        stage.addEventListener(MouseEvent.MOUSE_DOWN,  onMouseDown);                    
    }

    private function onMouseDown(event:MouseEvent):void {
        trace("mouse down");        
    }                   

}   

}
于 2013-02-14T22:19:18.110 回答