0

ステージ上にビットマップ イメージ (ライブラリ シンボル)があるゲームを構築しています。ビットマップ上でのユーザーのマウス ジェスチャを監視する必要があります。

アイデアは、ユーザーが画像上のさまざまな点にカーソルを合わせると、さまざまなアクションが発生するということです (さまざまな座標に対してさまざまなアクション)。

過去にこれを行ったことがありますが、画像の上に非表示の MovieClip を配置してごまかし、これらの MovieClip でマウス イベントをリッスンしました。画像には 200 を超える関心のあるポイントがあり、ステージ上に非常に多くの余分な MovieClip があると、すべてが本当に遅くなります。

したがって、これを行う最善の方法は、すべての XY 座標を手動でクラスにハードコードしてから、マウスの座標と比較することだと思います。問題は、扱いにくくなり、コードが肥大化して最適化されていないことです。

これを行う一般的な/良い方法はありますか?

  • すべてのホットスポットは長方形です (変な形はありません)
  • ステージ上に大量の MovieClip を配置することは避けたい
  • AS3 と CS6 の使用 ( Flex ではない)
  • 推奨されるプロジェクトがあればオープンソース コードを使用したい
4

2 に答える 2

2

すべての XY 座標をハードコーディングするのはかなり難しいようです。長方形を視覚的に配置するための次の回避策を検討してください。

  1. 200 個のムービークリップをビットマップ全体の正しい位置に配置します
  2. ゲームの開始時に、ムービークリップを繰り返し処理し、それぞれの座標値をそれらのプロパティを持つオブジェクトの配列に追加します
  3. 情報が取得されたらすぐに各ムービークリップをアンロードします
  4. 古いシナリオでのムービークリップでのマウス イベントのリッスン、新しいシナリオでのオブジェクトでの対応するマウス座標のリッスンに置き換えることができます。マウスがロールオーバーするかどうかを確認する代わりに、量がオブジェクトの よりも多く、 よりも0,0少ないかどうかを確認できますwidth,height

これは実行可能な解決策ですか?ゲーム全体に広がるのではなく、少なくともプロセス集約型のすべてのアクションをロードできる最初の部分に集中させます。開発者としてのあなたにとっても、もう少し直感的です。

于 2013-10-05T14:56:30.137 に答える