【问题标题】:AS3 putting each element of an array on a separate lineAS3 将数组的每个元素放在单独的行上
【发布时间】:2014-07-10 23:48:22
【问题描述】:

我正在开发一个包含以下代码的游戏;它的意思是从一个数组中选择 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=""+a},文本显示为一大块元素,它们之间有逗号,我想要的是让每个元素出现在单独的线。我该怎么做?

【问题讨论】:

    标签: arrays actionscript-3


    【解决方案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];
    

    【讨论】:

    • 好吧,我将它们推送到一个新数组中,因为我不知道您可以添加这样的文本,我对 AS3 还很陌生。非常感谢你的帮助。 PS:我用的是 appendText 而不是 += 方法,显然它更快。
    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2015-07-23
    • 2016-10-25
    • 1970-01-01
    相关资源
    最近更新 更多