プレイヤーが制御するボール(mcBall)といくつかの壁(適切な名前はmcWall1、mcWall2など)の間の衝突をチェックするために、次の関数を常に実行しています:( var numberofwallsは、そこにある異なるフレームごとに独自の値を取得しますムービークリップの数が異なります。)
function checkcollision(evt:Event) : void {
for(var i = 1; i <= numberofwalls; i++){
if (mcBall.hitTestObject("mcWall"+i) == true){
killball()
}
}
}
}
ただし、これを行うと、コンパイル時に次のエラーが発生します。
シーン1、レイヤー'アクション'、フレーム1、行89 1067:タイプStringの値の無関係なタイプflash.display:DisplayObjectへの暗黙の強制。
89行目は次のとおりです。
if (mcBall.hitTestObject("mcWall"+i) == true){
私の理解では、文字列とintを追加しようとしているのですが、文字列の末尾に整数を追加しない理由がわかりません(例:mcWall1、i = 1)。
配列が設定されておらず、使用する壁の数に応じて必要とは思わないため、( "mcWall" [i])を使用できません。各壁にはステージ上で静的にインスタンス名が付けられます。私のコードにはありません。
mcWall(i)をテストする方法について何か提案はありますか?
よろしくお願いします。