每次按下按钮,我都想加载一个新的URL(在数组中)。我有以下代码:
public function selectRadio(radio:Radio):void {
var soundR:Sound = new Sound();
if(!playing) {
soundR.load(new URLRequest(radio.getURL()));
soundChannel = soundR.play();
playing = true;
}
else{
soundChannel.stop();
playing = false;
}
trace("You are now listening to " + radio.getTitle());
}
但它给了我这个错误: “将flash.net:URLRequest类型的值隐式强制转换为不相关的类型字符串”
如果我这样离开它就可以了:
soundR.load(radio.getURL());
但如果我这样做,我只能按下播放并停止4次。在第四个之后没有声音,就像它无法加载URL一样。
有可能解决这个问题吗?
答案 0 :(得分:1)
Radio.getURL()应该返回一个字符串而不是一个URLRequest?
啊没关系我看到你试图通过删除URLRequest来避免这种情况,但是你只遇到了4个连接的问题。
除了最简单的情况之外,您的应用程序应该注意声音的加载进度并在加载过程中注意错误。例如,如果单击声音相当大,则在用户单击触发声音的按钮时可能无法完全加载。尝试播放未加载的声音可能会导致运行时错误。在让用户采取可能会开始播放声音的操作之前,等待声音完全加载会更安全。
http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d25.html
如果您无法等待声音完全加载,则可能需要NetStream: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html