我正在使用AS3在我的网站上构建一个非常简单的MP3播放器。到目前为止,播放和暂停按钮工作正常,但是当我尝试移动滑块然后单击暂停按钮时,它不会暂停,然后再次单击播放按钮会使其播放新文件。
我假设由于某种原因,当我从我的MouseEvent调用playMp3函数时,它在一个对象或其他东西而不是根目录,所以它就像加载一个新的声音文件,但我不知道如何解决这个问题。
这是我的代码,欢迎任何有关我的代码的其他建议,我是一个菜鸟,并且总是在寻找更好的方法来做事:
答案 0 :(得分:1)
看起来你的问题是由MOUSE_UP事件引起的。
在pickupSlider函数中添加:
parent.addEventListener(MouseEvent.MOUSE_UP,dropSlider);
但是在dropSlider函数中你只删除了MOUSE_MOVE的监听器,所以MOUSE_UP将保持caling dropSlider函数。如果您要添加:
parent.removeEventListener(MouseEvent.MOUSE_UP,dropSlider);
你的dropSlider函数应该可以正常工作。
// TIP
如果您从未删除它们,则不必每次在playMp3和pauseMp3函数中添加CLICK侦听器。您可以在开始时添加它们,并在需要时继续添加/删除按钮(或使用.visible true / false)。即使将对象从舞台上移除,监听器仍会附加到对象上。它是importatnt,因为如果有一天你想要移除对象并让听众离开它,垃圾收集器就不会接受它并且你会有内存泄漏。
答案 1 :(得分:0)
您似乎没有删除MOUSE_UP
函数中的dropSlider()
侦听器。
因此,当您单击暂停按钮(可能位于滑块轨道的左侧)时,它会调用dropSlider
,其x值小于40,将曲目重置为开头。
将此行添加到dropSlider()
函数中,您应该很高兴:
parent.removeEventListener(MouseEvent.MOUSE_UP, dropSlider);