在 Actionscript 3 中链接两个数组

Posted

技术标签:

【中文标题】在 Actionscript 3 中链接两个数组【英文标题】:Linking two arrays in Actionscript 3 【发布时间】:2015-07-25 05:56:03 【问题描述】:

对actionscript非常陌生,

我试图链接两个数组。基本上我有一个包含 8 个单词的单词数组,并且我有一个包含 8 个影片剪辑的影片剪辑数组。我的目标是链接这两个数组,以便用户必须单击与屏幕上显示的单词匹配的正确影片剪辑。

非常感谢所有帮助!

【问题讨论】:

拥有一个对象数组,每个对象有两个字段不是更有意义吗? 是的,它可能会,您如何编写该代码?我刚开始自学,所以我不知道正确的术语或有很多知识 仅供参考,您应该将第二个问题作为一个单独的问题发布,而不是编辑这个问题来问两件事。另请参阅thesetwo有关该主题的元问题。 【参考方案1】:
var listAry:Array = [];
var orangeJuice:Object = new Object();
orangeJuice.name= "Orange Juice";
orangeJuice.matchingImage=oj;
listAry[0]=orangeJuice;
////etc etc

你去吧,伙计。如果您有任何问题,希望对您有所帮助。

【讨论】:

我是否也保留了上面的变量,因此 - randomlistword、matchingimages 和 randomnumber?或者干脆去掉 randomlistword? 基本上,如果您使用名称和匹配图像定义数组中每个对象的属性,则不需要任何其他变量(当然除了您的 randomNumber) 好的,谢谢,我在我的代码中实现了这一点,现在当它在页面上显示 listAry 时​​,它不仅仅显示随机生成的名称,而是显示 [object Object],我怎样才能让它显示我的话? 替换 randomword.text = randomlistword[randomnumber]; with randomword.text = listAry[randomnumber].name;像这样访问您想要的任何属性 您的明星,现在一切正常!接受你的回答【参考方案2】:

另一种方法是使用Dictionary。

var foodionary:Dictionary = new Dictionary();

foodionary["Orange Juice"] = oj;
foodionary["Sandwich"] = sand;
//etc...

for(var key:String in foodionary) 
    trace(key + " matches with " + foodionary[key].id); //assuming your images have ids

不过,对于随机访问,您仍然需要一个数组(或 Vector):

function displayword()

    randomnumber = Math.floor(Math.random() * randomlistword.length);
    trace("random number = " + randomnumber);

    var chosenword = randomlistword[randomnumber];
    randomword.text = chosenword
    randomword.img = foodionary[chosenword];
    randomlistword.splice(randomnumber, 1);
    trace("randomlistword array: " + randomlistword);

//close displayword function

【讨论】:

以上是关于在 Actionscript 3 中链接两个数组的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Actionscript 3.0 中的数组 B 中的数组 A 中删除元素?

如何在 Actionscript 3.0 中获取数组的所有排列?

如何在Actionscript 3.0中获取数组的所有排列?

Actionscript 3 在数组中搜索字符串

ActionScript 3.0 - 获取数组中相同值的计数

无法识别数组中的 Actionscript 3 子项