Een extern SWF-bestand laden



SWF-bestanden worden in ActionScript 3.0 geladen met behulp van de klasse Loader. Als u een extern SWF-bestand wilt laden, moet uw ActionScript vier dingen doen:

  1. Een nieuw object URLRequest met de URL van het bestand maken.

  2. Een nieuw object Loader maken.

  3. De methode load() van het object Loader aanroepen en de URLRequest-instantie als parameter doorgeven.

  4. De methode addChild() op een weergaveobjectcontainer (zoals de hoofdtijdlijn van een Flash-document) aanroepen om de Loader-instantie aan het weergaveoverzicht toe te voegen.

De code ziet er uiteindelijk als volgt uit:

var request:URLRequest = new URLRequest("http://www.[yourdomain].com/externalSwf.swf"); 
var loader:Loader = new Loader() 
loader.load(request); 
addChild(loader);

Dezelfde code kan worden gebruikt om een extern beeldbestand, zoals JPEG, GIF of PNG te laden door de URL van het afbeeldingsbestand in plaats van de URL van een SWF-bestand op te geven. In tegenstelling tot afbeeldingsbestanden, kan een SWF-bestand ActionScript bevatten. Hoewel het proces voor het laden van een SWF-bestand dus hetzelfde is als het proces voor het laden van een afbeelding, moeten bij het laden van een extern SWF-bestand zowel het SWF-bestand dat het laden uitvoert als het SWF-bestand dat wordt geladen, zich in dezelfde beveiligingssandbox bevinden, als Flash Player of AIR het SWF-bestand afspelen en u van plan bent ActionScript te gebruiken om met het externe SWF-bestand te communiceren. Als het externe SWF-bestand daarnaast klassen bevat die dezelfde naamruimte delen als klassen in het ladende SWF-bestand, moet u mogelijk een nieuw toepassingsdomein voor het geladen SWF-bestand maken om naamruimteconflicten te voorkomen. Zie De klasse ApplicationDomain gebruiken en SWF-bestanden en afbeeldingen laden voor meer informatie over beveiliging en overwegingen met betrekking tot toepassingsdomein.

Wanneer het laden van het externe SWF-bestand is voltooid, kunt u het bestand openen via de eigenschap Loader.content. Als het externe SWF-bestand voor ActionScript 3.0 is gepubliceerd, is het een filmclip of een sprite, afhankelijk van de klasse waarvan het bestand een uitbreiding is.

Overwegingen bij het laden van een ouder SWF-bestand

Als het externe SWF-bestand is gepubliceerd met een oudere versie van ActionScript, moeten er belangrijke beperkingen in overweging worden genomen. In tegenstelling tot een ActionScript 3.0 SWF-bestand dat wordt uitgevoerd in AVM2 (ActionScript Virtual Machine 2), wordt een SWF-bestand dat is gepubliceerd voor ActionScript 1.0 of 2.0 in AVM1 (ActionScript Virtual Machine 1) uitgevoerd.

Wanneer het laden van een AVM1 SWF-bestand is gelukt, is het geladen object (de eigenschap Loader.content) een object AVM1Movie. Een AVM1Movie-instantie is niet hetzelfde als een MovieClip-instantie. Het is een weergaveobject, maar in tegenstelling tot een filmclip, bevat dit weergaveobject geen methoden of eigenschappen met betrekking tot een tijdlijn. Het bovenliggende AVM2 SWF-bestand heeft geen toegang tot de eigenschappen, methoden of objecten van het geladen AVM1Movie-object.

Er gelden extra beperkingen voor het laden van een SWF-bestand van AVM1 door een SWF-bestand van AVM2. Zie de sectie Klasse AVMMovie in de Naslaggids voor ActionScript 3.0 en ActionScript 3.0-componenten voor meer informatie.