0

私は Actionscript 3 の経験がほとんどなく、さまざまなオブジェクト タイプを含むネストされた配列を作成しようとしていますが、問題が発生しており、誰か助けてくれるかどうか疑問に思っています。

配列の最初の要素がステージ上に存在するムービークリップ インスタンスの配列であるネストされた配列を作成したいのですが、親配列の 2 番目と 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]);
}

配列に型を混在させることは、一般的には良い考えではありません (理由の 1 つはこのシナリオです)。なぜこれを行っているのかを説明するために質問を更新すると、回答を更新して、より良い方法を説明できます。

于 2013-06-10T23:11:50.227 に答える