2010-03-21 42 views
1

我想在Flex3中的數據網格上有一個雙擊事件。以下示例僅適用於Accordion(id =「mustBeSecond」)容器位於DataGrid之後。爲什麼組件的順序很重要,我該怎麼做才能防止這種行爲? (這個例子不工作。如果你改變「mustBeSecond」的順序,「gridReportConversions」的例子正常工作)Flex:根據組件順序雙擊數據網格上的事件傳播?

<mx:Script> 
    <![CDATA[ 
      import mx.controls.Alert; 
      import mx.collections.ArrayCollection; 

      [Bindable] private var dp:ArrayCollection = new ArrayCollection([ 
       {qty:1,referer:'http://google.com'}, 
       {qty:25,referer:'http://cnn.com'}, 
       {qty:4,referer:'http:stackoverflow.com'}]); 

      private function refererRowDoubleClicked(e:Event):void { 
       Alert.show("double click"); 
      } 

    ]]> 
</mx:Script> 


<mx:HBox width="100%" height="100%"> 
    <mx:Accordion width="200" height="200" id="mustBeSecond"> 
    <mx:Canvas label="Navigation Box" width="100%" height="100%"> 
     <mx:VBox> 
      <mx:LinkButton label="First Link" /> 
      <mx:LinkButton label="Second Link" /> 
     </mx:VBox> 
    </mx:Canvas> 
    </mx:Accordion>     
    <mx:DataGrid id="gridReportConversions" height="100%" width="100%" dataProvider="{this.dp}" 
    mouseEnabled="true" doubleClickEnabled="true" itemDoubleClick="refererRowDoubleClicked(event)"> 
     <mx:columns> 
     <mx:DataGridColumn width="75" dataField="qty" headerText="Qty" /> 
     <mx:DataGridColumn dataField="referer" headerText="URL" /> 
     </mx:columns> 
    </mx:DataGrid> 
</mx:HBox> 

+0

如果使用AdvancedDataGrid,會發生同樣的事情嗎? – Robusto 2010-03-21 02:27:20

回答

1

我在Flex和它測試你的代碼他們所處的順序沒有任何區別。雙擊事件是以任何方式解決的。這是一個新的項目,沒有其他代碼,除了Flex應用程序設置的默認項目。

有時當一個Flex項目開始動作怪異時,它有助於點擊Project - > Clean。

您是否在「問題」窗格中看到任何錯誤或通知?

+0

+1爲「項目>清潔」 – Robusto 2010-03-21 02:31:36

+2

我調查了一天中的問題,並認爲這是Flash Player和Firefox在特殊情況下的問題。獨立的swf和Tomcat提供的版本之間甚至有所不同。我在adobe bugbase中發現了一個公開問題。 Flash Player團隊與Firefox團隊合作尋找解決方案。 https://bugs.adobe.com/jira/browse/FP-3744 該示例(以及我的項目編碼)在Safari中正常工作。對不起,浪費你的時間。我是Flex的新手,從未考慮過使用其他瀏覽器進行測試。 – MyMacAndMe 2010-03-21 21:50:45