starling-layer (ゲーム自体) と、いくつかの Popups とそのようなものを含む従来の表示リストを使用するゲームを作成しています。
問題が 1 つあります。displayList 要素で MouseEvents が生成されると、それらは常にスターリング レイヤーを通過し、TouchEvents などを生成します。これは非常に面倒です。
それを処理するための一般的な(そして使いやすい)アプローチがあるのだろうかと思っていました。
1 つの可能性は、次のイベントのすべての displayList-Elements をリッスンすることでした。
interfaceElement.addEventListener(MouseEvent.MOUSE_MOVE, stopPropagationHandler);
interfaceElement.addEventListener(MouseEvent.MOUSE_DOWN, stopPropagationHandler);
interfaceElement.addEventListener(MouseEvent.MOUSE_UP, stopPropagationHandler);
private function stopPropagationHandler(e:MouseEvent):void {
e.stopPropagation();
}
しかし、これは私にはかなり厄介に見えます。そして、そのようにしたとしても、もう1つ問題があります。スターリング要素がそのdisplay-list-要素の下にあり、ロールオーバー動作のTouchEvent.TOUCHがある場合>>ロールオーバーの外観は削除されませんdisplay-list-element にカーソルを合わせると、ムクドリから。
イベントを停止するために、すべての display-list-element の後ろにダミースターリング要素を配置することも考えました..しかし、そのような「単純な」タスクに対しては、すべてが少し「複雑すぎる」ように聞こえます。または、何か不足していますか?
ヒントをいただければ幸いです。ありがとう。