Flex:根据组件顺序双击数据网格上的事件传播?

Flex:根据组件顺序双击数据网格上的事件传播?

问题描述:

我想在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:*.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

我在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