Как увеличить глобальную переменную внутри функции? - PullRequest
0 голосов
/ 31 октября 2010

Переменная currentIndex объявлена ​​глобально и инициализируется с определенным значением, скажем, «0».Как мне сохранить значение currentIndex, которое увеличивается каждый раз, когда вызывается функция?В данном коде каждый раз, когда вызывается функция, значение инициализируется заново.

function nextSong(e:Event):void 
{
        sc.stop();

 currentIndex = currentIndex + 1;

 var nextSongFunc:URLRequest = new URLRequest(songlist[currentIndex].file);
 var nextTitle:Sound = new Sound();
 nextTitle.load(nextSongFunc);
 currentSound = nextTitle;
 sc = currentSound.play();

 sc.addEventListener(Event.SOUND_COMPLETE, nextSong);
}

NextBtn.addEventListener(MouseEvent.CLICK, nextSong);

Ответы [ 2 ]

1 голос
/ 31 октября 2010

Вам необходимо объявить переменную вне функции. Как вы это сделаете, зависит от контекста. Где определяется эта функция? В «окне действий» на временной шкале во Flash? или внутри блока <script> во Flex? или где-то еще?

Похоже, вы находитесь в инструменте Flash, в окне действий. Если так, то просто сделайте это так:

var currentIndex:int = 0;

function nextSong(e:Event):void {
  sc.stop();
  currentIndex = currentIndex + 1;

  var nextSongFunc:URLRequest = new URLRequest(songlist[currentIndex].file); 
  var nextTitle:Sound = new Sound(); 
  nextTitle.load(nextSongFunc); 
  currentSound = nextTitle; 
  sc = currentSound.play();

  sc.addEventListener(Event.SOUND_COMPLETE, nextSong); 
}

NextBtn.addEventListener(MouseEvent.CLICK, nextSong);

Если это не сработает, дайте мне знать некоторые подробности, и мы разберемся с ними.

0 голосов
/ 31 октября 2010

Если вы используете Flash CS, вы должны воспользоваться DocumentClass.В таком случае вы можете определить currentIndex как частную переменную, и она будет увеличиваться / уменьшаться в ваших функциях.

Это гораздо лучший подход, чем написание кода на панели «Действия», обеспечивает большую гибкость и не вызывает проблем из-за фрейм-зависимого кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...