我有一个动态文本字段,实例名称为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);
}
}
那么通过数组访问我的实例的正确方法是什么,而不返回空值。似乎当我放入数组时,就像我正在创建一个新对象并分配给变量,从而产生一个空对象。
答案 0 :(得分:1)
看起来像变量声明放置问题 在类中声明varible。
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";
}
}
我认为,除了import语句,include语句,use指令和元数据之外,基本上几乎应该在类中描述代码。
答案 1 :(得分:0)
首先,我会像这样实例化Array类(个人偏好,我知道它有效):
private var hisscoreFirstPlayer:Array = new Array();
要向数组添加元素,请使用push方法。像这样:
var p1score: uint;
p1score = 1000;
// push adds to the top of the stack
hiscoreFirstPlayer.push(p1score);
进一步了解使用数组。查看推,弹出,移位和不移位,拼接只是一个好的开始(看here)。如你所见,这只是一个玩家1分数的数组。然后可以通过调用
来访问播放器1hiscoreFirstPlayer[0];
但我会将数组名称更改为allHiScores
。然后你可以将所有玩家的高分添加到一个阵列,并可能像这样调用玩家的高分:
allHiScores[n-1];