AS3将数组的每个元素放在一个单独的行上

时间:2014-06-17 14:59:20

标签: arrays actionscript-3

我正在开发一款包含以下代码的游戏;它的意思是从一个数组中挑选8个随机名称并将它们输入到屏幕上的某些文本中,这样每个元素都在一个单独的行上。这是我的代码摘要:

var a:Array
for (var i:Number=1; i<=packQ; i++)
{
shuffle(packShuffler);
//Note: this function randomly reorganizes the array "packShuffler", it's a pretty complicated function so lets leave it at that.
a.push(packShuffler[0])
a.push(packShuffler[1])
a.push(packShuffler[2])
a.push(packShuffler[3])
a.push(packShuffler[4])
a.push(packShuffler[5])
a.push(packShuffler[6])
a.push(packShuffler[7])
}
cardGet.text=""+a

//textbox looks something like this:
//blue,white,dragon,beast,great,black,Sword,Circle

我知道它看起来非常尴尬,尤其是推动部分,但这是我目前唯一知道的方式:/

好吧,我的问题是,在最后一行{cardGet.text =&#34;&#34; + a},文本显示为一大块元素,在它们之间有逗号,我想要的是制作每个元素都出现在一个单独的行上。我该怎么做?

1 个答案:

答案 0 :(得分:1)

问题的一部分是a.toString()被隐式调用,在cardGet.text=""+a的行上。话虽这么说,根据定义,数组的toString()方法将返回element1 + ", " + element2 + ", " + ... + elementn

但是你为什么要把它们推到新阵列上?为什么不像以前那样只是简单地改变旧的,然后从中构建自己的字符串?有点像这样:

shuffle(packShuffler);
cardGet.text = "";

// takes every element, except for the last, and adds it and a newline
// to the string
for (var j:int = 0; j < packShuffler.length - 1; j++)
{
    cardGet.text += packShuffler[j] + "\n";
}

// adds the very last element to the string without a newline
cardGet.text += packShuffler[packShuffler.length - 1];