Pakket | flash.display |
Klasse | public class Loader |
Overerving | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Subklassen | AVLoader, FlexLoader |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
om het laden te starten. Het geladen weergaveobject wordt als een onderliggend item van het object Loader toegevoegd.
Gebruik de klasse URLLoader om tekst of binaire gegevens te laden.
De klasse Loader negeert de volgende methoden die het overerft, omdat een object Loader slechts één onderliggend weergaveobject kan bevatten: het weergaveobject dat het laadt. Wanneer de volgende methoden worden aangeroepen, wordt een uitzondering gegenereerd: addChild()
, addChildAt()
, removeChild()
, removeChildAt()
en setChildIndex()
. Wanneer u een geladen weergaveobject wilt verwijderen, moet u het object Loader verwijderen uit de bovenliggende DisplayObjectContainer-array met onderliggende items.
iOS-opmerkingen
In AIR-toepassingen op iOS kunt u een SWF-bestand dat ActionScript bevat, alleen laden vanaf het toepassingspakket. Deze beperking omvat alle ActionScript, zoals elementen met klassenamen die zijn geëxporteerd voor ActionScript. Als u een SWF-bestand wilt laden, moet u het SWF-bestand laden met hetzelfde toepassingsdomein als het bovenliggende SWF-bestand, zoals weergegeven in het volgende voorbeeld:
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);
Bovendien kunt u op iOS geen SWF-bestand laden dat ActionScript ByteCode (ABC) bevat, het vervolgens verwijderen en daarna opnieuw laden. Als u dit doet, genereert de runtime de fout 3764.
Vóór AIR 3.6 kunnen alleen SWF-bestanden die geen ActionScript-bytecode bevatten, worden geladen, ongeacht of ze werden geladen vanaf het toepassingspakket of via een netwerk. Als alternatief voor het gebruik van een extern SWF-bestand met ActionScript kunt u een SWC-bibliotheek maken en deze koppelen aan uw SWF-hoofdbestand.
AIR 3.7 en hoger ondersteunt het laden van extern gehoste secundaire SWF-bestanden. De gedetailleerde beschrijving van deze functie vindt u hier.
Deze iOS-beperkingen zijn niet van toepassing wanneer een toepassing wordt uitgevoerd in de iOS-simulator (ipa-test-interpreter-simulator of ipa-debug-interpreter-simulator) of interpretermodus (ipa-test-interpreter of ipa-debug-interpreter).
Loader-beveiliging
Houd rekening met het beveiligingsmodel van Flash Player en Adobe AIR wanneer u de klasse Loader gebruikt:
- U kunt inhoud van elke toegankelijke bron laden.
- Laden is niet toegestaan wanneer het aanroepende SWF-bestand zich in een netwerksandbox bevindt en het bestand lokaal wordt geladen.
- Wanneer de geladen inhoud een SWF-bestand is dat met ActionScript 3.0 is geschreven, kan het geen cross-scripting uitvoeren op andere SWF-bestanden in een andere beveiligingssandbox, tenzij een dergelijke cross-scripting is goedgekeurd door middel van een aanroep van de methode
System.allowDomain()
ofSystem.allowInsecureDomain()
in het geladen inhoudsbestand. - Wanneer de geladen inhoud een AVM1 SWF-bestand is (dat met ActionScript 1.0 of 2.0 is geschreven), kan het geen cross-scripting uitvoeren op een AVM2 SWF-bestand (dat met ActionScript 3.0 is geschreven). U kunt echter tussen de twee SWF-bestanden communiceren met de klasse LocalConnection.
- Wanneer de geladen inhoud een afbeelding is, kunnen de gegevens niet worden benaderd door een SWF-bestand dat zich buiten de beveiligingssandbox bevindt, tenzij het domein van dat SWF-bestand in een bestand met URL-beleid is opgenomen in het oorspronkelijke domein van de afbeelding.
- Filmclips in de sandbox Lokaal-met-bestandssysteem kunnen in scripts niet verwijzen naar filmclips in de sandbox Lokaal-met-netwerk, en de omgekeerde situatie is ook niet mogelijk.
- U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.
In AIR is de inhoud in de application
-beveiligingssandbox (inhoud die met de AIR-toepassing is geïnstalleerd), echter niet beperkt tot deze beveiligingsbeperkingen.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Wanneer u een SWF-bestand van een niet-vertrouwde bron (zoals een ander domein dan dat van het SWF-hoofdbestand van het object Loader) laadt, kunt u een masker voor het object Loader definiëren om te voorkomen dat de geladen inhoud (die een onderliggend item van het object Loader is) naar delen van het werkgebied buiten het masker tekent, zoals in de volgende code wordt getoond:
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);
Opmerking: ATS (App Transport Security) is door Apple geïntroduceerd in iOS9 om niet toe te staan dat er onbeveiligde verbindingen zijn tussen app- en webservices. Vanwege deze wijziging worden alle verbindingen die via Loader naar onbeveiligde websites zijn ingesteld, door URLLoader onderbroken, en ATS zorgt ervoor dat ze niet meer functioneren. Geef uitzonderingen op voor het standaardgedrag door sleutelverwijzingen toe te voegen aan Info.plist in uw app.
Als u de functie volledig wilt uitschakelen, kunt u het volgende toevoegen aan uw Info.plist, zodat de functie weer werkt als voorheen.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
Geef uitzonderingen aan op het standaardgedrag door sleutels toe te voegen aan het InfoAdditions-label van het descriptorbestand voor uw 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>
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
De huidige toegankelijkheidsimplementatie (AccessibilityImplementation) voor deze InteractiveObject-instantie. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
De huidige toegankelijkheidsopties voor dit weergaveobject. | DisplayObject | ||
alpha : Number
Geeft de alpha-transparantiewaarde van het opgegeven object aan. | DisplayObject | ||
blendMode : String
Een waarde uit de klasse BlendMode die opgeeft welke overvloeimodus moet worden gebruikt. | DisplayObject | ||
blendShader : Shader [alleen-schrijven]
Stelt de arcering in die moet worden gebruikt om voor- en achtergrond in elkaar te laten overvloeien. | DisplayObject | ||
cacheAsBitmap : Boolean
Indien ingesteld op true, plaatsen Flash-runtimes een interne bitmaprepresentatie van het weergaveobject in cache. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Als dit Matrix-object niet null is, definieert het hoe een weergaveobject wordt gerenderd als cacheAsBitmap wordt ingesteld op true. | DisplayObject | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
content : DisplayObject [alleen-lezen]
Bevat het hoofdweergaveobject van het SWF-bestand of afbeeldingsbestand (JPG, PNG of GIF) dat is geladen met de methoden load() of loadBytes(). | Loader | ||
contentLoaderInfo : LoaderInfo [alleen-lezen]
Retourneert een object LoaderInfo dat overeenkomt met het object dat wordt geladen. | Loader | ||
contextMenu : NativeMenu
Geeft het contextmenu op dat is gekoppeld aan dit object. | InteractiveObject | ||
doubleClickEnabled : Boolean
Geeft op of dit object gebeurtenissen doubleClick ontvangt. | InteractiveObject | ||
filters : Array
Een geïndexeerde array die elk filterobject bevat dat momenteel is gekoppeld aan het weergaveobject. | DisplayObject | ||
focusRect : Object
Geeft op of dit object een focusrechthoek weergeeft. | InteractiveObject | ||
height : Number
Geeft de hoogte van het weergaveobject aan, in pixels. | DisplayObject | ||
loaderInfo : LoaderInfo [alleen-lezen]
Retourneert een object LoaderInfo dat informatie bevat over het laden van het bestand waartoe dit weergaveobject behoort. | DisplayObject | ||
mask : DisplayObject
Het aanroepende weergaveobject wordt gemaskeerd door het opgegeven object mask. | DisplayObject | ||
metaData : Object
Krijgt het metagegevensobject van de DisplayObject-instantie als de metagegevens zijn opgeslagen naast de instantie van dit DisplayObject in het SWF-bestand door een PlaceObject4-markering. | DisplayObject | ||
mouseChildren : Boolean
Bepaalt of de onderliggende elementen van het object door de muis of door een gebruikersinvoerapparaat worden ingeschakeld. | DisplayObjectContainer | ||
mouseEnabled : Boolean
Geeft aan of dit object berichten van de muis of gebruikersinvoer ontvangt. | InteractiveObject | ||
mouseX : Number [alleen-lezen]
Geeft de x-coördinaat van de apparaatpositie van de muis of de gebruikersinvoer aan in pixels. | DisplayObject | ||
mouseY : Number [alleen-lezen]
Geeft de y-coördinaat van de apparaatpositie van de muis of de gebruikersinvoer aan in pixels. | DisplayObject | ||
name : String
Geeft de instantienaam van het DisplayObject aan. | DisplayObject | ||
needsSoftKeyboard : Boolean
Geeft aan of een virtueel toetsenbord (een softwaretoetsenbord op het scherm) moet worden weergegeven wanneer deze InteractiveObject-instantie focus krijgt. | InteractiveObject | ||
numChildren : int [alleen-lezen]
Retourneert het aantal onderliggende objecten van dit object. | DisplayObjectContainer | ||
opaqueBackground : Object
Geeft op of het weergaveobject dekkend is met een bepaalde achtergrondkleur. | DisplayObject | ||
parent : DisplayObjectContainer [alleen-lezen]
Geeft het object DisplayObjectContainer aan dat dit weergaveobject bevat. | DisplayObject | ||
root : DisplayObject [alleen-lezen]
Voor een weergaveobject in een geladen SWF-bestand is de eigenschap root het bovenste weergaveobject in het gedeelte van de boomstructuur van het weergaveoverzicht dat wordt vertegenwoordigd door dat SWF-bestand. | DisplayObject | ||
rotation : Number
Geeft de rotatie van de instantie DisplayObject vanaf de oorspronkelijke oriëntatie (in graden) aan. | DisplayObject | ||
rotationX : Number
Geeft in graden de X-asrotatie van de DisplayObject-instantie aan ten opzichte van de 3D parent-container. | DisplayObject | ||
rotationY : Number
Geeft in graden de y-asrotatie van de DisplayObject-instantie aan ten opzichte van de 3D parent-container. | DisplayObject | ||
rotationZ : Number
Geeft in graden de z-asrotatie van de DisplayObject-instantie aan ten opzichte van de 3D parent-container. | DisplayObject | ||
scale9Grid : Rectangle
Het huidige schaalraster dat wordt gebruikt. | DisplayObject | ||
scaleX : Number
Bepaalt de horizontale schaal (percentage) van het object zoals deze wordt toegepast vanuit het registratiepunt. | DisplayObject | ||
scaleY : Number
Bepaalt de verticale schaal (percentage) van een object zoals deze wordt toegepast vanuit het registratiepunt van het object. | DisplayObject | ||
scaleZ : Number
Bepaalt de diepteschaal (percentage) van een object zoals deze wordt toegepast vanuit het registratiepunt van het object. | DisplayObject | ||
scrollRect : Rectangle
De verschuivende rechthoekgrenzen van het weergaveobject. | DisplayObject | ||
softKeyboard : String
Bepaalt het uiterlijk van het schermtoetsenbord. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Definieert het gebied dat als scherm moet blijven fungeren wanneer een softwaretoetsenbord wordt weergegeven (niet beschikbaar op iOS). | InteractiveObject | ||
stage : Stage [alleen-lezen]
Het werkgebied van het weergaveobject. | DisplayObject | ||
tabChildren : Boolean
Bepaalt of de onderliggende objecten van het object tabnavigatie hebben. | DisplayObjectContainer | ||
tabEnabled : Boolean
Geeft op of dit object in de tabvolgorde is opgenomen. | InteractiveObject | ||
tabIndex : int
Geeft de tabvolgorde van objecten in een SWF-bestand op. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [alleen-lezen]
Retourneert een object TextSnapshot voor deze instantie DisplayObjectContainer. | DisplayObjectContainer | ||
transform : flash.geom:Transform
Een object met eigenschappen die betrekking hebben op de matrix van een weergaveobject, de kleurtransformatie en de pixelbeperkingen. | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [alleen-lezen]
Een object dat een uncaughtError-gebeurtenis verstuurt, wanneer er in de SWF een niet-afgehandelde fout plaatsvindt die door dit Loader-object wordt geladen. | Loader | ||
visible : Boolean
Bepaalt of het weergaveobject zichtbaar is. | DisplayObject | ||
width : Number
Geeft de breedte van het weergaveobject aan, in pixels. | DisplayObject | ||
x : Number
Bepaalt de x-coördinaat van de instantie DisplayObject ten opzichte van de lokale coördinaten van de bovenliggende DisplayObjectContainer. | DisplayObject | ||
y : Number
Bepaalt de y-coördinaat van de instantie DisplayObject ten opzichte van de lokale coördinaten van de bovenliggende DisplayObjectContainer. | DisplayObject | ||
z : Number
Geeft de z-coördinaatpositie langs de z-as van de DisplayObject-instantie aan ten opzichte van de bovenliggende 3D-container. | DisplayObject |
Methode | Gedefinieerd door | ||
---|---|---|---|
Loader()
Maakt een object Loader dat u kunt gebruiken om bestanden te laden, zoals SWF-, JPEG-, GIF- of PNG-bestanden. | Loader | ||
Voegt een onderliggende instantie DisplayObject toe aan deze instantie DisplayObjectContainer. | DisplayObjectContainer | ||
Voegt een onderliggende instantie DisplayObject toe aan deze instantie DisplayObjectContainer. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Geeft aan of vanwege beveiligingsbeperkingen weergaveobjecten worden weggelaten uit de lijst die wordt geretourneerd wanneer de methode DisplayObjectContainer.getObjectsUnderPoint() wordt aangeroepen met het opgegeven punt. | DisplayObjectContainer | ||
Hiermee wordt een bewerking met de methode load() geannuleerd die momenteel wordt uitgevoerd voor de instantie Loader. | Loader | ||
Bepaalt of het opgegeven weergaveobject een onderliggend object van de instantie DisplayObjectContainer of de instantie zelf is. | DisplayObjectContainer | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Retourneert een rechthoek die het gebied van het weergaveobject aangeeft ten opzichte van het coördinatensysteem van het object targetCoordinateSpace. | DisplayObject | ||
Retourneert de onderliggende weergaveobjectinstantie bij de opgegeven index. | DisplayObjectContainer | ||
Retourneert de onderliggende weergaveobjectinstantie met de opgegeven naam. | DisplayObjectContainer | ||
Retourneert de indexpositie van een onderliggende instantie DisplayObject. | DisplayObjectContainer | ||
Retourneert een array met objecten die zich onder het opgegeven punt bevinden en onderliggende objecten van deze instantie DisplayObjectContainer zijn (of onderliggende objecten van onderliggende objecten van die instantie). | DisplayObjectContainer | ||
Retourneert een rechthoek die de grens van het weergaveobject aangeeft op basis van het coördinatensysteem dat wordt gedefinieerd door de paramater targetCoordinateSpace, minus enige streken op vormen. | DisplayObject | ||
Hiermee worden de (algemene) werkgebiedcoördinaten van het object point omgezet in (lokale) objectcoördinaten. | DisplayObject | ||
Converteert een tweedimensionaal punt van de (algemene) werkruimtecoördinaten naar (lokale) coördinaten van een driedimensionaal weergaveobject. | DisplayObject | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Evalueert het selectiekader van het weergaveobject om te zien of dit het selectiekader van het weergaveobject obj overlapt of snijdt. | DisplayObject | ||
Hiermee wordt het weergaveobject geëvalueerd om te zien of deze een punt dat is opgegeven door de parameters x en y, overlapt of doorsnijdt. | DisplayObject | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Laadt een SWF-bestand, JPEG-bestand, progressief JPEG-bestand, GIF-bestand zonder animatie of PNG-bestand in een object dat een onderliggend item is van dit object Loader. | Loader | ||
Wordt geladen van binaire gegevens die in een ByteArray-object zijn opgeslagen. | Loader | ||
Laadt een IFilePromise-instantie. | Loader | ||
Converteert een driedimensionaal punt van de (lokale) coördinaten van het driedimensionale weergaveobject naar een tweedimensionaal punt in de (algemene) werkruimtecoördinaten. | DisplayObject | ||
Hiermee worden de (lokale) weergaveobjectcoördinaten van het object point omgezet in (algemene) werkgebiedcoördinaten. | DisplayObject | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert de opgegeven onderliggende instantie DisplayObject uit de lijst met onderliggende objecten van de instantie DisplayObjectContainer. | DisplayObjectContainer | ||
Verwijdert een onderliggend DisplayObject uit de opgegeven indexpositie in de lijst met onderliggende objecten van de DisplayObjectContainer. | DisplayObjectContainer | ||
Verwijdert alle onderliggende DisplayObject-instanties uit de lijst met onderliggende objecten van de instantie DisplayObjectContainer. | DisplayObjectContainer | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Geeft een virtueel toetsenbord weer. | InteractiveObject | ||
Wijzigt de positie van een bestaand onderliggend object in de weergaveobjectcontainer. | DisplayObjectContainer | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Stopt recursief de tijdlijnuitvoering van alle filmclips die beginnen bij dit object. | DisplayObjectContainer | ||
Wisselt de z-volgorde (van voor naar achter) van de twee opgegeven onderliggende objecten om. | DisplayObjectContainer | ||
Wisselt de z-volgorde (van voor naar achter) van de onderliggende objecten op de twee opgegeven indexposities in de lijst met onderliggende objecten om. | DisplayObjectContainer | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Hiermee wordt een onderliggend item van dit object Loader verwijderd dat met de methode load() is geladen. | Loader | ||
Probeert het laden van de inhoud van een onderliggend SWF-bestand ongedaan te maken en stopt de uitvoering van opdrachten van geladen SWF-bestanden. | Loader | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
content | eigenschap |
content:DisplayObject
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bevat het hoofdweergaveobject van het SWF-bestand of afbeeldingsbestand (JPG, PNG of GIF) dat is geladen met de methoden load()
of loadBytes()
.
Implementatie
public function get content():DisplayObject
Gegenereerde uitzondering
SecurityError — Het geladen SWF-bestand of afbeeldingsbestand behoort tot een beveiligingssandbox waartoe u geen toegang hebt. Voor een geladen SWF-bestand kunt u dit voorkomen door het bestand de methode Security.allowDomain() aan te laten roepen of door het bestand dat wordt geladen een parameter loaderContext op te laten geven met de eigenschap securityDomain ingesteld op SecurityDomain.currentDomain wanneer u de methode load() of loadBytes() aanroept.
|
Verwante API-elementen
contentLoaderInfo | eigenschap |
contentLoaderInfo:LoaderInfo
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een object LoaderInfo dat overeenkomt met het object dat wordt geladen. Objecten LoaderInfo worden tussen het object Loader en het geladen inhoudsobject gedeeld. Het object LoaderInfo geeft informatie over de laadvoortgang en statistieken over het geladen bestand.
Gebeurtenissen met betrekking tot de laadbewerking worden verzonden door het object LoaderInfo waarnaar de eigenschap contentLoaderInfo
van het object Loader verwijst. De eigenschap contentLoaderInfo
wordt, zelfs voordat de inhoud is geladen, op een geldig object LoaderInfo ingesteld, zodat u gebeurtenislisteners aan het object kunt toevoegen voor de laadbewerking.
Gebruik de Loader.uncaughtErrorEvents
-eigenschap, en niet de Loader.contentLoaderInfo.uncaughtErrorEvents
-eigenschap, om niet-afgevangen fouten op te sporen die in een geladen SWF plaatsvinden.
Implementatie
public function get contentLoaderInfo():LoaderInfo
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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 | eigenschap |
uncaughtErrorEvents:UncaughtErrorEvents
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Een object dat een uncaughtError
-gebeurtenis verstuurt, wanneer er in de SWF een niet-afgehandelde fout plaatsvindt die door dit Loader-object wordt geladen. Er vindt een niet-afgevangen fout plaats wanneer er een fout optreedt buiten een Poging..catch
blokkeert of wanneer er een ErrorEvent-object naar niet-geregistreerde listeners wordt verstuurd.
Let op: de uncaughtErrorEvents
-eigenschap van een Loader-object verstuurt alleen eraan gekoppelde gebeurtenissen, geen gebeurtenissen die het rechtstreeks verstuurt. Het verstuurt nooit een uncaughtErrorEvent
in de doelfase. Deze verstuurt de gebeurtenis alleen in de fasen opnemen en terugkoppelen. Om een niet-afgevangen fout in de huidige SWF (de SWF waarin het Loader-object wordt gedefinieerd) gebruikt u in plaats daarvan de LoaderInfo.uncaughtErrorEvents
-eigenschap.
Als de door het Loader-object geladen inhoud een SWF-bestand in AVM1 (ActionScript 2) is, resulteren niet-afgevangen fouten in het SWF-bestand in AVM1 niet in een uncaughtError
-gebeurtenis.
Implementatie
public function get uncaughtErrorEvents():UncaughtErrorEvents
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
uncaughtError
-gebeurtenishandler voor het opsporen van niet-afgevangen fouten.
In de constructor, maakt de code een Loader-object en registreert deze een listener voor de uncaughtError
-gebeurtenis die door de uncaughtErrorEvents
-eigenschap van het Loader-object is verstuurd..
In de uncaughtErrorHandler()
-methode controleert de code het gegevenstype van de error
-eigenschap en reageert deze overeenstemmend.
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 | () | Constructor |
public function Loader()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt een object Loader dat u kunt gebruiken om bestanden te laden, zoals SWF-, JPEG-, GIF- of PNG-bestanden. Roep de methode load()
aan om het element als een onderliggend item van de instantie Loader te laden. Vervolgens kunt u het object Loader aan het weergaveoverzicht toevoegen (bijvoorbeeld met de methode addChild()
van een instantie DisplayObjectContainer). Het element wordt tijdens het laden in het werkgebied weergegeven.
U kunt een instantie Loader ook buiten het weergaveoverzicht gebruiken (zonder dat u het aan de weergaveobjectcontainer in het weergaveoverzicht toevoegt). In deze modus kunt u de instantie Loader gebruiken om een SWF-bestand te laden dat aanvullende modules van een toepassing bevat.
Wanneer u wilt detecteren wanneer een SWF-bestand klaar is met laden, kunt u de gebeurtenissen van het object LoaderInfo gebruiken die aan de eigenschap contentLoaderInfo
van het object Loader zijn gekoppeld. Op dat punt kan de code in het SWF-modulebestand worden uitgevoerd om de module te starten. In de modus buiten het weergaveoverzicht kan een instantie Loader ook worden gebruikt om een SWF-bestand te laden dat componenten of media-elementen bevat. U kunt de gebeurtenismeldingen van het object LoaderInfo gebruiken om te detecteren wanneer de componenten klaar zijn met laden. De toepassing kan de componenten en media-elementen in de bibliotheek van het SWF-bestand dan gebruiken door de ActionScript 3.0-klassen te instantiëren die deze componenten en elementen vertegenwoordigen.
Wanneer u de status van een object Loader wilt bepalen, controleert u de volgende gebeurtenissen die het object LoaderInfo aan de eigenschap contentLoaderInfo
van het object Loader heeft gekoppeld.
- De gebeurtenis
open
wordt verzonden wanneer het laden wordt gestart. - De gebeurtenis
ioError
ofsecurityError
wordt verzonden wanneer het bestand niet kan worden geladen of wanneer tijdens het laadproces een fout is opgetreden. - De gebeurtenis
progress
wordt continu geactiveerd tijdens het laden van het bestand. - De gebeurtenis
complete
wordt verzonden wanneer een bestand volledig is gedownload, maar voordat de methoden en eigenschappen van de geladen filmclip beschikbaar zijn. - De gebeurtenis
init
wordt verzonden nadat de eigenschappen en methoden van het geladen SWF-bestand toegankelijk zijn, zodat u kunt beginnen met het manipuleren van het geladen SWF-bestand. Deze gebeurtenis wordt verzonden vóór de handlercomplete
. De gebeurtenisinit
kan in streaming SWF-bestanden aanzienlijk eerder plaatsvinden dan de gebeurteniscomplete
. Voor de meeste toepassingen gebruikt u de handlerinit
.
Opmerkingen (alleen iOS): In AIR-toepassingen op iOS kunt u een SWF-bestand dat ActionScript bevat, alleen laden vanaf het toepassingspakket. Deze beperking omvat alle ActionScript, zoals elementen met klassenamen die zijn geëxporteerd voor ActionScript. Als u een SWF-bestand wilt laden, moet u het SWF-bestand laden met hetzelfde toepassingsdomein als het bovenliggende SWF-bestand.
Vóór AIR 3.6 kunnen alleen SWF-bestanden die geen ActionScript-bytecode bevatten, worden geladen, ongeacht of ze werden geladen vanaf het toepassingspakket of via een netwerk. Als alternatief voor het gebruik van een extern SWF-bestand met ActionScript kunt u een SWC-bibliotheek maken en deze koppelen aan uw SWF-hoofdbestand.
Deze beperkingen zijn niet van toepassing wanneer een toepassing wordt uitgevoerd in de iOS-simulator (ipa-test-interpreter-simulator of ipa-debug-interpreter-simulator) of interpretermodus (ipa-test-interpreter of ipa-debug-interpreter).
Verwante API-elementen
close | () | methode |
public function close():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Annuleert een bewerking met de methode load()
die momenteel wordt uitgevoerd voor de instantie Loader.
Verwante API-elementen
load | () | methode |
public function load(request:URLRequest, context:LoaderContext = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Laadt een SWF-bestand, JPEG-bestand, progressief JPEG-bestand, GIF-bestand zonder animatie of PNG-bestand in een object dat een onderliggend item is van dit object Loader. Wanneer u een GIF-bestand met animatie laadt, wordt alleen het eerste frame weergegeven. Aangezien het object Loader slechts één onderliggend item kan bevatten, wordt bij het verzenden van een volgende aanvraag load()
de vorige aanvraag beëindigd (indien in behandeling) en wordt een nieuwe laadbewerking gestart.
Opmerking: In AIR 1.5 en Flash Player 10 is de maximale grootte voor een geladen afbeelding 8,191 pixels breed of hoog en mag het totale aantal pixels niet groter zijn dan 16,777,215 pixels. (Als een geladen afbeelding 8,191 pixels breed is, kan deze daarom slechts 2048 pixels hoog zijn.) In Flash Player 9 en lager en AIR 1.1 en lager is de maximale hoogte 2880 pixels en de maximale breedte 2880 pixels.
Een in een object Loader geladen SWF-bestand of afbeelding overerft de eigenschappen van positie, rotatie en schaal van de bovenliggende weergaveobjecten van het object Loader.
Gebruik de methode unload()
om films of afbeeldingen te verwijderen die met deze methode zijn geladen of om een laadbewerking te annuleren.
U kunt voorkomen dat een SWF-bestand deze methode gebruikt door de parameter allowNetworking
in te stellen van de tags object
en embed
op de HTML-pagina die de SWF-inhoud bevat.
iOS-opmerkingen
In AIR-toepassingen op iOS kunt u een SWF-bestand dat ActionScript bevat, alleen laden vanaf het toepassingspakket. Deze beperking omvat alle ActionScript, zoals elementen met klassenamen die zijn geëxporteerd voor ActionScript. Als u een SWF-bestand wilt laden, moet u het SWF-bestand laden met hetzelfde toepassingsdomein als het bovenliggende SWF-bestand, zoals weergegeven in het volgende voorbeeld:
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);
Bovendien kunt u op iOS geen SWF-bestand laden dat ActionScript ByteCode (ABC) bevat, het vervolgens verwijderen en daarna opnieuw laden. Als u dit doet, genereert de runtime de fout 3764.
Vóór AIR 3.6 kunnen alleen SWF-bestanden die geen ActionScript-bytecode bevatten, worden geladen, ongeacht of ze werden geladen vanaf het toepassingspakket of via een netwerk. Als alternatief voor het gebruik van een extern SWF-bestand met ActionScript kunt u een SWC-bibliotheek maken en deze koppelen aan uw SWF-hoofdbestand.
Deze beperkingen zijn niet van toepassing wanneer een toepassing wordt uitgevoerd in de iOS-simulator (ipa-test-interpreter-simulator of ipa-debug-interpreter-simulator) of interpretermodus (ipa-test-interpreter of ipa-debug-interpreter).
Loader-beveiliging
Als u deze methode gebruikt, kunt u overwegen het beveiligingsmodel van Flash Player te gebruiken. Dit model wordt beschreven in het gedeelte over de klasse Loader.
Als u in Flash Player 10 en hoger een multipart-inhoudstype gebruikt (bijvoorbeeld 'multipart/form-data') dat een upload bevat (aangegeven met de parameter 'bestandsnaam' in een header 'content-disposition' binnen de POST-body), gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads:
- De POST-bewerking moet worden uitgevoerd in reactie op een door de gebruiker geïnitieerde actie, zoals het klikken met de muis of het indrukken van een toets.
- Als bij de POST-bewerking verschillende domeinen betrokken zijn (het doel van de POST-bewerking bevindt zich niet op dezelfde server als het SWF-bestand dat de POST-aanvraag verstuurt), moet de doelserver een URL-beleidsbestand leveren dat interdomeintoegang toestaat.
In het geval van een multipart-inhoudstype is het ook essentieel dat de syntaxis juist is (in overeenstemming met de norm RFC2046). Als de syntaxis ongeldig lijkt te zijn, gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Parameters
request:URLRequest — De absolute of relatieve URL van het SWF-, JPEG-, GIF- of PNG-bestand dat moet worden geladen. Een relatief pad moet relatief zijn ten opzichte van het SWF-hoofdbestand. Absolute URL’s moeten een protocolverwijzing bevatten, zoals http:// of file:///. Bestandsnamen kunnen geen schijfstationsspecificatie bevatten.
| |
context:LoaderContext (default = null ) — Een object Loader dat eigenschappen bevat die het volgende definiëren:
Als de parameter Alleen iOS: Als de Zie de beschrijving van de eigenschappen in de klasse LoaderContext voor volledige informatie. |
Gebeurtenissen
asyncError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de geladen inhoud niet kan worden toegevoegd als een onderliggend item voor de opgegeven DisplayObjectContainer. Dit kan gebeuren wanneer de geladen inhoud een flash.display.AVM1Movie is, of wanneer de addChild() -aanroep naar requestedContentParent een fout veroorzaakt.
| |
complete: — Wordt verzonden door het gekoppelde contentLoaderInfo -object wanneer het laden van het bestand is voltooid. De gebeurtenis complete wordt altijd verzonden na de gebeurtenis init .
| |
httpStatus: — Wordt verzonden door het contentLoaderInfo -object wanneer een netwerkaanvraag wordt uitgevoerd via HTTP en Flash Player de HTTP-statuscode kan detecteren.
| |
init: — Wordt verzonden door het contentLoaderInfo -object wanneer de eigenschappen en methoden van het geladen SWF-bestand toegankelijk zijn. De gebeurtenis init gaat altijd vooraf aan de gebeurtenis complete .
| |
ioError: — Wordt verzonden door het contentLoaderInfo -object wanneer een invoer- of uitvoerfout optreedt die ertoe leidt dat een laadbewerking mislukt.
| |
open: — Wordt verzonden door het contentLoaderInfo -object wanneer de laadbewerking start.
| |
progress: — Wordt verzonden door het contentLoaderInfo -object wanneer de gegevens tijdens de laadbewerking worden ontvangen.
| |
securityError: — Wordt verzonden door het contentLoaderInfo -object als een SWF-bestand in de sandbox lokaal-met-bestandssysteem inhoud probeert te laden in de sandbox lokaal-met-netwerk, of andersom.
| |
securityError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de beveiligingssandbox van LoaderContext.requestedContentParent geen toegang heeft tot het geladen SWF-bestand.
| |
unload: — Wordt verzonden door het contentLoaderInfo -object wanneer een geladen object wordt verwijderd.
|
Gegenereerde uitzondering
IOError — De eigenschap digest van het object request is niet null . U moet de eigenschap digest van een object URLRequest alleen instellen wanneer u tijdens het laden van een SWZ-bestand (een component van het Adobe-platform) de methode URLLoader.load() aanroept.
| |
SecurityError — De waarde van LoaderContext.securityDomain moet null of SecurityDomain.currentDomain zijn. Dit geeft aan dat u de geladen media alleen in de natuurlijke beveiligingssandbox of in uw eigen beveiligingssandbox kunt plaatsen (voor deze laatste is een beleidsbestand vereist).
| |
SecurityError — Lokale SWF-bestanden mogen LoaderContext.securityDomain alleen instellen op null . Het is niet toegestaan niet-lokale media in een lokale sandbox te importeren of andere lokale media in een andere (dan de eigen natuurlijke) sandbox te plaatsen.
| |
SecurityError — U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.
| |
SecurityError — Wanneer de eigenschappen applicationDomain of securityDomain van de parameter context afkomstig zijn van een domein die niet is toegestaan.
| |
SecurityError — Wanneer een lokaal SWF-bestand de eigenschap securityDomain van de parameter context probeert te gebruiken.
| |
IllegalOperationError — Als de eigenschap requestedContentParent van de parameter context een Loader is.
| |
IllegalOperationError — Als de parameter LoaderContext.parameters is ingesteld op een andere waarde dan null en beschikt over een aantal waarden die geen tekenreeksen zijn.
| |
IllegalOperationError — Op iOS, als de toepassing probeert een SWF-bestand te laden in een ander toepassingsdomein dan het hoofdtoepassingsdomein.
| |
IllegalOperationError — Op iOS, als de toepassing probeert een SWF-bestand opnieuw te laden dat al werd geladen en verwijderd en het SWF-bestand ABC-code bevat.
| |
Error — Op iOS, als de toepassing probeert een SWF-bestand te laden van buiten het toepassingspakket dat ActionScript-code bevat. Deze fout kan niet worden afgevangen. Deze verschijnt als een dialoogvenster op het toepassingsscherm met de titel "Niet-gecompileerde ActionScript". Vóór AIR 3.6 treedt deze fout op wanneer u probeert een SWF-bestand dat ActionScript, te laden, ongeacht of het extern is of opgenomen in het toepassingspakket.
|
Verwante API-elementen
loadBytes | () | methode |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt geladen van binaire gegevens die in een ByteArray-object zijn opgeslagen.
De methode loadBytes()
is asynchroon. U moet op de gebeurtenis "init" wachten voordat u de eigenschappen van een geladen object opent.
Als u deze methode gebruikt, kunt u overwegen het beveiligingsmodel van Flash Player te gebruiken. Dit model wordt beschreven in het gedeelte over de klasse Loader.
Opmerking (alleen iOS): In AIR-toepassingen op iOS kunt u een SWF-bestand dat ActionScript bevat, alleen laden vanaf het toepassingspakket. Deze beperking omvat alle ActionScript, zoals elementen met klassenamen die zijn geëxporteerd voor ActionScript. Als u een SWF-bestand wilt laden, moet u het SWF-bestand laden met hetzelfde toepassingsdomein als het bovenliggende SWF-bestand.
Vóór AIR 3.6 wordt iOS niet beïnvloed bij het aanroepen van deze methode.
Parameters
bytes:ByteArray — Een object ByteArray. De inhoud van het object ByteArray kan een willekeurige bestandsindeling zijn die door de klasse Loader wordt ondersteund: SWF, GIF, JPEG of PNG.
| |
context:LoaderContext (default = null ) — Een object LoaderContext. Alleen de eigenschap applicationDomain van het object LoaderContext wordt toegepast; de eigenschappen checkPolicyFile en securityDomain van het object LoaderContext zijn niet van toepassing.
Als de parameter Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center. |
Gebeurtenissen
asyncError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de geladen inhoud niet kan worden toegevoegd als een onderliggend item voor de opgegeven DisplayObjectContainer. Dit kan gebeuren wanneer de geladen inhoud een flash.display.AVM1Movie is, of wanneer de addChild() -aanroep naar requestedContentParent een fout veroorzaakt.
| |
complete: — Wordt verzonden door het contentLoaderInfo -object wanneer de bewerking is voltooid. De gebeurtenis complete wordt altijd verzonden na de gebeurtenis init .
| |
init: — Wordt verzonden door het contentLoaderInfo -object wanneer de eigenschappen en methoden van de geladen gegevens toegankelijk zijn. De gebeurtenis init gaat altijd vooraf aan de gebeurtenis complete .
| |
ioError: — Wordt verzonden door het contentLoaderInfo -object wanneer de runtime de gegevens in de bytearray niet kan parseren.
| |
open: — Wordt verzonden door het contentLoaderInfo -object wanneer de bewerking start.
| |
progress: — Wordt verzonden door het contentLoaderInfo -object als gegevens in het geheugen worden overgedragen.
| |
securityError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de beveiligingssandbox van LoaderContext.requestedContentParent geen toegang heeft tot het geladen SWF-bestand.
| |
unload: — Wordt verzonden door het contentLoaderInfo -object wanneer een geladen object wordt verwijderd.
|
Gegenereerde uitzondering
ArgumentError — Indien de eigenschap length van het object ByteArray niet groter dan 0 is.
| |
IllegalOperationError — Indien de eigenschap checkPolicyFile of securityDomain van de parameter context niet null is.
| |
IllegalOperationError — Als de eigenschap requestedContentParent van de parameter context een Loader is.
| |
IllegalOperationError — Als de parameter LoaderContext.parameters is ingesteld op een andere waarde dan null en beschikt over een aantal waarden die geen tekenreeksen zijn.
| |
IllegalOperationError — Op iOS, als de toepassing probeert een SWF-bestand te laden in een ander toepassingsdomein dan het hoofdtoepassingsdomein.
| |
IllegalOperationError — Op iOS, als de toepassing probeert een SWF-bestand opnieuw te laden dat al werd geladen en verwijderd en ABC-code bevat.
| |
Error — Op iOS, als de toepassing probeert een SWF-bestand te laden van buiten het toepassingspakket dat ActionScript-code bevat. Deze fout kan niet worden afgevangen. Deze verschijnt als een dialoogvenster op het toepassingsscherm met het bericht "Niet-gecompileerde ActionScript". Vóór AIR 3.6 treedt deze fout op wanneer u probeert een SWF-bestand dat ActionScript, te laden, ongeacht of het extern is of opgenomen in het toepassingspakket.
| |
SecurityError — Wanneer de opgegeven eigenschap applicationDomain van de eigenschap context uit een domein komt dat niet is toegestaan.
| |
SecurityError — U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.
|
Verwante API-elementen
loadFilePromise | () | methode |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2.5 |
Laadt een IFilePromise-instantie.
De methode loadFilePromise
neemt een IFilePromise
-object en laadt de binaire gegevens. Als de gegevens bestaan uit een progressieve stream, zoals een video, moet u wachten op 'init' of progress-gebeurtenissen voordat u toegang krijgt tot de eigenschappen van het geladen object. U kunt ook wachten op de hele gebeurtenis. Zo weet u zeker dat de gegevens volledig zijn geladen.
Als u deze methode gebruikt, kunt u overwegen het beveiligingsmodel van Flash Player te gebruiken. Dit model wordt beschreven in het gedeelte over de klasse Loader.
Parameters
promise:IFilePromise — Een IFilePromise-object. De databron van het object kan een willekeurige bestandsindeling zijn die door de klasse Loader wordt ondersteund: SWF, GIF, JPEG of PNG.
| |
context:LoaderContext (default = null ) — Een object LoaderContext. Alleen de eigenschap applicationDomain van het object LoaderContext wordt toegepast; de eigenschappen checkPolicyFile en securityDomain van het object LoaderContext zijn niet van toepassing.
Als de parameter Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center. |
Gebeurtenissen
asyncError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de geladen inhoud niet kan worden toegevoegd als een onderliggend item voor de opgegeven DisplayObjectContainer. Dit kan gebeuren wanneer de geladen inhoud een flash.display.AVM1Movie is, of wanneer de addChild() -aanroep naar requestedContentParent een fout veroorzaakt.
| |
complete: — Wordt verzonden door het contentLoaderInfo -object wanneer de bewerking is voltooid. De gebeurtenis complete wordt altijd verzonden na de gebeurtenis init .
| |
init: — Wordt verzonden door het contentLoaderInfo -object wanneer de eigenschappen en methoden van de geladen gegevens toegankelijk zijn. De gebeurtenis init gaat altijd vooraf aan de gebeurtenis complete .
| |
ioError: — Wordt verzonden door het contentLoaderInfo -object wanneer de gegevens in de gegevensbron niet kunnen worden geparseerd door de runtime, of wanneer de gegevensbronstroom niet kan worden gelezen.
| |
open: — Wordt verzonden door het contentLoaderInfo -object wanneer de bewerking start.
| |
progress: — Wordt verzonden door het contentLoaderInfo -object als gegevens in het geheugen worden overgedragen.
| |
securityError: — Verzonden door het contentLoaderInfo -object als de eigenschap LoaderContext.requestedContentParent is opgegeven en de beveiligingssandbox van LoaderContext.requestedContentParent geen toegang heeft tot het geladen SWF-bestand.
| |
unload: — Wordt verzonden door het contentLoaderInfo -object wanneer een geladen object wordt verwijderd.
|
Gegenereerde uitzondering
IllegalOperationError — Als de eigenschap requestedContentParent van de parameter context een Loader is.
| |
IllegalOperationError — Als de parameter LoaderContext.parameters is ingesteld op een andere waarde dan null en beschikt over een aantal waarden die geen tekenreeksen zijn.
| |
ArgumentError — Als het IFilePromise -object dat als parameter wordt doorgegeven de waarde null heeft.
|
Verwante API-elementen
unload | () | methode |
public function unload():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een onderliggend item van dit object Loader verwijderd dat met de methode load()
is geladen. De eigenschap
van het gekoppelde object LoaderInfo wordt teruggezet op null
. Het onderliggende item wordt niet noodzakelijkerwijs verwijderd, omdat andere objecten mogelijk verwijzingen ernaar bevatten; het is echter geen onderliggend item meer van het object Loader.
Als u de unload()
-methode aanroept, wordt de contentLoaderInfo
-eigenschap van het Loader-object ingesteld op null
. Eventuele visuele elementen die met het SWF-bestand werden geladen, worden verwijderd en uit het geheugen gewist. ActionScript-klassedefinities in het geladen SWF-bestand blijven in het geheugen en de code in hetzelfde toepassingsdomein als het geladen SWF-bestand heeft toegang tot instanties van deze klassen en kan nieuwe instanties maken.
Opmerking (alleen iOS): Vóór AIR 3.6 heeft deze methode geen effect op iOS.
Voordat u een onderliggend SWF-bestand verwijdert, kunt u het best streams in de objecten van het onderliggende SWF-bestand expliciet sluiten, zoals objecten LocalConnection, NetConnection, NetStream en Sound. Anders kan het geluid in het onderliggende SWF-bestand blijven afspelen, ook al is het onderliggende SWF-bestand verwijderd. Wanneer u streams in het onderliggende SWF-bestand wilt sluiten, voegt u een gebeurtenislistener aan het onderliggende item toe dat naar de gebeurtenis unload
luistert. Wanneer het bovenliggende item Loader.unload()
aanroept, wordt de gebeurtenis unload
naar het onderliggende item verzonden. De volgende code laat zien hoe u dit kunt doen:
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Verwante API-elementen
unloadAndStop | () | methode |
public function unloadAndStop(gc:Boolean = true):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Probeert het laden van de inhoud van een onderliggend SWF-bestand ongedaan te maken en stopt de uitvoering van opdrachten van geladen SWF-bestanden. Deze methode probeert het laden van SWF-bestand ongedaan te maken die zijn geladen met Loader.load()
of Loader.loadBytes()
door de verwijzingen naar objecten van het type EventDispatcher, NetConnection, Timer, Sound of Video van het onderliggende SWF-bestand te verwijderen. Dit heeft de volgende gevolgen voor het onderliggende SWF-bestand en de weergavelijst van het onderliggende SWF-bestand:
- Geluid wordt gestopt.
- Gebeurtenislisteners van de werkruimte worden verwijderd.
- Listeners voor de gebeurtenissen
enterFrame
,frameConstructed
,exitFrame
,activate
endeactivate
worden verwijderd. - Timers worden gestopt.
- Camera- en Microphone-instanties worden ontkoppeld.
- Filmclips worden gestopt.
Als u de unloadAndStop()
-methode aanroept, wordt de contentLoaderInfo
-eigenschap van het Loader-object ingesteld op null
. Eventuele visuele elementen die met het SWF-bestand werden geladen, worden verwijderd en uit het geheugen gewist. ActionScript-klassedefinities in het geladen SWF-bestand blijven in het geheugen en de code in hetzelfde toepassingsdomein als het geladen SWF-bestand heeft toegang tot instanties van deze klassen en kan nieuwe instanties maken.
Opmerking (alleen iOS): Vóór AIR 3.6 heeft deze methode geen effect op iOS.
Parameters
gc:Boolean (default = true ) — Geeft een hint om de onderliggende SWF-bestanden op te schonen (true ) of niet (false ). Als u het laden van veel objecten ongedaan maakt, kunt u de prestaties verbeteren door de parameter gc in te stellen op false . Als deze parameter wordt ingesteld op false , blijven media en weergaveobjecten van het onderliggende SWF-bestand mogelijk in het geheugen na uitvoering van de opdracht unloadAndStop() .
|
Verwante API-elementen
- De eigenschap
url
, de locatie en naam van het afbeeldingsbestand, wordt gemaakt. - In de constructor
LoaderExample
wordt een nieuw object met de naamloader
gemaakt, die vervolgens aan de methodeconfigureListeners()
wordt doorgegeven. Dit wordt beschreven in stap 3. - De constructor maakt een nieuwe instantie van het URLRequest-object
request
waarbijurl
wordt doorgegeven zodat de bestandsnaam en -locatie bekend zijn. - Het object
request
wordt doorgegeven aan de methodeload()
van het objectloader()
, waarmee de afbeelding in het weergaveoverzicht wordt geladen. - Een gebeurtenislistener
clickHandler
wordt geregistreerd voor de gebeurtenisclick
op de lader. Nadat u met de muis hebt geklikt, wordt de geladen afbeelding verwijderd. - De methode
configureListeners()
voegt met de volgende methoden zeven gebeurtenislisteners toe:- De methode
completeHandler()
wordt uitgevoerd wanneer het laden van de afbeelding is voltooid. - De methode
httpStatusHandler()
wordt uitgevoerd als de afbeelding niet lokaal wordt geladen en alleen wanneer de netwerkaanvraag beschikbaar is gemaakt en de Flash Player deze kan detecteren. - De methode
initHandler()
wordt voor de methodecompleteHandler()
en na de methodeprogressHandler()
uitgevoerd. In het algemeen is de gebeurtenisinit
nuttiger wanneer u SWF-bestanden laadt. - De methode
ioErrorHandler()
wordt uitgevoerd wanneer het afbeeldingsbestand niet beschikbaar of niet toegankelijk is. - De methode
openHandler()
wordt uitgevoerd wanneer het afbeeldingsbestand voor het eerst wordt geopend. - De methode
progressHandler()
wordt uitgevoerd wanneer het afbeeldingsbestand met laden begint en nog een keer wanneer de afbeelding klaar is met laden. - De methode
unLoadHandler()
wordt uitgevoerd wanneer de afbeelding wordt verwijderd met de methodeunload()
wanneer de gebruiker op de afbeelding klikt.
- De methode
Hierbij gelden de volgende vereisten:
- U kunt dit voorbeeld alleen uitvoeren wanneer het bestand Image.gif zich in dezelfde map bevindt als het gecompileerde SWF-bestand. Gebruik een afbeelding die een gebied bevat dat binnen de afmetingen van het hoofd-SFW-bestand past.
- Hoewel in dit voorbeeld alle gebeurtenissen wordt gebruikt die voor het object LoaderInfo beschikbaar zijn, is in de meeste gevallen alleen een subset nodig, Met name wanneer u alleen een afbeeldingsbestand laadt, is de gebeurtenis
complete
(en misschien de gebeurtenisioError
) voldoende bij het laden van een lokale afbeelding.
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(); } } }
Wed Jun 13 2018, 11:42 AM Z