2017-07-04 22 views
2

はTypeError:エラー#1034:型強制は失敗しました:flash.display.MovieClipとする "UM1" を変換することはできませんアドビアニメイトCC

私のステージで

UM1、UM2、UM3 ..... MovieClipオブジェクト

var Um: Array = new Array(); 
for (var i: int = 0; i < 10; i++) { 
    Um[i] = "Um" + Number(i + 1); 
} 

this.addEventListener(Event.ENTER_FRAME, HitUm); 
function HitUm(event: Event) { 
    for (var i: int = 0; i < 10; i++) { 
    if(MovieClip(Um[i]).hitTestObject(car_mc.rabond_mc)) { 
     trace(Um[i]); 
    } 
    } 
} 
+0

を、それは – BadFeelingAboutThis

答えて

4

ここでこの行:

Um[i] = "Um" + Number(i + 1); 

は、文字列値を使用してUm配列を移入されます。後でその値をMovieClip(そうでない)のように使用するので、そのエラーが発生します。おそらくあなたのtrace(Um[i])行が "[Object MovieClip]"になるべきときに "Um1"、 "Um2"などとなる可能性があります。

あなたが参照しようとしているのと同じスコープ内にインスタンス名があるとすれば、次のいずれか。

使用getChildByName

Um[i] = getChildByName("Um" + (i + 1)); 

または辞書のような現在のタイムライン(この)を使用します

Um[i] = this["Um" + (i + 1)];  
+0

は非常に非常にマッチ –

+0

素敵な説明をありがとう、あなたの問題を解決した場合の答えを受け入れてください。 (+1) –

関連する問題