2008-09-16 2 views
1

Ich habe einen Flash-Player, der eine Reihe von Songs über eine XML-Datei geladen hat.Wie kann ich verhindern, dass eine MP3-Datei im Streaming-Modus per Flash heruntergeladen wird?

Die Dateien beginnen nicht zu streamen, bis Sie einen auswählen.

Wenn ich schnell durch jede der 8 Dateien blättern kann, dann versucht Flash, jede der 8 Dateien gleichzeitig herunterzuladen.

Ich frage mich, ob es eine Möglichkeit gibt, die Datei zu löschen, die heruntergeladen wird. So wird die Bandbreite nicht aufgefressen, wenn jemand beschließt, auf viele Titelnamen zu klicken.

So etwas wie mySound.clear wäre toll, oder mySound.stopStreaming ..

Hat jemand hatte dieses Problem vor?

Grüße,

Chris

+0

Ist dieses ActionScript 2 oder 3? – grapefrukt

Antwort

1

Auschecken Sound.Close().

Aus der Dokumentation: „Schließt den Stream, so dass eventuelle Downloads von Daten einzustellen Keine Daten können nach der Methode close() aus dem Stream gelesen werden genannt wird.“

Dies ist die source code example aus die verknüpften Dokumente:

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; 
     } 
    } 
} 
0

Wenn Sie so etwas wie:

MySoundObject = nicht definiert;

Das sollte es tun.

Verwandte Themen