コンテナ内に 2 つのコンポーネントが絶対的に配置されています (役立つ場合は、ILOG Elixir マップ上の MapSymbol です)。各コンポーネントは、Image と Label を持つ VBox です。画像には Click イベントに関連付けられた機能があります。ラベルはしません。
問題は、ラベルが mouseOver イベントと mouseDown イベントを食べるように、2 つのアイテムが配置され、一方のラベルが別のアイコンの上にある場合です。バブリングは、ラベルから vbox、コンテナへとバブリングし、下位の要素には決して当たらないため、役に立ちません。vbox を mouseChildren="false" に設定することはできません。これは、画像がクリックされないようにするためです。
これで何かできることはありますか?コンポーネントの配置と数はデータ駆動型であり、私が制御できるものではありません。
編集:いくつかの説明。各コンポーネントは次のように構成されています。
<VBox>
<Image source="whatever" click="handleClick()"/>
<Label text="{item.label}/>
</VBox>
問題は、これらの vbox が 2 つ近くに配置されている場合です。一方のボックスのラベルが他方のボックスの画像の上にあり、下のボックスとのやり取りが妨げられる場合があります。
(ソース: imnotpete.com )
この例では、2 番目のラベルが下のアイコンをブロックしています。マウス イベントは、そのアイコンの下半分を操作したときにのみ渡されます。
VBox を に設定しmouseEnabled="false"
、Label を に設定mouseEnabled="false" mouseChildren="false"
しても、効果がないように見えます。ラベルは、下の画像がマウス イベントを受信するのをまだブロックしています。