2010-11-09 31 views
0

我通過代碼幾次,但無法弄清楚這裏需要幫助的問題是代碼;在Flex動作腳本中的菜單項單擊事件有問題?

menuItems  = [{label:"60 Minutes View" , type:"radio", toggled:"true"},{label:"30 Minutes View" , type:"radio"},{label:"20 Minutes View" , type:"radio"},{label:"15 Minutes View" , type:"radio"},{label:"10 Minutes View" , type:"radio"},{label:"6 Minutes View" , type:"radio"},{label:"5 Minutes View" , type:"radio"}]; 

menu  = Menu.createMenu(parentInstance, menuItems, false); 
menu.addEventListener(MenuEvent.ITEM_CLICK,menuClick); 

protected function menuClick(evt:MenuEvent):void 
    { 
    Alert.show("here is " + evt.item + " 23"); 
    switch (evt.label) 
    { 
    case "60 Minutes View": 
    this.ChangeLayout(60); 
    break; 
    case "30 Minutes View": 
    this.ChangeLayout(30); 
    break; 
    case "20 Minutes View": 
    this.ChangeLayout(30); 
    break; 
    case "15 Minutes View": 
    this.ChangeLayout(15); 
    break; 
    case "10 Minutes View": 
    this.ChangeLayout(10); 
    break; 
    case "6 Minutes View": 
    this.ChangeLayout(6); 
    break; 
    case "5 Minutes View": 
    this.ChangeLayout(5); 
    break; 
    default: 
    break; 

    }//end switch 
    }//end function 

但是甚至沒有捕獲項目點擊事件。

回答

2

嘗試改變evt.item/evt.labelevt.currentTarget.item/evt.currentTarget.labelevt.target.item/evt.target.label


還只是一個建議,如果您的字符串創建常量對象,你的代碼會更容易調試因爲什麼都不會引起通過拼寫錯誤,編譯器將會輸入錯誤的常量,並允許您只編輯一次字符串。

所以不是:

menuItems = [{label:"60 Minutes View" , type:"radio", toggled:"true"}]; 

switch (evt.currentTarget.label) 
     { 
     case "60 Minutes View":... 

你可以創建一個常數:

private static const 60_MIN_VIEW:String = "60 Minutes View"; 

menuItems = [{label:60_MIN_VIEW , type:"radio", toggled:"true"}]; 

switch (evt.currentTarget.label) 
     { 
     case 60_MIN_VIEW:...