Как получить значение из объекта (ассоциативный массив) во флэш-памяти и переназначить это значение новой переменной? - PullRequest
0 голосов
/ 18 августа 2010

У меня есть несколько кнопок переключения на моей стадии вспышки. Эти кнопки переключения являются MovieClips. Если пользователь нажимает на один из мувиклипов, я хочу найти способ просмотреть объект ниже - получить соответствующее значение на основе того, что щелкнул пользователь, - и сохранить это значение в новом значении var powerData который затем будет передан функции для выполнения расчетов.

           var houseArray:Object = {lightA:"1", 
                                    lightB:"1", 
                                    lightC: "1"
                                    lightD: "1"
                                    lightE: "1"
                                    comp: "2"
                                    tv: "3"
                                    stove: "4"
                                    laundry: "5"};

Например: Если пользователь нажал на «Comp» MovieClip тогда -> var powerData = 2; (потому что в houseArray: Object -> comp: "2")

1 Ответ

0 голосов
/ 18 августа 2010

Вам нужно будет назвать ваши экземпляры MovieClips после свойств объекта houseArray. В вашем примере экземпляр Comp должен называться «comp», телевизор «tv» и т. Д. ...

  //Could also be , private var comp:Comp;
  private var comp:MovieClip;

  private function init():void
  {
      comp = new Comp();
      comp.name = "comp";
   }

  private function mouseClickHandler(event:MouseEvent):void
  {
      var buttonName:String = event.currentTarget.name;

      //since the houseArray property value is a String, the result needs 
      //to be typed as int( or Number, depending on context )
      var powerData:int = int( houseArray[buttonName] );

      performCalculations(powerData);
  }

  private function performCalculations(value:int):void
  {
      //your code here
  }

Полагаю, у вас есть веские причины иметь свойства houseArray в виде строк ...

...