Flex4之简单菜单制作

首先呢说明一下,我写的这个菜单呢,为了符合我的项目需要没有用到任何menu组件,用到时list组件进行构造,中间有一个比较重要:就是点击目标对象时菜单出来,点击其他地方时菜单消失,这个问题之前想了好多办法都没解决,后来发现时要在全局有个click事件,在这个全局click事件中进行处理就OK

那么看一下我的程序吧

 

Xml代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: large"><?xml version="1.0" encoding="utf-8"?>  
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    
  3.                xmlns:s="library://ns.adobe.com/flex/spark"    
  4.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"  
  5.                creationComplete="init()"  
  6.                click="application1_clickHandler(event)" xmlns:components="components.*">  
  7.     <s:layout>  
  8.         <s:BasicLayout/>  
  9.     </s:layout>  
  10.     <fx:Script>  
  11.         <![CDATA[  
  12.             import mx.collections.ArrayList;  
  13.             var list:mx.controls.List=new mx.controls.List();  
  14.             protected function init():void{  
  15.                 var arr:ArrayList=new ArrayList();  
  16.                 arr.addItem("百度");  
  17.                 arr.addItem("有道");  
  18.                 arr.addItem("必应");  
  19.                   
  20.                 list.dataProvider=arr;  
  21.                 list.x=408;  
  22.                 list.y=46;  
  23.                 list.width=40;  
  24.                 list.height=90;  
  25.                 list.id="cityList";  
  26.                   
  27.                 this.addElement(list);  
  28.                 list.setVisible(false);  
  29.                   
  30.                   
  31.                 list.addEventListener(MouseEvent.CLICK,listClick);  
  32.                   
  33.             }  
  34.               
  35.             protected function listClick(event:MouseEvent):void{  
  36.                 mylabel.text=list.selectedItem.valueOf();  
  37.                 list.visible=false;  
  38.                 var u:URLRequest;  
  39.                 if(mylabel.text=="百度"){  
  40.                     u=new URLRequest("http://www.baidu.com");  
  41.                 }else if(mylabel.text=="有道"){  
  42.                     u=new URLRequest("http://www.youdao.com");  
  43.                 }else if(mylabel.text=="必应"){  
  44.                     u=new URLRequest("http://www.bing.com");  
  45.                 }  
  46.                 navigateToURL(u);//跳到新窗口  
  47.             }  
  48.               
  49.               
  50.               
  51.             //注意这里,就是在这里进行事件判断处理  
  52.             protected function application1_clickHandler(event:MouseEvent):void  
  53.             {  
  54.                 if(event.target.id=="linkBtnImg"){  
  55.                     list.visible=true;  
  56.                 }else{  
  57.                     list.visible=false;  
  58.                 }  
  59.             }  
  60.               
  61.               
  62.       
  63.         ]]>  
  64.     </fx:Script>  
  65.        
  66.        
  67.     <s:Label id="mylabel"  x="285" y="183"/>  
  68.     <mx:LinkButton id="linkBtnImg"  x="285" y="40" icon="@Embed('img/11111.png')" width="116"/>  
  69.   
  70.   
  71. </s:Application>  
  72. </SPAN>  

 点击菜单上每一项都可以跳到新网址上去

 

posted on 2012-02-25 08:56  唐朝  阅读(2180)  评论(0编辑  收藏  举报