我有一个自定义DataGrid,我想添加一个自定义菜单:
public function MyCustomDataGrid() {
super();
init();
}
private function init():void {
var _copyElementMenuItem:ContextMenuItem = new ContextMenuItem("Copier Donnée");
_copyElementMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, handleCopyData);
this.contextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
contextMenu.customItems = [ _copyElementMenuItem ];
}
问题是我的自定义菜单项从未显示过,我总是最终得到标准的Flash上下文菜单:
我错过了什么?我怎么能麻烦拍这个?谢谢。
答案 0 :(得分:1)
它适用于我。看看我的代码。
//应用
<?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" xmlns:custommenu="com.custommenu.*">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]private var collection:ArrayCollection = new ArrayCollection([
{field01:"field01", field02:"field02"},
{field01:"field01", field02:"field02"}
]);
]]>
</fx:Script>
<s:VGroup x="20" y="20">
<custommenu:MyCustomDataGrid
dataProvider="{collection}"
width="200" height="100">
<custommenu:columns>
<s:ArrayList>
<s:GridColumn dataField="field01" headerText="Field 1"/>
<s:GridColumn dataField="field02" headerText="Field 2"/>
</s:ArrayList>
</custommenu:columns>
</custommenu:MyCustomDataGrid>
</s:VGroup>
</s:Application>
// MyCustomDataGrid
<?xml version="1.0" encoding="utf-8"?>
<s:DataGrid xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
protected function init():void
{
var _copyElementMenuItem:ContextMenuItem = new ContextMenuItem("Copier Donnée");
_copyElementMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, handleCopyData);
this.contextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
contextMenu.customItems = [ _copyElementMenuItem ];
}
private function handleCopyData(evt:ContextMenuEvent):void
{
Alert.show("Hello!");
}
]]>
</fx:Script>
</s:DataGrid>