Просмотр полной версии : [Sound] Прерывание загрузки.
Привет, как можно прервать загрузку mp3 файла, после того как она началась? Звук грузиться как потоковый.
должно помочь
close() : Void
Stops playing all data on the stream, sets the NetStream.time property to 0, and makes the stream available for another use.
Но я загружаю звук через экземпляр Sound:
sound.loadSound(url, true);
И потом, NetStream для работы c .flv
откуда ж я знал )) а вообще хелп полезная штука )
stop([linkageID:String]) : Void
Stops all sounds currently playing if no parameter is specified, or just the sound specified in the idName parameter.
Конечно, я пытался использовать stop(), при этом проигрывание останавливается а загрузка продолжается. Вот код:
import mx.utils.Delegate;
import classes.*;
class ManageSound {
public var url:String;
public var autostart:Boolean;
public var icon:MovieClip;
public var sound:Sound;
public var container:MovieClip;
private var __defined:Boolean;
private var __checkProgressIID:Number;
function ManageSound($url:String, $autostart:String, $icon:MovieClip) {
url = $url;
autostart = $autostart.toLowerCase() == "yes" ? true : false;
icon = $icon;
init();
}
public function init():Void {
icon.onRelease = Delegate.create(this, onReleaseIcon);
__defined = false;
_root.preloader._visible = false;
if (url != undefined && url != "") {
icon._mark = "enabled";
icon.enabled = true;
if (autostart) {
_loadSound();
} else {
icon._mark = "disabled";
}
} else {
icon._mark = "disabled";
icon.enabled = false;
}
}
private function _loadSound():Void {
if (!__defined) {
container = _root.createEmptyMovieClip("container", 0.);
sound = new Sound(container);
sound.onLoad = Delegate.create(this, onSoundLoad);
sound.onSoundComplete = Delegate.create(this, onSoundComplete);
sound.loadSound(url, true);
__checkProgressIID = setInterval(this, "checkProgress", 200);
_root.preloader._visible = true;
}
sound.start();
}
private function _stopSound():Void {
sound.stop();
if (!__defined) {
//*** загрузка не закончена, ее нужно прекратить ***//
/*/
container.unloadMovie();
container.removeMovieClip();
sound.loadSound("not realy url");
delete sound;
//*/
}
}
public function onReleaseIcon():Void {
if (icon._mark == "enabled") {
_stopSound();
icon._mark = "disabled";
} else {
_loadSound();
icon._mark = "enabled";
}
}
public function checkProgress():Void {
var percents = Math.floor((sound.getBytesLoaded() / sound.getBytesTotal()) * 100);
_root.preloader.gotoAndStop(percents);
if (percents == 100) {
_root.preloader._visible = false;
}
}
private function onSoundComplete():Void {
sound.start();
}
private function onSoundLoad(success:Boolean):Void {
__defined = true;
clearInterval(__checkProgressIID);
_root.preloader._visible = false;
if (success) {
} else {
_global.error = "1001";
icon._mark = "disabled";
icon.enabled = false;
}
}
public function toString():String {
return "[object MangeSound]";
}
}
Последовательность вызовов функций прибл. такая:
init()->_loadSound()->onReleaseIcon()->_stopSound()|__defined=false|
В _root :
import classes.*;
_root.soundUrl = "sounds/tenors.mp3";
_root.soundAutoStart = "no";
var sound_manager:ManageSound = new ManageSound(_root.soundUrl, _root.soundAutoStart, _root.icon);
1. Не надо путать с
2. Если вы воспользуетесь поиском по форуму, то найдете ответы.
Нашел вот : sound.loadSound(null, true);
но у меня такой вызов не остановил загрузку..
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.