Ładowanie plików do Flasha AS3 – dodatek do kursu dtwarzacz Mp3
Jako dodatek do kursu Odtwarzacz Mp3 Flash, poniżej przedstawię prosty sposób na załadowanie odtwarzacza Mp3 do innego pliku Flasha. Jednocześnie zamieszczam uniwersalny fragment kodu,…
Jako dodatek do kursu Odtwarzacz Mp3 Flash, poniżej przedstawię prosty sposób na załadowanie odtwarzacza Mp3 do innego pliku Flasha. Jednocześnie zamieszczam uniwersalny fragment kodu, który pozwala z pomocą ActionScript 3 ładować do Flasha pliki .swf. Warto zauważyć istotną kwestię:
- Pliki swf przygotowane w ActionScript 3 można ładować wyłącznie do plików tworzonych w ActionScript 3. Innymi słowy, nie można załadować pliku w AS3 do pliku w AS2!
- Plików swf przygotowanych w AS2, nie można ładować do plików w AS3
Pomimo, że są to różne pliki swf, jak widać Adobe nie daje nam możliwości łączenia plików AS2 z AS3.
Przejdźmy do ładowania plików swf do Flasha z pomocą ActionScript 3. Kod wygląda następująco:
package {
import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.events.Event;
import flash.events.HTTPStatusEvent;
import flash.events.IEventDispatcher;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.display.LoaderInfo;public class Main2 extends MovieClip {
private var loader:Loader;
public function Main2(){
this.addEventListener(Event.ADDED_TO_STAGE , init);
}
private function init(e:Event):void {
loader = new Loader();
//loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onContentLoadComplete);
configureListeners(loader.contentLoaderInfo);loader.load(new URLRequest(„mp3Player.swf„));
}private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(Event.INIT, initHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
}private function completeHandler(event:Event):void{
var loader:Loader = LoaderInfo(event.target).loader;
trace(„complete”)
//this.addChild(event.target.content);
this.addChild(loader);
}private function httpStatusHandler(event:HTTPStatusEvent):void {
trace(„httpStatusHandler: ” + event);
}private function initHandler(event:Event):void {
trace(„initHandler: ” + event);
}private function ioErrorHandler(event:IOErrorEvent):void {
trace(„ioErrorHandler: ” + event);
}private function openHandler(event:Event):void {
trace(„openHandler: ” + event);
}private function progressHandler(event:ProgressEvent):void {
trace(„progressHandler: bytesLoaded=” + event.bytesLoaded + ” bytesTotal=” + event.bytesTotal);
}private function unLoadHandler(event:Event):void {
trace(„unLoadHandler: ” + event);
}}
}
Przykładowy plik z zastosowaniem tego kodu możesz pobrać tutaj:
http://www.eduweb.pl/przyklady/ladowanieAS3.zip
W tekście wyróżniłem fragment ścieżki do pliku, czyli w naszym przypadku mp3Player.swf, oczywiście można wykorzystać inny plik .swf.
Aby w ten sposób załadować nasz player do Flasha, należy jeszcze dokonać pewnych zmian w samym kodzie odtwarzacza, a konkretnie w jednej z jego klas. Wszystkie potrzebne pliki można ściągnąć z pomocą linku, który zamieszczam poniżej:
http://www.eduweb.pl/przyklady/ladowaniePlayer.zip
Należy pamiętać aby po podmianie klasy Main.as ponownie opublikować mp3Player.fla.
To wszystko, mam nadzieję, że kod okaże się przydatny 🙂
Grzegorz Róg