我有一个实例名为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];