我想在自定義類中創建一個事件監聽器。我在書中看到了這個,但是我得到錯誤「在MouseDown上訪問未定義的屬性」。我試圖儘可能地抽象出這個問題。下面提供了我用來調用我的類的命令。感謝您的任何見解。在FLAas3畫圈類錯誤
var mouseDraw:MouseDraw= new MouseDraw();
addChild(mouseDraw);
我想在自定義類中創建一個事件監聽器。我在書中看到了這個,但是我得到錯誤「在MouseDown上訪問未定義的屬性」。我試圖儘可能地抽象出這個問題。下面提供了我用來調用我的類的命令。感謝您的任何見解。在FLAas3畫圈類錯誤
var mouseDraw:MouseDraw= new MouseDraw();
addChild(mouseDraw);
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");
}
}
}
//代碼。在你的代碼一個錯字:你的處理器(OnMouseDown()
)的名稱以大寫字母,但你onMouseDown
與添加事件偵聽器小寫。將你的函數重命名爲onMouseDown
,它應該可以工作。
哇 - 瘋狂谷歌搜索後得到這個工作。感謝所有評論的人。故事的道德 - 不相信你在書中看到的代碼將編譯!
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");
}
}
}
謝謝查爾斯 - 我在發佈之後發現了這個問題。但現在我得到新的錯誤「TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。」有什麼想法嗎。謝謝 – user2066788 2013-02-13 21:36:39
@ user2066788你會在哪一行得到這個錯誤?它是在哪裏調用'addChild()'?這是'DisplayObjectContainer'的一種方法,我們不知道你稱之爲哪個對象。在你的例子中,它是'this.addChild(mouseDraw)'(如果你沒有定義一個方法被調用,默認情況下它是'this'),但是'this'是什麼?你嘗試過'stage.addChild(mouseDraw)'嗎? – 2013-02-13 22:06:10
hi @ user2066788I,試過stage.addChild(mouseDraw),我得到了同樣的錯誤。謝謝 – user2066788 2013-02-13 22:14:22