我試圖捕獲一個事件,但我不能。 請看這裏: http://www.pata.ro/FlexTest/ 藍色的矩形是父母,其他兩個是孩子。 如果我翻轉一個孩子(紅色或綠色),我仍然在藍色之上(對於藍色的,RollOut不會被解僱)。我把綠色的矩形做成了一個透明的,所以你可以看到它已經覆蓋了紅色。 當我把光標放在綠色的那個上面的時候,我得到了BlueRollOver,GreenRollOver,RedRollOut。 我試圖做的是獲得紅色的RollOver,即使它在綠色之下。就像父母抓住RollOver一樣,即使我在其中一個孩子身上。或相反亦然。 那麼,如何將事件傳播到鼠標懸停的元素下?Flex事件傳播
感謝
婁你有我的代碼。 事件監聽器是在MXML中聲明的,所以我重寫了那些紅色的矩形,所以我可以添加useCapture參數。如果我將useCapture設置爲TRUE,那麼只要有鼠標,紅色矩形就不會捕獲任何事件。如果我將它設置爲false,它會像以前一樣工作。那麼,我該如何使用這個論點呢?
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
applicationComplete="init()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private function init():void
{
gRed.addEventListener(MouseEvent.ROLL_OVER,RedRollOver,true);
gRed.addEventListener(MouseEvent.ROLL_OUT,RedRollOut,true);
}
private function BlueRollOver(ev:Event):void
{
idBlue.text="RollOver";
}
private function BlueRollOut(ev:Event):void
{
idBlue.text="RollOut";
}
private function RedRollOver(ev:Event):void
{
idRed.text="RollOver";
}
private function RedRollOut(ev:Event):void
{
idRed.text="RollOut";
}
private function GreenRollOver(ev:Event):void
{
idGreen.text="RollOver";
}
private function GreenRollOut(ev:Event):void
{
idGreen.text="RollOut";
}
]]>
</fx:Script>
<s:Group id="gBlue" x="114" y="94" width="404" height="301" rollOver="BlueRollOver(event)" rollOut="BlueRollOut(event)">
<s:Rect width="100%" height="100%">
<s:fill>
<s:SolidColor color="#0000CC"/>
</s:fill>
</s:Rect>
<s:Group id="gRed" x="140" y="101" width="230" height="114">
<s:Rect width="100%" height="100%">
<s:fill>
<s:SolidColor color="#EE0000"/>
</s:fill>
</s:Rect>
</s:Group>
<s:Group id="gGreen" x="39" y="20" width="200" height="200" rollOver="GreenRollOver(event)" rollOut="GreenRollOut(event)">
<s:Rect width="100%" height="100%" alpha="0.6">
<s:fill>
<s:SolidColor color="#00EE00"/>
</s:fill>
</s:Rect>
</s:Group>
</s:Group>
<s:Label x="535" y="94" text="Blue" color="#0000CC" width="149" id="idBlue"/>
<s:Label x="535" y="114" text="Red" color="#EE0000" width="173" id="idRed"/>
<s:Label x="535" y="137" text="Green" color="#00EE00" width="173" id="idGreen"/>
</s:Application>
對不起。我已閱讀並測試useCapture,但它不起作用。它用於別的東西,而不是在兄弟之間傳播事件。 – Adrian 2010-04-21 14:21:33