访问我的实例字段 AS3 时遇到问题



我有一个实例名为hiscoreFirstPlayer的动态文本字段。我的目标是能够通过数组访问我的所有实例。因此,我决定创建一个数组并尝试访问它:

package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    private var hiscore:Array = [hiscoreFirstPlayer];
    class Game extends MovieClip {
        //Return null
        trace(hiscore[0]);
        //TypeError: Error #1009: Cannot access a property or method of a null object reference.
        hiscore[0].text = "1000";
        //Return 0
        trace(hiscoreFirstPlayer);
        //Return 1000
        hiscoreFirstPlayer.text = "1000";
        trace(hiscoreFirstPlayer);
    }
}

那么通过数组访问我的实例而不返回 null 值的正确方法是什么。似乎当我放入数组时,就像我在创建一个新对象并分配给变量,从而产生一个空对象。

看起来像变量声明放置问题。
在类中声明变量。

package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    //private var hiscore:Array = [hiscoreFirstPlayer];
    class Game extends MovieClip {
        private var hiscore:Array = [hiscoreFirstPlayer];
        trace(hiscore[0]);
        hiscore[0].text = "1000";
    }
}

我认为,基本上几乎代码应该在一个类中描述,除了导入语句、包含语句、use 指令和元数据。

首先,我会像这样实例化 Array 类(个人偏好,我知道它有效):

private var hisscoreFirstPlayer:Array = new Array();

若要将元素添加到数组,请使用 push 方法。像这样:

var p1score: uint;
p1score = 1000; 
// push adds to the top of the stack
hiscoreFirstPlayer.push(p1score); 

进一步了解使用数组。查看推送、弹出、移位和取消移位,以及拼接只是为了一个好的开始(看这里)。 如您所见,这将只是一个玩家 1 分数的数组。然后可以通过调用来访问玩家 1

hiscoreFirstPlayer[0];

但是我会将数组名称更改为allHiScores. 然后,您可以将所有玩家高分添加到一个数组中,并可能像这样调用玩家 n 的高分:

allHiScores[n-1];

最新更新