2009-05-05 78 views
1

// ActionScript代碼添加事件,菜單選項

進口mx.controls.Menu; import flash.events.MouseEvent;

 private var menu12:Menu; 

     private function init():void { 
      menu12 = new Menu(); 
      menu12.labelField = "@label"; 
      menu12.dataProvider = xmlDP; 
      menu12.showRoot = false; 
      menu12.width = popUpButton.width; 
      popUpButton.popUp = menu12; 
     } 

// XML信息

 <menu1 label="Some introduction" /> 
     <menu2 label="Disabled State (disabled)." enabled="false" /> 
     <sep1 type="separator" /> 
     <menu3 label="parent"> 
      <menu4 label="child1" /> 
     </menu3> 
     <menu5 label="parent (disabled)" enabled="false"> 
      <menu6 label="child1" /> 
      <menu7 label="child2" /> 
      <menu8 label="child3" /> 
     </menu5> 
     <menu9 type="separator" /> 
     <menu10 type="separator" /> 
     <menu11 id="leftButton" label="Left" type="radio" groupName="radioGroup" toggled="true" enabled="true" /> 
     <menu12 id="rightButton" label="Right" type="radio" groupName="radioGroup" enabled="false" /> 
     <menu13 id="popupButton" label="Popup" type="radio" groupName="radioGroup" enabled="false" /> 

    </root> 

//組件

<mx:PopUpButton id="popUpButton" 
      label="Please select an item" 
      openAlways="true" 
      creationComplete="init();" /> 

如何添加ADDEVENTS在彈出式按鈕菜單。

回答

1

這裏是我如何做到這一點....

添加屬性到每個XML項存儲的每個菜單項事件名稱:

<menu4 label="child1" eventName="child1Event" /> 

然後添加一個事件監聽器爲每個已知事件在父組件被初始化:

private function init():void 
{ 
    menu12 = new Menu(); 
    ... 

    addEventListener("child1Event", child1EventHandler); 
} 

private function child1EventHandler(event:Event):void 
{ 
    .... 
} 

(你甚至可以解析XML添加事件偵聽器動態

private function init():void 
{ 
    menu12 = new Menu(); 
    ... 

    addEventListener("child1Event", 
     function(event:Event) 
     { 
      alert(event.type); 
     } 
     ); 
} 

添加itemClick事件處理程序:

private function popUpButton_itemClickHandler(event:MenuEvent):void 
{ 
    if ([email protected] != null) 
     dispatchEvent(new Event([email protected])); 
} 

<mx:PopUpButton id="popUpButton" 
     label="Please select an item" 
     openAlways="true" 
     creationComplete="init();" 
     itemClick="popUpButton_itemClickHandler(event);" /> 
0

添加

menu12.addEventListener(MenuEvent.ITEM_CLICK,itemClickHandler);

在你的初始化函數的末尾,則

private function itemClickHandler(event:MenuEvent):void{}

添加監聽功能,以您的腳本。

+0

`menu12.addEventListener(MenuEvent.ITEM_CLICK,itemClickHandler);` - 這是菜單,但我想添加到每個XML的節點。例如,如果我想爲xml中的特定節點添加事件...我該怎麼做。 – Kevin 2009-05-05 12:54:28