[英]AS3 - Error #1009: Cannot access a property or method of a null object reference
[英]Error 1009 : Cannot access a property of method of a null object reference
我不知道发生了什么这是我的Main.as
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip {
public var pirkles:Circles = new Circles()
public function Main() {
gotoAndStop(1)
playbtn.addEventListener(MouseEvent.CLICK, playscreen)
}
public function playscreen(event:MouseEvent):void {
gotoAndStop(2)
addChild(pirkles)
}
}
}
这是我的Circles.as
package {
import flash.display.MovieClip
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard
import flash.events.MouseEvent;
public class Circles extends MovieClip{
public function Circles():void {
stage.addEventListener(KeyboardEvent.KEY_DOWN, MOVE)
this.y = 175
this.x = 10
}
public function MOVE(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.RIGHT) {
this.x = this.x+10
}
else if (event.keyCode == Keyboard.LEFT) {
this.x = this.x-10
}
else if (event.keyCode == Keyboard.UP) {
this.y = this.y-10
}
else if (event.keyCode == Keyboard.DOWN) {
this.y = this.y+10
}
}
}
}
现在,我收到一个错误,提示我Circles.as的第11行和Main.as的第8行存在问题。 但是,在这些方面,我不知道是什么引起了问题。 我在第11行添加了一个事件侦听器,但是当我将其删除时,它可以工作。 另外,在第8行,我刚刚定义了一个变量。
您无法在类构造函数中访问阶段。 所以线
stage.addEventListener(KeyboardEvent.KEY_DOWN, MOVE)
导致错误。
如果您需要访问该阶段,请在ADDED_TO_STAGE事件的构造函数中添加一个侦听器,然后在回调函数中您将能够访问该阶段
所以:
public function Circles():void {
this.addEventListener (Event.ADDED_TO_STAGE, onAddedToStage);
this.y = 175
this.x = 10
}
private function onAddedToStage (evt:Event):void {
stage.addEventListener(KeyboardEvent.KEY_DOWN, MOVE)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.