2010-12-12 128 views
1

我是Flash新手,不確定爲什麼當我嘗試設置屬性時,我的新星球對象被視爲NULL。 也許我缺少一些初始化方法,我應該新的星球,而不是我聲明我的變量?爲什麼我的新對象()是NULL?

public class main extends Sprite { 
    private var game_container:game_container_mc; 
    private var left,up,right,down:Boolean; 
    var pt:Point = new Point(303,301); 
    var myArray:Array = [pt,pt,pt]; 
    private var plan:planet = new planet(); 

    public function main() { 
     plan.loc.x = 3; 
     plan.loc.y = 3; 
     //...etc, error is here^ 

錯誤: 「類型錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法 在主()」

乾杯

+0

祿在這個星球定義爲 公共變種LOC點:點; – quantumpotato 2010-12-12 18:56:29

+0

loc如何定義? – loxxy 2010-12-12 18:59:23

+0

嘿,剛剛添加了評論。 loc在行星中定義爲public var loc:Point: package { \t import flash.display.Sprite; \t import flash.geom.Point; \t import數學; \t public class planet extends Sprite { \t \t private var kind:int = 0; \t \t private var mass:Number; \t \t private var atmosphere:int; \t \t public var loc:Point; – quantumpotato 2010-12-12 19:01:48

回答

0
package { 
import flash.display.Sprite; 
import flash.geom.Point; 
import Math; 

public class planet extends Sprite { 

      private var kind:int = 0; 
      private var mass:Number; 
      private var atmosphere:int; 
      public var loc:Point; 

在這裏你可以看到,LOC爲空&未初始化。所以要麼把它設置在這裏。

public var loc:Point = new Point(); 

或更高版本的主要功能爲:

var locObj:Point = new Point(); 
locObj.x=3; 
locObj.y=3; 
plan.loc=locObj; 
0

祿是一個對象太。

public function main() { 
     var Po:Point = new Point(); 
     Po.x=3; 
     Po.y=3; 
     plan.loc=Po; 
+0

現在有意義..我必須聲明的每一個對象,我必須在某個地方新建它。謝謝! – quantumpotato 2010-12-12 19:24:33

+0

@waleed ....不應將Po聲明爲var Po:Point? – loxxy 2010-12-13 03:56:29

+0

你說得對,我不熟悉flash對象,但是通常在任何編程語言中都應該聲明一個對象。 – 2010-12-13 05:35:57

相關問題