Paket | flash.display |
Klass | public class Loader |
Arv | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Underklasser | AVLoader, FlexLoader |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
-metoden för att initiera inläsningen. Det inlästa visningsobjektet läggs till som underordnat till Loader-objektet.
Använd klass URLLoader för att läsa in text eller binära data.
Klass Loader övermannar följande metoder som den ärver, eftersom ett Loader-objekt bara kan ha ett underordnat visningsobjekt – det visningsobjekt som det läser in. Anrop av följande metoder ger ett undantag: addChild()
, addChildAt()
, removeChild()
, removeChildAt()
och setChildIndex()
. För att ta bort ett inläst visningsobjekt måste du ta bort Loader-objektet från dess överordnade DisplayObjectContainer-underordningsarray.
iOS-information
I AIR-program på iOS kan du bara läsa in en SWF-fil som innehåller ActionScript från programpaketet. Den här begränsningen omfattar all ActionScript-kod, som resurser med klassnamn som exporterats för ActionScript. Om du vill läsa in en SWF-fil måste den läsas in med samma programdomän som den överordnade SWF-filen, enligt följande exempel:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Dessutom går det inte på en iOS-dator att läsa in en SWF-fil som innehåller någon ActionScript ByteCode (ABC), och sedan ta bort och läsa in den på nytt. Om du försöker göra detta genereras felet 3764 i miljön.
I tidigare versioner än AIR 3.6 kan bara SWF-filer som inte innehåller ActionScript-bytekod läsas in, oavsett om de läses från programpaketet eller via ett nätverk. Ett alternativ till att använda en extern SWF-fil med ActionScript är att skapa ett SWC-bibliotek och länka det till SWF-huvudfilen.
AIR 3.7 och senare versioner har stöd för inläsning av externt lagrade sekundära SWF-filer. Du hittar en detaljerad beskrivning av den här funktionen här.
Dessa iOS-begränsningar gäller inte när ett program körs i iOS-simulatorn (ipa-test-interpreter-simulator eller ipa-debug-interpreter-simulator) eller i tolkläget (ipa-test-interpreter eller ipa-debug-interpreter.)
Säkerhet för Loader
Tänk på Flash Players och Adobe AIR:s säkerhetsmodell när du använder klassen Loader:
- Du kan ladda innehåll från valfri tillgänglig källa.
- Inläsning tillåts inte om den anropande SWF-filen är i en nätverkssandlåda och filen som ska läsas in är lokal.
- Om det inlästa innehållet är en SWF-fil som skrivits med ActionScript 3.0 kan det inte korsskriptas av en SWF-fil i en annan säkerhetssandlådan om inte korsskriptarrangemanget godkändes genom ett anrop till
System.allowDomain()
- ellerSystem.allowInsecureDomain()
-metoden i den inlästa behållarfilen. - Om det inlästa innehållet utgör en AVM1 SWF-fil (som skrivits med ActionScript 1.0 eller 2.0) kan den inte korsskriptas med en AVM2 SWF-fil (som skrivits med ActionScript 3.0). Du kan emellertid kommunicera mellan de två SWF-filerna med klass LocalConnection.
- Om det inlästa innehållet är en bild kan dess data inte kommas åt av en SWF-fil utanför säkerhetssandlådan annat än om SWF-filens domän ingick i en URL-policyfil i bildens ursprungliga domän.
- Filmklipp i sandlådan lokal-med-filsystem kan inte koda filmklipp i sandlådan lokal-med-nätverk (och det omvända fungerar inte heller).
- Du kan inte ansluta till vanligtvis reserverade portar. Du hittar en fullständig lista över spärrade portar i avsnittet ”Begränsa nätverks-API:er” i Utvecklarhandbok för Adobe ActionScript 3.0.
I AIR begränsas emellertid inte innehåll i säkerhetssandlådan application
(innehåll som installeras med AIR-programmet) av de här säkerhetsbegränsningarna.
Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center.
Vid inläsning av en SWF-fil från en otillförlitlig källa (exempelvis en annan domän än Loader-objektets rot-SWF-fil) kan du vilja definiera en mask för Loader-objektet, för att förhindra att det inlästa innehållet (som är underordnad Loader-objektet) ritar delar av scenen utanför den masken, som framgår av följande kod:
import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
Obs! App Transport Security introducerades av Apple i iOS9 och det tillåter inte osäkra anslutningar mellan appar och webbtjänster. När anslutningar till osäkra webbplatser görs via Loader avbryts URLLoader på grund av den här ändringen och fungerar inte korrekt. Ange undantag till standardbeteendet genom att lägga till nycklar i Info.plist i appen.
Om du vill stänga av funktionen helt kan du lägga till följande i Info.plist så fungerar den som tidigare.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
Ange undantag till standardbeteendet genom att lägga till nycklar för taggen InfoAdditions i programbeskrivningen för din app.
<iPhone> <InfoAdditions> <![CDATA[ <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>www.example.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> ]]> </InfoAdditions> </iPhone>
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
Den aktuella hjälpmedelsimplementeringen (AccessibilityImplementation) för den här InteractiveObject-instansen. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
De nuvarande hjälpmedelsalternativen för det här visningsobjektet. | DisplayObject | ||
alpha : Number
Anger det angivna objektets alfagenomskinlighetsvärde. | DisplayObject | ||
blendMode : String
Ett värde från klassen BlendMode som anger vilket blandningsläge som ska användas. | DisplayObject | ||
blendShader : Shader [lässkyddad]
Ställer in en skuggning som används för blandning av förgrund och bakgrund. | DisplayObject | ||
cacheAsBitmap : Boolean
Om det är true, sparar Flash-miljöerna en intern bitmappsrepresentation av visningsobjektet i cache-minnet. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Om detta inte är null definierar det här Matrix-objektet hur ett visningsobjekt återges när cacheAsBitmap har värdet true. | DisplayObject | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
content : DisplayObject [skrivskyddad]
Innehåller rotvisningsobjektet i SWF-filen eller bildfilen (JPG, PNG eller GIF) som lästes in med metoden load() eller loadBytes(). | Loader | ||
contentLoaderInfo : LoaderInfo [skrivskyddad]
Returnerar ett LoaderInfo-objekt som motsvarar objektet som läses in. | Loader | ||
contextMenu : NativeMenu
Anger vilken snabbmeny som är associerad med det här objektet. | InteractiveObject | ||
doubleClickEnabled : Boolean
Anger om det här objektet tar emot doubleClick-händelser. | InteractiveObject | ||
filters : Array
En indexerad array som innehåller varje filterobjekt som är associerat med visningsobjektet. | DisplayObject | ||
focusRect : Object
Anger om det här objektet visar en fokusram. | InteractiveObject | ||
height : Number
Anger visningsobjektets höjd i pixlar. | DisplayObject | ||
loaderInfo : LoaderInfo [skrivskyddad]
Returnerar ett LoaderInfo-objekt som innehåller information om hur filen som visningsobjektet tillhör ska läsas in. | DisplayObject | ||
mask : DisplayObject
Det anropande visningsobjektet maskeras av det angivna visningsobjektet. | DisplayObject | ||
metaData : Object
Erhåller metadataobjektet för instansen DisplayObject om metadata har lagrats tillsammans med instansen för detta DisplayObject i SWF-filen via en PlaceObject4-tagg. | DisplayObject | ||
mouseChildren : Boolean
Avgör om objektets underordnade objekt är aktiverade för en mus eller annan användarindataenhet (eller inte). | DisplayObjectContainer | ||
mouseEnabled : Boolean
Anger om det här objektet tar emot musmeddelanden eller annan indata från användaren. | InteractiveObject | ||
mouseX : Number [skrivskyddad]
Anger x-koordinaten för musens eller användarens indataenhets position i pixlar. | DisplayObject | ||
mouseY : Number [skrivskyddad]
Anger y-koordinaten för musens eller användarens indataenhets position i pixlar. | DisplayObject | ||
name : String
Anger instansnamnet för DisplayObject. | DisplayObject | ||
needsSoftKeyboard : Boolean
Anger om ett virtuellt tangentbord (t.ex. ett skärmtangentbord) ska visas när den här InteractiveObject-instansen är i fokus. | InteractiveObject | ||
numChildren : int [skrivskyddad]
Returnerar antalet underordnade objekt det här objektet har. | DisplayObjectContainer | ||
opaqueBackground : Object
Anger om visningsobjektet är ogenomskinligt med en viss bakgrundsfärg. | DisplayObject | ||
parent : DisplayObjectContainer [skrivskyddad]
Anger DisplayObjectContainer-objektet som innehåller visningsobjektet. | DisplayObject | ||
root : DisplayObject [skrivskyddad]
För ett visningsobjekt i en inläst SWF-fil är rotegenskapen det översta visningsobjektet i den del av visningslistans trädstruktur som representeras av den SWF-filen. | DisplayObject | ||
rotation : Number
Anger DisplayObject-instansens rotation i grader från den ursprungliga orienteringen. | DisplayObject | ||
rotationX : Number
Anger x-axelsrotationen i grader för DisplayObject-instansen, från den ursprungliga orienteringen i förhållande till den överordnade 3D-behållaren. | DisplayObject | ||
rotationY : Number
Anger y-axelsrotationen i grader för DisplayObject-instansen, från den ursprungliga orienteringen i förhållande till den överordnade 3D-behållaren. | DisplayObject | ||
rotationZ : Number
Anger z-axelsrotationen i grader för DisplayObject-instansen, från den ursprungliga orienteringen i förhållande till den överordnade 3D-behållaren. | DisplayObject | ||
scale9Grid : Rectangle
Det skalningsrutnät som används för närvarande. | DisplayObject | ||
scaleX : Number
Anger vågrät skala (i procent) för objektet utifrån dess registreringspunkt. | DisplayObject | ||
scaleY : Number
Anger lodrät skala (i procent) för objektet utifrån dess registreringspunkt. | DisplayObject | ||
scaleZ : Number
Anger djupskala (procent) för objektet utifrån dess registreringspunkt. | DisplayObject | ||
scrollRect : Rectangle
Visningsobjektets gränser för rullningsrektangeln. | DisplayObject | ||
softKeyboard : String
Kontrollerar utseendet på skärmtangentbordet. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Definierar det område som ska behållas på skärmen när skärmtangentbordet visas (ej tillgängligt på iOS). | InteractiveObject | ||
stage : Stage [skrivskyddad]
Visningsobjektets scen. | DisplayObject | ||
tabChildren : Boolean
Avgör om objektets underordnade objekt är tabbaktiverade. | DisplayObjectContainer | ||
tabEnabled : Boolean
Anger om det här objektet inkluderas i tabbordningen. | InteractiveObject | ||
tabIndex : int
Anger tabbordningen för objekt i en SWF-fil. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [skrivskyddad]
Returnerar ett TextSnapshot-objekt för den här DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
transform : flash.geom:Transform
Ett objekt med egenskaper som gäller ett visningsobjekts matris, färgomformning och pixelgränser. | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [skrivskyddad]
Ett objekt som skickar en uncaughtError-händelse när ett ohanterat fel inträffar i den SWF-fil som har lästs in av det här Loader-objektet. | Loader | ||
visible : Boolean
Om visingsobjektet är synligt eller inte. | DisplayObject | ||
width : Number
Anger visningsobjektets bredd i pixlar. | DisplayObject | ||
x : Number
Anger x-koordinaten för DisplayObject-instansen i förhållande till de lokala koordinaterna för den överordnade DisplayObjectContainer. | DisplayObject | ||
y : Number
Anger y-koordinaten för DisplayObject-instansen i förhållande till de lokala koordinaterna för den överordnade DisplayObjectContainer. | DisplayObject | ||
z : Number
Anger z-koordinatens position längs DisplayObject-instansens z-axel i förhållande till den överordnade 3D-behållaren. | DisplayObject |
Metod | Definieras med | ||
---|---|---|---|
Loader()
Skapar ett Loader-objekt som du kan använda för att läsa in filer, till exempel SWF-, JPEG-, GIF- och PNG-filer. | Loader | ||
Lägger till en underordnad DisplayObject-instans i den här DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
Lägger till en underordnad DisplayObject-instans i den här DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Anger om säkerhetsrestriktionerna kan göra att visningsobjekt utelämnas från listan som returneras när metoden DisplayObjectContainer.getObjectsUnderPoint() anropas med den angivna punkten. | DisplayObjectContainer | ||
Avbryter en load()-metodåtgärd som pågår för Loader-instansen. | Loader | ||
Avgör om det angivna visningsobjektet är underordnat DisplayObjectContainer-instansen eller själva instansen. | DisplayObjectContainer | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Returnerar en rektangel som definierar visningsområdets område i relation till targetCoordinateSpace-objektets koordinatsystem. | DisplayObject | ||
Returnerar den underordnade visningsobjektsinstansen som finns vid det angivna indexvärdet. | DisplayObjectContainer | ||
Returnerar det underordnade visningsobjektet som har ett visst namn. | DisplayObjectContainer | ||
Returnerar indexpositionen för en underordnad DisplayObject-instans. | DisplayObjectContainer | ||
Returnerar en array med objekt som ligger under den angivna punkten och är underordnade (eller indirekt underordnade) den här DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
Returnerar en rektangel som definierar visningsområdets gräns, baserat på koordinatsystemet som definieras av targetCoordinateSpace-parametern, exklusive eventuella linjer i former. | DisplayObject | ||
Konverterar punktobjektet från scenens (globala) koordinater till visningsobjektets (lokala) koordinater. | DisplayObject | ||
Konverterar en tvådimensionell punkt från scenens (globala) koordinater till ett tredimensionellt visningsobjekts (lokala) koordinater. | DisplayObject | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Utvärderar begränsningsramen för visningsobjektet för att kontrollera om den överlappar eller korsar begränsningsramen för obj-visningsobjektet. | DisplayObject | ||
Utvärderar visningsobjektet för att avgöra om det överlappar eller korsar den punkt som anges av x- och y-parametrarna. | DisplayObject | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Läser in en fil av typ SWF, JPEG, progressiv JPEG, oanimerad GIF eller PNG i ett objekt som är underordnat detta Loader-objekt. | Loader | ||
Läser in från binära data i ett ByteArray-objekt. | Loader | ||
Läser in en IFilePromise-instans. | Loader | ||
Konverterar en tredimensionell punkt för det tredimensionella visningsobjektets (lokala) koordinater till en tvådimensionell punkt i scenens (globala) koordinater. | DisplayObject | ||
Konverterar punktobjektet från visningsobjektets (lokala) koordinater till scenens (globala) koordinater. | DisplayObject | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort den angivna underordnade DisplayObject-instansen från listan med underordnade för DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
Tar bort ett underordnat DisplayObject från den angivna indexpositionen i den underordnade listan i DisplayObjectContainer. | DisplayObjectContainer | ||
Tar bort alla child-DisplayObject-instanser från listan med underordnade för DisplayObjectContainer-instansen. | DisplayObjectContainer | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Visar ett virtuellt tangentbord. | InteractiveObject | ||
Ändrar positionen för ett befintligt underordnat objekt i behållaren för visningsobjekt. | DisplayObjectContainer | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Stoppar rekursivt tidslinjekörning av alla filmklipp vars rot är detta objekt. | DisplayObjectContainer | ||
Byter z-ordningen (framifrån och bakåt-ordning) för de två underordnade objekten. | DisplayObjectContainer | ||
Byter z-ordningen (framifrån och bakåt-ordning) för underordnade objekt vid de två angivna indexpositionerna i listan med underordnade objekt. | DisplayObjectContainer | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Tar bort ett underordnat objekt från Loader-objektet som lästes in med metoden load(). | Loader | ||
Försöker ta bort innehåll i underordnade SWF-filer och stoppar körningen av kommandon från inlästa SWF-filer. | Loader | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
content | egenskap |
content:DisplayObject
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Innehåller rotvisningsobjektet i SWF-filen eller bildfilen (JPG, PNG eller GIF) som lästes in med metoden load()
eller loadBytes()
.
Implementering
public function get content():DisplayObject
Utlöser
SecurityError — Den inlästa SWF-filen eller bildfilen tillhör en säkerhetssandlåda som du inte har tillgång till. För en inläst SWF-fil kan du undvika denna situation genom att låta filen anropa Security.allowDomain() -metoden, eller genom att låta inläsningsfilen specificera en loaderContext -parameter med dess egenskap securityDomain satt till SecurityDomain.currentDomain när du anropar load() - eller loadBytes() -metoden.
|
Relaterade API-element
contentLoaderInfo | egenskap |
contentLoaderInfo:LoaderInfo
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Returnerar ett LoaderInfo-objekt som motsvarar objektet som läses in. LoaderInfo-objekt delas mellan Loader-objektet och det inlästa innehållsobjektet. LoaderInfo-objektet tillhandahåller förloppsinformation om inläsningen och statistik om den inlästa filen.
Händelser som är relaterade till inläsningen skickas av det LoaderInfo-objekt som refereras av egenskapen contentLoaderInfo
hos Loader-objektet. Egenskap contentLoaderInfo
sätts till ett giltigt LoaderInfo-objekt, också innan innehållet har lästs in, så att du kan lägga till händelseavlyssnare till objektet före inläsningen.
Om du vill identifiera ohanterade fel i en inläst SWF-fil använder du egenskapen Loader.uncaughtErrorEvents
, inte egenskapen Loader.contentLoaderInfo.uncaughtErrorEvents
.
Implementering
public function get contentLoaderInfo():LoaderInfo
Relaterade API-element
Exempel ( Så här använder du exemplet )
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
uncaughtErrorEvents | egenskap |
uncaughtErrorEvents:UncaughtErrorEvents
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Ett objekt som skickar en uncaughtError
-händelse när ett ohanterat fel inträffar i den SWF-fil som har lästs in av det här Loader-objektet. Ett ohanterat fel inträffar när ett fel genereras utanför try..catch
-block eller när ett ErrorEvent-objekt skickas utan några registrerade avlyssnare.
Tänk på att egenskapen uncaughtErrorEvents
för ett Loader-objekt skickar händelser som bubblar genom den, inte händelser som skickas direkt. En uncaughtErrorEvent
skickas aldrig i målfasen. Händelsen skickas bara i hämtnings- och bubblingsfaserna. Om du vill identifiera ett ohanterat fel i den aktuella SWF-filen (den SWF-fil i vilken Loader-objektet definieras) använder du egenskapen LoaderInfo.uncaughtErrorEvents
i stället.
Om det innehåll som läses in av Loader-objektet är en AVM1 (ActionScript 2) SWF-fil ger ohanterade fel i AVM1 SWF-filen inte upphov till någon uncaughtError
-händelse.
Implementering
public function get uncaughtErrorEvents():UncaughtErrorEvents
Relaterade API-element
Exempel ( Så här använder du exemplet )
uncaughtError
-händelsehanterare som identifierar ohanterade fel.
Ett Loader-objekt skapas i konstruktorn och en avlyssnare registreras för den uncaughtError
-händelse som skickas av Loader-objektets uncaughtErrorEvents
-egenskap.
I metoden uncaughtErrorHandler()
kontrollerar koden datatypen för egenskapen error
och svarar på lämpligt sätt.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
Loader | () | Konstruktor |
public function Loader()
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar ett Loader-objekt som du kan använda för att läsa in filer, till exempel SWF-, JPEG-, GIF- och PNG-filer. Använd metod load()
för att läsa in tillgången som underordnad till Loader-instansen. Du kan sedan lägga till Loader-objektet till visningslistan (exempelvis med metod addChild()
för en DisplayObjectContainer-instans). Tillgången visas på scenen när den läses in.
Du kan också använda en Loader-instans "offlist", det vill säga utan att lägga in den i en visningsobjektsbehållare på visningslistan. I det här läget kan Loader-instansen användas för att läsa in en SWF-fil som består av ett programs ytterligare moduler.
Du kan se att inläsningen av SWF-filen är klar genom att använda de händelser hos LoaderInfo-objektet som sammanhänger med egenskap contentLoaderInfo
-hos Loader-objektet. I det skedet kan koden i modulens SWF-fil köras för att initiera och starta modulen. I offlistläget kan en Loader-instans också användas för att läsa in en SWF-fil som innehåller komponenter eller mediaresurser. Du kan alltså använda LoaderInfo-objektets händelsemeddelanden för att se när inläsningen av komponenterna är klar. I det skedet kan programmet börja använda komponenterna och medieresurserna i SWF-filens bibliotek genom att instansiera de ActionScript 3.0-klasser som representerar dessa komponenter och resurser.
Ta reda på ett Loader-objekts status genom att övervaka följande händelser som LoaderInfo-objektet associerade med egenskapencontentLoaderInfo
hos Loader-objektet:
- Händelse
open
skickas när inläsningen börjar. - Händelse
ioError
ellersecurityError
skickas om filen inte kan läsas in eller om ett fel uppstod under inläsningsprocessen. - Händelse
progress
aktiveras kontinuerligt när filen läses in. - Händelse
complete
skickas när en fil har laddats ned klart, men innan det inlästa filmklippets metoder och egenskaper blir tillgängliga. - Händelse
init
skickas efter det att den inlästa SWF-filens egenskaper och metoder är tillgängliga, så att du kan börja arbeta med den inlästa SWF-filen. Denna händelse skickas före hanterarecomplete
. Vid direktuppspelning av SWF-filer kan händelseinit
uppträda betydligt tidigare än händelsecomplete
. Användinit
i de flesta fall.
Obs! (endast iOS) I AIR-program på iOS kan du bara läsa in en SWF-fil som innehåller ActionScript från programpaketet. Den här begränsningen omfattar all ActionScript-kod, som resurser med klassnamn som exporterats för ActionScript. Om du vill läsa in en SWF-fil måste den läsas in med samma programdomän som den överordnade SWF-filen.
I tidigare versioner än AIR 3.6 kan bara SWF-filer som inte innehåller ActionScript-bytekod läsas in, oavsett om de läses från programpaketet eller via ett nätverk. Ett alternativ till att använda en extern SWF-fil med ActionScript är att skapa ett SWC-bibliotek och länka det till SWF-huvudfilen.
Dessa begränsningar gäller inte när ett program körs i iOS-simulatorn (ipa-test-interpreter-simulator eller ipa-debug-interpreter-simulator) eller i tolkläget (ipa-test-interpreter eller ipa-debug-interpreter.)
Relaterade API-element
close | () | metod |
public function close():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Avbryter en load()
-metodåtgärd som pågår för Loader-instansen.
Relaterade API-element
load | () | metod |
public function load(request:URLRequest, context:LoaderContext = null):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Läser in en fil av typ SWF, JPEG, progressiv JPEG, oanimerad GIF eller PNG i ett objekt som är underordnat detta Loader-objekt. När du läser in en animerad GIF-fil visas bara den första bildrutan. Eftersom Loader-objektet bara kan innehålla en enda underordnad avslutar utställandet av ytterligare en load()
-begäran den föregående begäran, om den fortfarande är oavslutad, och inleder en ny inläsning.
Obs! I AIR 1.5 och Flash Player 10 är maxstorleken för en inläst bild 8 191 pixlar i bredd och höjd, och det totala antalet pixlar får inte överskrida 16 777 215 pixlar. (Om en inläst bild är 8 191 pixlar bred kan den därför bara vara 2 048 pixlar hög.) I Flash Player 9 och tidigare och i AIR 1.1 och tidigare är begränsningen 2 880 pixlar i höjd och 2 880 pixlar i bredd.
En SWF-fil eller bild som lästs in i ett Loader-objekt ärver positionen, rotationen och skalegenskaperna för Loader-objektets överordnade visningsobjekt.
Använd metoden unload()
om du vill ta bort filmer och bilder som lästs in med den här metoden eller avbryta en pågående inläsning.
Du kan förhindra att metoden används av en SWF-fil genom att ställa in parametern allowNetworking
i object
- och embed
-taggarna på den HTML-sida där SWF-innehållet finns.
iOS-information
I AIR-program på iOS kan du bara läsa in en SWF-fil som innehåller ActionScript från programpaketet. Den här begränsningen omfattar all ActionScript-kod, som resurser med klassnamn som exporterats för ActionScript. Om du vill läsa in en SWF-fil måste den läsas in med samma programdomän som den överordnade SWF-filen, enligt följande exempel:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Dessutom går det inte på en iOS-dator att läsa in en SWF-fil som innehåller någon ActionScript ByteCode (ABC), och sedan ta bort och läsa in den på nytt. Om du försöker göra detta genereras felet 3764 i miljön.
I tidigare versioner än AIR 3.6 kan bara SWF-filer som inte innehåller ActionScript-bytekod läsas in, oavsett om de läses från programpaketet eller via ett nätverk. Ett alternativ till att använda en extern SWF-fil med ActionScript är att skapa ett SWC-bibliotek och länka det till SWF-huvudfilen.
Dessa begränsningar gäller inte när ett program körs i iOS-simulatorn (ipa-test-interpreter-simulator eller ipa-debug-interpreter-simulator) eller i tolkläget (ipa-test-interpreter eller ipa-debug-interpreter.)
Säkerhet för Loader
När du använder den här metoden bör du överväga Flash Player-säkerhetsmodellen, som behandlas i beskrivningen av klassen Loader.
Om du i Flash Player 10 eller senare använder en multipart-innehållstyp (till exempel ”multipart/form-data”) som innehåller en överföring (vilket indikeras av en ”filename”-parameter i ett ”content-disposition”-huvud inuti POST), gäller de säkerhetsregler som används för överföringar också för POST-åtgärden.
- POST-åtgärden måste utföras som ett svar på en användarinitierad åtgärd som exempelvis en musklickning eller en tangenttryckning.
- Om POST-åtgärden är för korsdomän (POST-målet ligger inte på samma server som SWF-filen som skickar POST-begäran), måste målservern ha en URL-policyfil som tillåter korsdomänåtkomst.
För en multipart-innehållstyp måste också syntaxen vara giltig (enligt standarden RFC2046). Om syntaxen verkar vara ogiltig, gäller samma regler för POST-åtgärden som för överföringar.
Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center.
Parametrar
request:URLRequest — Den absoluta eller relativa URL-adressen för SWF-, JPEG-, GIF- eller JPEG-filen som ska läsas in. En relativ sökväg måste vara relativ till huvud-SWF-filen. Absoluta URL-adresser måste innefatta protokollreferensen, exempelvis http:// eller file:///. Filnamn får inte innehålla enhetsspecifikationer.
| |
context:LoaderContext (default = null ) — Ett LoaderContext-objekt med egenskaper som definierar följande:
Om Endast iOS: Vid anrop av metoden Fullständiga uppgifter finns i beskrivningen av egenskaperna för klass LoaderContext. |
Händelser
asyncError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och det inte är möjligt att lägga till det inlästa innehållet som ett underordnat objekt till angiven DisplayObjectContainer. Det här kan hända om det inlästa innehållet är en flash.display.AVM1Movie eller om anropet addChild() till requestedContentParent returnerar ett fel.
| |
complete: — Skickas av contentLoaderInfo -objektet när inläsningen av filen är klar. Händelsen complete skickas alltid efter init -händelsen.
| |
httpStatus: — Skickas av contentLoaderInfo -objektet när en nätverksbegäran görs via HTTP, och Flash Player kan identifiera HTTP-statuskoden.
| |
init: — Skickas av contentLoaderInfo -objektet när den inlästa SWF-filens egenskaper och metoder är tillgängliga. init -händelsen föregår alltid complete -händelsen.
| |
ioError: — Skickas av contentLoaderInfo -objektet när ett indata- eller utdatafel uppstår och får en inläsningsåtgärd att misslyckas.
| |
open: — Skickas av contentLoaderInfo -objektet när inläsningsåtgärden startar.
| |
progress: — Skickas av contentLoaderInfo -objektet när data tas emot under inläsningen.
| |
securityError: — Skickas av contentLoaderInfo -objektet om en SWF-fil i lokal-med-filsystem-sandlådan försöker att läsa in innehåll i lokal-med-nätverkstjänst-sandlådan eller vice versa.
| |
securityError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och om säkerhetssandlådan för LoaderContext.requestedContentParent inte har åtkomst till inläst SWF.
| |
unload: — Skickas av contentLoaderInfo -objektet när ett inläst objekt har tagits bort.
|
Utlöser
IOError — Egenskapen digest för objektet request är inte null . Du bör endast ange egenskapen digest för ett URLRequest-objekt när du anropar metoden URLLoader.load() när du läser in en SWZ-fil (en plattformskomponent för Adobe).
| |
SecurityError — Värdet på LoaderContext.securityDomain måste vara antingen null eller SecurityDomain.currentDomain . Det återspeglar det faktum att du bara kan placera det inlästa mediet i sin naturliga säkerhetssandlåda eller din egen (i det senare fallet krävs en policyfil).
| |
SecurityError — Lokala SWF-filer kan inte ange LoaderContext.securityDomain till något annat än null . Det är inte tillåtet att importera icke-lokala media till en lokal sandlåda, eller att placera andra lokala media i något annat än deras naturliga sandlåda.
| |
SecurityError — Du kan inte ansluta till vanligtvis reserverade portar. Du hittar en fullständig lista över spärrade portar i avsnittet ”Begränsa nätverks-API:er” i Utvecklarhandbok för Adobe ActionScript 3.0.
| |
SecurityError — Om egenskap applicationDomain eller securityDomain för parameter context kommer från en otillåten domän.
| |
SecurityError — Om en lokal SWF-fil försöker använda egenskapen securityDomain hos parameter context .
| |
IllegalOperationError — Om egenskapen requestedContentParent för parametern context är en Loader .
| |
IllegalOperationError — Om parametern LoaderContext.parameters är inställd till något annat än null och har vissa värden som inte är strängar (String).
| |
IllegalOperationError — På iOS, om programmet försöker läsa in en SWF-fil i en annan programdomän än huvudprogramdomänen.
| |
IllegalOperationError — Om programmet på en iOS-dator försöker läsa in en SWF-fil på nytt, som lästs in och tagits bort, och SWF-filen innehåller ABC-kod.
| |
Error — På iOS, om programmet försöker läsa in en SWF-fil utanför det programpaket som innehåller ActionScript-koden. Det går inte att fånga det här felet. Det visas som en dialogruta i programmet med ett meddelande om "okompilerad ActionScript-kod". I tidigare versioner än AIR 3.6 inträffar det här felet när du försöker läsa in en SWF-fil som innehåller ActionScript-kod, oavsett om filen är extern eller ingår i programpaketet.
|
Relaterade API-element
loadBytes | () | metod |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Läser in från binära data i ett ByteArray-objekt.
Metoden loadBytes()
är asynkron. Du måste vänta på "init"-händelsen innan du kan komma åt egenskaperna för ett inläst objekt.
När du använder den här metoden bör du överväga Flash Player-säkerhetsmodellen, som behandlas i beskrivningen av klassen Loader.
Obs! (endast iOS) I AIR-program på iOS kan du bara läsa in en SWF-fil som innehåller ActionScript från programpaketet. Den här begränsningen omfattar all ActionScript-kod, som resurser med klassnamn som exporterats för ActionScript. Om du vill läsa in en SWF-fil måste den läsas in med samma programdomän som den överordnade SWF-filen.
I tidigare versioner än AIR 3.6 har anrop till den här metoden ingen effekt på iOS.
Parametrar
bytes:ByteArray — Ett ByteArray-objekt. Innehållet i ByteArray kan vara ett av de filformat som stöds av klass Loader: SWF, GIF, JPEG eller PNG.
| |
context:LoaderContext (default = null ) — Ett LoaderContext-objekt. Endast LoaderContext-objektets applicationDomain -egenskap används. checkPolicyFile - och securityDomain -egenskaperna i LoaderContext-objekt används inte.
Om Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center. |
Händelser
asyncError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och det inte är möjligt att lägga till det inlästa innehållet som ett underordnat objekt till angiven DisplayObjectContainer. Det här kan hända om det inlästa innehållet är en flash.display.AVM1Movie eller om anropet addChild() till requestedContentParent returnerar ett fel.
| |
complete: — Skickas av contentLoaderInfo -objektet när åtgärden är klar. Händelsen complete skickas alltid efter init -händelsen.
| |
init: — Skickas av contentLoaderInfo -objektet när egenskaper och metoder för inlästa data är tillgängliga. init -händelsen föregår alltid complete -händelsen.
| |
ioError: — Skickas av contentLoaderInfo -objektet när miljön inte kan analysera data i bytearrayen.
| |
open: — Skickas av contentLoaderInfo -objektet när åtgärden startar.
| |
progress: — Skickas av contentLoaderInfo -objektet när data överförs i minnet.
| |
securityError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och om säkerhetssandlådan för LoaderContext.requestedContentParent inte har åtkomst till inläst SWF.
| |
unload: — Skickas av contentLoaderInfo -objektet när ett inläst objekt har tagits bort.
|
Utlöser
ArgumentError — Om egenskapen length hos ByteArray-objektet inte är större än 0.
| |
IllegalOperationError — Om checkPolicyFile - eller securityDomain -egenskapen i context -parametern inte har värdet null.
| |
IllegalOperationError — Om egenskapen requestedContentParent för parametern context är en Loader .
| |
IllegalOperationError — Om parametern LoaderContext.parameters är inställd till något annat än null och har vissa värden som inte är strängar (String).
| |
IllegalOperationError — På iOS, om programmet försöker läsa in en SWF-fil i en annan programdomän än huvudprogramdomänen.
| |
IllegalOperationError — Om programmet på en iOS-dator försöker läsa in en SWF-fil på nytt, som lästs in och tagits bort, och som innehåller ABC-kod.
| |
Error — På iOS, om programmet försöker läsa in en SWF-fil utanför det programpaket som innehåller ActionScript-koden. Det går inte att fånga det här felet. Det visas som en dialogruta i programmet med ett meddelande om "okompilerad ActionScript-kod". I tidigare versioner än AIR 3.6 inträffar det här felet när du försöker läsa in en SWF-fil som innehåller ActionScript-kod, oavsett om filen är extern eller ingår i programpaketet.
| |
SecurityError — Om den angivna applicationDomain -egenskapen i context -egenskapen är från en domän med nekad åtkomst.
| |
SecurityError — Du kan inte ansluta till vanligtvis reserverade portar. Du hittar en fullständig lista över spärrade portar i avsnittet ”Begränsa nätverks-API:er” i Utvecklarhandbok för Adobe ActionScript 3.0.
|
Relaterade API-element
loadFilePromise | () | metod |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2.5 |
Läser in en IFilePromise-instans.
Metoden loadFilePromise
tar ett IFilePromise
-objekt och läser in de binära data. Om dessa data är en progressiv ström, t.ex. en videoväntan på "init"-händelsen eller progress-händelser innan det inlästa objektets egenskaper hämtas. Annars väntar du på complete-händelsen för att försäkra dig om att alla data har lästs in.
När du använder den här metoden bör du överväga Flash Player-säkerhetsmodellen, som behandlas i beskrivningen av klassen Loader.
Parametrar
promise:IFilePromise — Ett IFilePromise-objekt. Objektets datakälla kan vara ett av de filformat som stöds av klassen Loader: SWF, GIF, JPEG eller PNG.
| |
context:LoaderContext (default = null ) — Ett LoaderContext-objekt. Endast LoaderContext-objektets applicationDomain -egenskap används. checkPolicyFile - och securityDomain -egenskaperna i LoaderContext-objekt används inte.
Om Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center. |
Händelser
asyncError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och det inte är möjligt att lägga till det inlästa innehållet som ett underordnat objekt till angiven DisplayObjectContainer. Det här kan hända om det inlästa innehållet är en flash.display.AVM1Movie eller om anropet addChild() till requestedContentParent returnerar ett fel.
| |
complete: — Skickas av contentLoaderInfo -objektet när åtgärden är klar. Händelsen complete skickas alltid efter init -händelsen.
| |
init: — Skickas av contentLoaderInfo -objektet när egenskaper och metoder för inlästa data är tillgängliga. init -händelsen föregår alltid complete -händelsen.
| |
ioError: — Skickas av contentLoaderInfo -objektet när miljön inte kan analysera data i datakällan eller om datakällans ström inte kan läsas.
| |
open: — Skickas av contentLoaderInfo -objektet när åtgärden startar.
| |
progress: — Skickas av contentLoaderInfo -objektet när data överförs i minnet.
| |
securityError: — Skickas av objektet contentLoaderInfo om egenskapen LoaderContext.requestedContentParent har angetts och om säkerhetssandlådan för LoaderContext.requestedContentParent inte har åtkomst till inläst SWF.
| |
unload: — Skickas av contentLoaderInfo -objektet när ett inläst objekt har tagits bort.
|
Utlöser
IllegalOperationError — Om egenskapen requestedContentParent för parametern context är en Loader .
| |
IllegalOperationError — Om parametern LoaderContext.parameters är inställd till något annat än null och har vissa värden som inte är strängar (String).
| |
ArgumentError — Om objektet IFilePromise som skickas som parameter är null
|
Relaterade API-element
unload | () | metod |
public function unload():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tar bort ett underordnat objekt från Loader-objektet som lästes in med metoden load()
. property
för det associerade LoaderInfo-objektet återställs till null
. Det underordnade objektet förstörs inte nödvändigtvis eftersom andra objekt kan ha referenser till det. Det är emellertid inte längre underordnat Loader-objektet.
När du anropar metoden unload()
anges Loader-objektets contentLoaderInfo
-egenskap till null
. Alla visuella resurser som lästes in med SWF-filen tas bort, även från minnet. ActionScript-klassdefinitioner i den inlästa SWF-filen finns kvar i minnet, och kod i samma programdomän som den inlästa SWF-filen kan komma åt instanser av dessa klasser och skapa nya instanser.
Obs! (endast iOS) I tidigare versioner än AIR 3.6 har den här metoden ingen effekt på iOS.
Bästa praxis är att du, innan du avladdar en underordnad SWF-fil, uttryckligen stänger eventuella streamer i den underordnade SWF-filens objekt, såsom LocalConnection-, NetConnection-, NetStream- och Sound-objekt. I annat fall kan ljudet i den underordnade SWF-filen fortsätta att spelas upp, trots att den underordnade SWF-filen har avladdats. För att stänga streams i den underordnade SWF-filen lägger man till en händelseavlyssnare till den underordnade som lyssnar efter händelse unload
. När den överordnade anropar Loader.unload()
skickas händelse unload
till den underordnade. Den kod som följer visar hur detta kan göras:
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Relaterade API-element
unloadAndStop | () | metod |
public function unloadAndStop(gc:Boolean = true):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Försöker ta bort innehåll i underordnade SWF-filer och stoppar körningen av kommandon från inlästa SWF-filer. Den här metoden försöker ta bort SWF-filer som har lästs in med Loader.load()
eller Loader.loadBytes()
genom att ta bort referenser till EventDispatcher, NetConnection, Timer, Sound och Video-objekt i den underordnade SWF-filen. Det resulterar i följande för den underordnade SWF-filen och den underordnade SWF-filens visningslista:
- Ljud stoppas.
- Scenhändelseavlyssnare tas bort.
- Händelseavlyssnare för
enterFrame
,frameConstructed
,exitFrame
,activate
ochdeactivate
tas bort. - Timerfunktioner stoppas.
- Kamera- och mikrofoninstanser frigörs.
- Filmklipp stoppas.
När du anropar metoden unloadAndStop()
anges Loader-objektets contentLoaderInfo
-egenskap till null
. Alla visuella resurser som lästes in med SWF-filen tas bort, även från minnet. ActionScript-klassdefinitioner i den inlästa SWF-filen finns kvar i minnet, och kod i samma programdomän som den inlästa SWF-filen kan komma åt instanser av dessa klasser och skapa nya instanser.
Obs! (endast iOS) I tidigare versioner än AIR 3.6 har den här metoden ingen effekt på iOS.
Parametrar
gc:Boolean (default = true ) — Tipsar om att skräpinsamlaren ska köras på de underordnade SWF-objekten (true ) eller inte (false ). Om du tar bort flera objekt asynkront kan du förbättra programmets prestanda genom att ställa in gc -parametern på false . Om parametern ställs in på false kan dock media och visningsobjekt från den underordnade SWF-filen finnas kvar i minnet efter att kommandot unloadAndStop() har körts.
|
Relaterade API-element
- En
url
-egenskap skapas bestående av bildfilens plats och namn - I konstruktor
LoaderExample
skapas ett nytt Loader-objekt med namnetloader
, som sedan skickas tillconfigureListeners()
-metoden, enligt beskrivningen i steg 3. - Konstruktorn skapar en ny instans av ett URLRequest-objekt,
request
, med en överfördurl
så att filnamnet och platsen blir kända. request
-objektet skickas tillloader
-objektetsload()
-metod, som läser in bilden till visningslistan.- En
clickHandler
-händelseavlyssnare registreras för händelseclick
på inläsaren. Efter en musklickning avladdas den inlästa bilden. - Metod
configureListeners()
lägger till sju händelseavlyssnare med följande metoder:- Metod
completeHandler()
körs när inläsningen av bilden är klar. - Metod
httpStatusHandler()
körs om bilden inte läses in lokalt, och bara om nätverksbegäran görs tillgänglig och kan identifiera den. - Metod
initHandler()
körs före metodcompleteHandler()
och efter metodprogressHandler()
. Normalt är händelseinit
mer användbar vid inläsning av SWF-filer. - Metod
ioErrorHandler()
körs om bildfilen inte finns tillgänglig eller inte är åtkomlig. - Metod
openHandler()
körs när bildfilen öppnas för första gången. - Metod
progressHandler()
körs när bildfilen börjar läsas in och sedan på nytt när inläsningen av bilden är klar. - Metod
unLoadHandler()
körs när bilden avladdas med metodunload()
när användaren klickar på bilden.
- Metod
Tänk på följande krav:
- Detta exempel kräver att du placerar en fil med namnet Image.gif i samma katalog som den kompilerade SWF-filen. Använd en bild med ett område som passar in i huvud-SWF-filens mått.
- Det här exemplet använder alla händelser som finns tillgängliga för LoaderInfo-objektet, men de flesta situationer kräver bara en delmängd. Speciellt gäller att vid laddning av en bildfil så räcker händelse
complete
(och kanske händelseioError
) vid inläsning av en lokal bild.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } 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 { trace("completeHandler: " + event); } 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); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
Tue Jun 12 2018, 01:40 PM Z