为什么我的新对象()为NULL?

时间:2010-12-12 18:55:53

标签: flash actionscript-3 memory-management

我是Flash新手,当我尝试为其设置属性时,我不确定为什么我的新行星对象被视为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^

错误:“TypeError:错误#1009:无法访问空对象引用的属性或方法。     在main()“

干杯

2 个答案:

答案 0 :(得分:0)

Loc也是一个对象。

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

答案 1 :(得分: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是null&没有初始化。所以要么在这里设置它。

public var loc:Point = new Point(); 

或稍后在主要功能中:

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