变量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);
答案 0 :(得分:1)
您需要声明变量在之外的函数。如何执行此操作取决于上下文。这个函数在哪里被定义?在Flash中时间轴上的“操作窗口”中?或者在Flex中的<script>
块内?或其他地方?
看起来你在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);
如果这不起作用,请告诉我更多细节,我们会对其进行整理。
答案 1 :(得分:0)
如果您使用的是Flash CS,则应该利用DocumentClass。在这种情况下,您可以将currentIndex定义为私有变量,它将在您的函数中递增/递减。
这比在“动作”面板中编写代码要好得多,允许更大的灵活性,并且不会因框架相关代码而遇到问题。