Nu je weet hoe tekst en XML bestanden ingelezen worden, kun je deze struktuur ook gebruiken om allerlei andere content binnen Flash te halen
Het laden van content
Een Flash bestand kan o.a. de volgende content laden:- SWF bestanden
- Plaatjes
- Geluid
- Video
Je kunt de Loader class gebruiken voor het laden van SWF bestanden en plaatjes (JPG, GIF of PNG bestanden).
Het is handig een masker voor het Loader object te definieren.
Hiermee zorg je dat de geladen content (wat een child van het Loader object is) alleen binnen dat masker op de Stage word gezet.
zie code:
import flash.display.*; import flash.net.URLRequest; var vierkant:Shape = new Shape(); vierkant.graphics.beginFill(0xFFFFFF); vierkant.graphics.drawRect(0, 0, 100, 100); addChild(vierkant); var lader:Loader = new Loader(); lader.mask = vierkant; var url:String = "http://www.server.nl/content.swf"; var urlReq:URLRequest = new URLRequest(url); lader.load(urlReq); addChild(lader);
Een belangrijke property van het Loader object is de contentLoaderInfo property (een LoaderInfo object). Anders dan de meeste objecten, word dit LoaderInfo object gedeeld door zowel de te laden content als de SWF die de content laad.
Bij het laden van een SWF kan je het LoaderInfo object aanspreken door gebruik te maken van DisplayObject.loaderInfo. Het LoaderInfo object heeft bv informatie over het load proces, de URL's van de SWF of de geladen content.
Meer informatie zie Flash help: Monitoring loading progress
Het laden van geluid en videos
Alle Flash bestanden kunnen geluid en video laden over een netwerk.
Gebruik hiervoor de volgende methodes: Sound.load(), NetConnection.connect() en NetStream.play(). (zie Herfst)
Alleen lokale SWF bestanden kunnen lokaal media laden.
Voor meer informatie zie Flash help: Accessing loaded media as data.
Buffer
De SoundMixer.bufferTime property geeft het aantal millieseconden aan van de geluids data die de Flash Player moet laden voordat het geluid gespeelt kan worden. De default waarde van de SoundMixer.bufferTime is 1000.
Als je deze waarde wilt veranderen moet je eerst een nieuwe instance maken van de SoundLoaderContext class, vervolgens de bufferTime property een waarde geven en als laatste meegeven aan de Sound.load() methode. Zie hier:
import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.net.URLRequest; var geluid:Sound = new Sound(); var bestand:URLRequest = new URLRequest("muziek.mp3"); var buffertijd:SoundLoaderContext = new SoundLoaderContext(8000, true); geluid.load(bestand, buffertijd); geluid.play();
Zolang als het geluid speeld zal Flash de geluids buffer op de aangegeven groote (of zelfs groter) proberen te houden. Als de geluids data sneller laad dan het geluid speeld zal het gewoon afspelen, maar als het te traag laad zal het geluid stoppen tot de buffer weer helemaal geladen is.