1

私が持っているものの詳細を説明する前に、私は非常に経験の浅いプログラマーであることをお知らせします。誰かの助けに感謝します。

これまでに行ったことは、パスがどこにあるかを除いて、ボード全体を占めるセルの配列を作成したことです。すべてのセルが Simulator クラスに追加されています。私のセル クラスには、スクロールしたときにセルの色を変更するためのいくつかの異なるイベント リスナーが含まれています。次のようなセル クラスに addTurret 関数を追加しようとしています。

private function addTurret(e: MouseEvent): void
{
  var turret: Turret = new Turret();
  addChild(turret);
  turret.x = this.x;
  turret.y = this.y;
}

これは cell クラスのコンストラクタにあります。

this.addEventListener(MouseEvent.CLICK, addTurret);

Turret クラスは、今のところ単純な赤い円を作成するだけです。セルをクリックすると、タレットがランダムな場所に表示されます (理由はわかりません)。クリックしたセルのすぐ上に表示されるようにします。

解決策をお持ちの方、よろしくお願いします。

4

1 に答える 1

1

タレットをセルに追加しています。これは、ボードに追加された DisplayObject であると想定しています。タレットをセルの子として追加すると、x、y 位置がセルの x、y 位置に相対的になります。

そのため、タレットの x、y 位置をセルの x、y 位置に設定すると問題が発生する可能性があります。タレットはセルの 0,0 の位置にある必要があるため、必要はありません。

したがって、 addTurret 関数を次のように変更するだけです。

private function addTurret(e: MouseEvent): void
{
  var turret: Turret = new Turret();
  addChild(turret);
}
于 2013-04-19T03:28:28.523 に答える