1

我有一个 Flash 播放器,其中包含一组通过 xml 文件加载的歌曲。

在您选择一个文件之前,这些文件不会开始流式传输。

如果我快速循环浏览这 8 个文件中的每一个,那么 flash 将开始尝试同时下载这 8 个文件中的每一个。

我想知道是否有办法清除正在下载的文件。因此,如果有人决定单击大量曲目名称,则不会耗尽带宽。

像 mySound.clear 这样的东西会很棒,或者 mySound.stopStreaming..

以前有人遇到过这个问题吗?

问候,

克里斯

4

2 回答 2

1

查看Sound.Close()

来自文档:“关闭流,导致任何数据下载停止。调用 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;
        }
    }
}
于 2008-11-03T20:44:26.123 回答
0

如果您执行以下操作:

MySoundObject = 未定义;

那应该这样做。

于 2008-09-16T18:16:20.790 回答