2010-10-31 2 views
0

Переменная 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); 

ответ

1

Вы должны объявить переменная вне функция. Как вы это делаете, это зависит от контекста. Где эта функция определена? В окне действий на временной шкале во 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

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

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

Смежные вопросы