Как вернуть значение из функции в AS3?Затем сохранить, чем значение в переменной, чтобы передать его другой функции? - PullRequest
0 голосов
/ 22 августа 2010

Я пытаюсь заставить функцию toggleClick возвращать powerData. Мне нужно хранить powerData в переменной и передать его другой функции для выполнения вычислений.

Внутри функции toggleClick я назначаю powerData для houseArray [e.currentTarget.name.toLowerCase ()];

 var powerData:int = houseArray[e.currentTarget.name.toLowerCase()];

Я пытался просто написать возврат PowerData - но это нарушает программу.

// функция toggleClick

  function toggleClick(e:MouseEvent) {

// Store "Power" Values of House Objects in Array
   var houseArray:Object = {lightA: 1, lightB: 1, lightC: 1,lightD: 1, lightE: 1,
                             comp: 2,
                             tv: 3,
                             stove: 4,
                             laundry: 5};

   // Store User Power in Variable called powerData
   // The currentTarget will equal powerData
   var powerData:int = houseArray[e.currentTarget.name.toLowerCase()];
   //return powerData;

  trace("movieClip Instance Name = " + e.currentTarget); // [object Comp]
  //trace(houseArray[e.currentTarget.name]); // comp
  trace("using currentTarget: " + e.currentTarget.name); // comp
  trace("powerData: " + powerData); // the amount of power that I clicked on
  //trace("houseArray: " + houseArray[0]); // the 0 index of house array
  trace(houseArray[e.currentTarget.name]); // currentTarget inside Array

   // how to find out which object selected

   if (e.currentTarget.currentFrame == 2)
   {
    e.currentTarget.gotoAndStop(3);
    e.currentTarget.bstate = 1;
   }

   if (e.currentTarget.currentFrame == 4)
   {
    e.currentTarget.gotoAndStop(1);
    e.currentTarget.bstate = 0;
   }

}

1 Ответ

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

Почему у вас нет определения powerData, кроме функции, значение powerData будет обновляться после каждого щелчка

var powerData:int;

function toggleClick(event:MouseEvent):void
{
   powerData = houseArray[e.currentTarget.name.toLowerCase()];

   performCalculation();
}

function performCalculation():void
{
    // you can use the powerData new value here
}

Или вы просто передаете значение powerData аргументам своей функции

var powerData:int;

function toggleClick(event:MouseEvent):void
{
   powerData = houseArray[e.currentTarget.name.toLowerCase()];

   performCalculation(powerData);
}

function performCalculation(value:int):void
{
    // access the new value here
}

для работы "return powerData" ваша функция должна возвращать значение int


function toggleClick(event:MouseEvent):int
{
   return powerData;
}

, но я не уверен, как это будет работать в вашем коде, хотя ...

...