我正在开发一款包含以下代码的游戏;它的意思是从一个数组中挑选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},文本显示为一大块元素,在它们之间有逗号,我想要的是制作每个元素都出现在一个单独的行上。我该怎么做?
答案 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];