0

我对 Actionscript 3 非常缺乏经验,我正在尝试在其中创建一个包含不同对象类型的嵌套数组,但是遇到了一些麻烦,想知道是否有人可以提供帮助。

我想创建一个嵌套数组,其中数组的第一个元素是舞台上存在的影片剪辑实例的数组,但是父数组的第二个和第三个元素是字符串对象的数组。这就是我正在尝试的:

var objectArray:Array = [   [instance1, instance2, instance3],
                            ["word1",   "word2",   "word3"],
                            ["word4",   "word5",   "word6"]   ];


但是,我收到诸如此类的运行时错误:

TypeError:错误 #1034:类型强制失败:无法将“word1”转换为 flash.display.MovieClip。

据我所知,对象类型可以混合在数组中,所以我不确定我做错了什么,并且无休止的在线搜索并没有证明是富有成效的。有没有聪明人知道我的问题是什么?

非常感谢 :)

4

2 回答 2

0

我设法修复它。我只是在索引数组的方式上犯了一个错误。傻我!

于 2013-06-11T19:29:45.233 回答
0

像您所做的那样混合类型没有问题-您遇到的错误与您尝试对数组中的对象执行的操作有关。

我的猜测是您正在使用输入错误的循环迭代内部数组for each,例如:

for each(var i:MovieClip in objectArray[1])
{
    // Error - objectArray[1] holds objects which are not MovieClip.
}

或者您甚至可能只是尝试在正常循环中键入对象,这会产生相同的错误:

for(var i:int = 0; i < objectArray[1].length; i++)
{
    // Error.
    var mc:MovieClip = MovieClip(objectArray[1][i]);
}

在数组中混合类型通常不是一个好主意(原因之一就是这种情况)。如果您更新您的问题以解释您为什么这样做,我可以更新我的答案以解释更好的解决方法。

于 2013-06-10T23:11:50.227 回答