繁体   English   中英

错误1009:无法访问空对象引用的方法的属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM