横スクロール シューティング ゲームを作成しようとしていて、すべての敵を配置ではなくコードで生成しています。
TypeError: エラー #1007: 非コンストラクターでインスタンス化が試行されました。
関連コード:
tanktimer++;
var n:MovieClip;
var lv1arr:Array = [24,120,144,264,288,384,408,432,480];
var lv1Tarr:Array = ['Tank(1)','Tank(1)','Tank(2)','Tank(1)','Tank(2)','Tank(3)','Tank(1)','Tank(2)','Tank(3)'];
if(tanktimer == lv1arr[we])
{
trace('work darn you!');
n = new lv1Tarr[we];
n.x = 700;
n.y = 550;
addChild(n);
trace('build');
we++;
}
var 'we' は、tanktimer と同じように、上部で Number=0 として定義されています。
私が考えていることは、tanktimer が 0 から 24 までカウントアップし、それが lv1arr の最初の値と等しくなり、その時点で lv1Tarr の最初のアイテムが構築されるということです。
問題は次のとおりだと確信しています。
n = new lv1Tarr[we];
コードがそこに到達すると、エラーが発生し、タンクは生成されません。しかし、lv1Tarr[we] を削除して Tank(1) に置き換えると、問題なく動作するので、明らかに Flash はこの方法で配列を使用することを望んでいません。