есть проблема с событием щелчка по пункту меню в flex Actionscript? - PullRequest
0 голосов
/ 09 ноября 2010

Я перебираю код несколько раз, но не могу понять, что здесь нужна помощь в решении проблемы;

 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

, но даже не фиксирует событие щелчка элемента

1 Ответ

2 голосов
/ 09 ноября 2010

Попробуйте изменить evt.item / evt.label на evt.currentTarget.item / evt.currentTarget.label или evt.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:...
...