今天在<精通Flex3.0>这本书看到一个很好的实例上下文菜单的例子,反正没什么事就自己动手敲了一下,现在把它保存在这里,方便自己以后学习和使用,哈哈!!!!
下面是代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.MenuEvent;
import flash.geom.Point;
import mx.controls.Menu;
import mx.controls.Alert;
import flash.events.MouseEvent;
private var myMenu:Menu;
private var point:Point = new Point();
private function init():void{
source_txa.addEventListener(MouseEvent.CLICK,showMenu);
}
private function showMenu(evt:MouseEvent):void{
myMenu = Menu.createMenu(panel,myMenuData,false);
myMenu.labelField = "@label";
myMenu.addEventListener("itemClick",menuHandler);
point.x = evt.stageX;
point.y = evt.stageY;
myMenu.show(point.x,point.y);
}
private function menuHandler(evt:MenuEvent):void{
var searchRequest:URLRequest;
if(evt.item.@eventName == "delete"){
source_txa.text = "";
}else if(evt.item.@eventName == "baidu"){
searchRequest = new URLRequest("http://www.baidu.com/baidu?word="+source_txa.text);
navigateToURL(searchRequest);
}else if(evt.item.@eventName == "google"){
searchRequest = new URLRequest("http://www.google.cn/search?q="+source_txa.text);
navigateToURL(searchRequest);
}
}
]]>
</mx:Script>
<mx:XML id="myMenuData">
<root>
<menuitem label="删除" eventName="delete"/>
<menuitem label="搜索" eventName="search">
<menuitem label="使用百度" eventName="baidu"/>
<menuitem label="使用google" eventName="google"/>
</menuitem>
</root>
</mx:XML>
<mx:Panel id="panel">
<mx:Form>
<mx:FormHeading label="弹出菜单演示"/>
<mx:FormItem label="说明">
<mx:TextArea id="source_txa" editable="false" selectable="false" text="Flex入门">
</mx:TextArea>
</mx:FormItem>
</mx:Form>
</mx:Panel>
</mx:Application>