我有一个Flash播放器,它有一组通过xml文件加载的歌曲。
在您选择文件之前,文件不会开始流式传输。
如果我快速浏览8个文件中的每个文件,则闪存开始尝试同时下载8个文件中的每个文件。
我想知道是否有办法清除正在下载的文件。因此,如果有人决定点击许多曲目名称,那么带宽就不会被占用。
像mySound.clear这样的东西会很棒,或者是mySound.stopStreaming ..
以前有没有人遇到这个问题?
此致
克里斯
答案 0 :(得分:1)
从文档:“关闭流,导致任何数据下载停止。调用close()方法后,不会从流中读取数据。”
这是来自关联文档的source code example:
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;
}
}
}
答案 1 :(得分:0)
如果您执行以下操作:
MySoundObject = undefined;
应该这样做。