私には問題があり、潜在的な解決策があります。しかし、問題を解決するための簡単で簡単な方法があるかどうかを確認したかったのです。アクションスクリプト3 - 画像部分でマウスをクリックしたときだけクリックイベントをトリガーすることは可能ですか?
アプリケーションの種類:
問題文の
アイソメトリックゲーム:私は私のフラッシュアプリで画像をロードし、それらに添付のマウスイベントを持っています
。
私がロードする画像は、車両、木、建物などのプロップ画像であり、すべてが透明です。
例:赤いボール資産はその後、すべて、私は実際の画像領域をクリックすると(赤に着色)
(私は、問題を記述するために適用される黄色の背景を無視してください)事は
完璧な作品私は
私は(私は黄色で示されているか、透明領域、)空の画像部分をクリックしたときのMouseEventをトリガーにしたくありませんフラッシュでマスクを作成することで私が知る1つの方法があります。フラッシュアセットの代わりにイメージアセットを読み込み、すべてのアセットに新しいマスクアセットを作成したくないため、最後のオプションが残っていない限り、やりたくありません。
BitmapのgetPixelメソッドを使って採用しようとしていました。これについては、hereを参照してください。
しかし、この方法には別の問題があります。
アセットの空いている部分をクリックしたときにクリックイベントを無視することはできますが、他のアセットが同じ場所の画像の後ろにある場合は、閉塞された画像。
さて、この問題に対する解決策の考え方は、私を取るgetObjectsUnderPoint私は、閉塞した資産をスキャンすることができます
hitAreaプロパティを調べることもできます。私はそれがあなたのケースのマスクより優れているかどうか分からないので、私は答えではなくコメントにしますが、少なくともそれは問題に関連しています:http://help.adobe.com/en_US/FlashPlatform /reference/actionscript/3/flash/display/Sprite.html#hitArea –
なぜ画像アセットの代わりにフラッシュアセットを使用するのですか?画像ごとにカスタマイズ(不要な透明ピクセルをカットするなど)し、swfとしてエクスポートします。または、資産のswfライブラリを作成します。 – Engineer
私は、Facebookのすべての仮想ゲームが実行時にダウンロードされるようにコーディングされていると確信しています。私はHTTPスニファーでそれを観察しました。私が思うと、そのゲームは使用されないswfのすべての資産をバンドルする代わりに、より良いオプションです。 –