大家在 flashMX,flashMX2004,flash8中分别运行一下下面代码,看看出现什么不同的问题
- function testSound(sound_url)
- {
- var my_sound = new Sound();
- my_sound.loadSound(sound_url, true);
- my_sound.onLoad = function(success)
- {
- if (success)
- {
- trace("ok");
- } else
- {
- trace("wrong");
- }
- };
- }
- testSound("a.mp3")
flashMX不输出'ok'但是声音开始播放,证明函数中声明的my_sound对象在函数执行完后没有在内存中删除
flashMX2004中不输出'ok'声音也不播放,我推测的结论是函数中声明的my_sound对象在函数执行完时他没有来得及加载就在内存中删除了。
flash8中输出'ok',但声音只播放一下就停了。我推测的结论是在flash8中Sound对象比别的版本加载声音都要快,意思是函数还没执行完 my_sound就加载播放了。但是函数执行完毕的时候my_sound对象被删除。
所以建议大家最好把sound对象当一个参数传给一个函数用,不要在函数里声明一个局部变量来用
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}