我有一个 Flash 播放器,其中包含一组通过 xml 文件加载的歌曲。
在您选择一个文件之前,这些文件不会开始流式传输。
如果我快速循环浏览这 8 个文件中的每一个,那么 flash 将开始尝试同时下载这 8 个文件中的每一个。
我想知道是否有办法清除正在下载的文件。因此,如果有人决定单击大量曲目名称,则不会耗尽带宽。
像 mySound.clear 这样的东西会很棒,或者 mySound.stopStreaming..
以前有人遇到过这个问题吗?
问候,
克里斯
来自文档:“关闭流,导致任何数据下载停止。调用 close() 方法后,不能从流中读取任何数据。 ”
这是来自链接文档的源代码示例:
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
public class Sound_closeExample extends Sprite {
private var snd:Sound = new Sound();
private var button:TextField = new TextField();
private var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
public function Sound_closeExample() {
button.x = 10;
button.y = 10;
button.text = "START";
button.border = true;
button.background = true;
button.selectable = false;
button.autoSize = TextFieldAutoSize.LEFT;
button.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(button);
}
private function clickHandler(e:MouseEvent):void {
if(button.text == "START") {
snd.load(req);
snd.play();
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
button.text = "STOP";
}
else if(button.text == "STOP") {
try {
snd.close();
button.text = "Wait for loaded stream to finish.";
}
catch (error:IOError) {
button.text = "Couldn't close stream " + error.message;
}
}
}
private function errorHandler(event:IOErrorEvent):void {
button.text = "Couldn't load the file " + event.text;
}
}
}
如果您执行以下操作:
MySoundObject = 未定义;
那应该这样做。