2011-08-10 41 views
1

這裏我試圖在​​中獲取目標的ID。例如,當我點擊按鈕或圖像面板的​​函數首先執行。在這裏我想捕捉按鈕/圖像的ID。當它的父母在Flex中生成事件時找到目標的ID

private function init():void 
      { 
       pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe); 
      } 

      private function showMe(eve:MouseEvent):void 
      { 
       Alert.show("Hello"); 
      } 

    <s:Panel id="pnl" height="400" width="700" creationComplete="init()"> 
       <s:Button id="btn1" label="showParents"/> 
       <mx:Image id="img1" source="markupIndicator.png" buttonMode="true"/> 

    </s:Panel> 

任何幫助表示讚賞。

回答

3

這不是很清楚爲什麼你需要捕捉面板的mouseDown,並試圖讓內部控制的IDS,但你可以改變你的代碼是這樣的:

private function init():void 
      { 
       pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe); 
      } 

      private function showMe(eve:MouseEvent):void 
      { 
       Alert.show("Hello " + eve.currentTarget.id); 
      } 

      private function showMyID(eve:MouseEvent):void 
      { 
       showMe(eve); 
      } 

    <s:Panel id="pnl" height="400" width="700" > 
       <s:Button id="btn1" label="showParents" click="showMyID(event)"/> 
       <mx:Image id="img1" source="markupIndicator.png" click="showMyID(event)" buttonMode="true"/> 

    </s:Panel> 
+0

嗨@Constantiner,eve.currentTarget是面板。所以,我得到小組的ID。 –

+0

我修改了我的答案 – Constantiner

+0

你說得對。即使我想傾聽窗格的點擊。謝謝您的幫助。 –

2

我認爲應該工作:

private function init():void 
    { 
     pn1background.addEventListener(MouseEvent.MOUSE_DOWN,showMe); 
      btn1.addEventListener(MouseEvent.MOUSE_DOWN,showMe); 
      img1.addEventListener(MouseEvent.MOUSE_DOWN,showMe); 
    } 

    private function showMe(eve:MouseEvent):void 
    { 
     trace(eve.currentTarget.id); 
    } 

    <s:Panel id="pnl" height="400" width="700" > 
       <s:Button id="btn1" label="showParents"/> 
       <mx:Image id="img1" source="markupIndicator.png" buttonMode="true"/> 
       <s:Panel id="pn1background" height="400" width="700"/> 
    </s:Panel> 
+0

嗨@Laurent,我試過給父母身份證(pnl)。 –

+0

我寫了「事件」而不是「前夕」(如在你的代碼中)。再試一次更新的例子? –

+0

嗨@Laurent,eve.currentTarget指示面板及其給定面板的ID。 –

相關問題