【问题标题】:Error 1009 : Cannot access a property of method of a null object reference错误 1009:无法访问空对象引用的方法的属性
【发布时间】:2014-04-14 15:43:20
【问题描述】:

我不明白发生了什么 这是我的 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 行,我刚刚定义了一个变量。

【问题讨论】:

    标签: actionscript-3 flash null typeerror


    【解决方案1】:

    您无法在类构造函数中访问该阶段。 所以这条线

     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)
    
    }
    

    【讨论】:

    • 你能给我举个例子吗?我对 actionscript 还很陌生。
    • 另外,我的 Main.as 中的第 8 行有什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 2013-05-16
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多