Inhoud ladenFlash Player 9 of hoger, Adobe AIR 1.0 of hoger Flash Player- en AIR-inhoud kan vele andere inhoudstypen laden, waaronder:
SWF-bestanden en afbeeldingen met de klasse Loader ladenU kunt de klasse Loader gebruiken om SWF-bestanden en afbeeldingen te laden (JPG-, GIF- of PNG-bestanden). Alle SWF-bestanden die zich niet in de sandbox Lokaal-met-bestandssysteem bevinden, kunnen SWF-bestanden en afbeeldingen laden vanaf een willekeurig netwerkdomein. Alleen SWF-bestanden in lokale sandboxen kunnen SWF-bestanden en afbeeldingen laden vanaf het lokale bestandssysteem. Bestanden in de sandbox Lokaal-met-netwerk kunnen echter alleen lokale SWF-bestanden laden die zich in de sandbox Lokaal-vertrouwd of Lokaal-met-netwerk bevinden. SWF-bestanden in de sandbox Lokaal-met-netwerk kunnen andere lokale inhoud laden dan SWF-bestanden (zoals afbeeldingen), maar ze krijgen geen toegang tot gegevens in de geladen inhoud. 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); 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); Wanneer u de methode load() van het object Loader aanroept, kunt u een parameter context opgeven, die een object LoaderContext is. De klasse LoaderContext bevat drie eigenschappen waarmee u kunt definiëren hoe de geladen inhoud wordt gebruikt:
Zie De context van de geladen gegevens opgeven voor meer informatie. Een belangrijke eigenschap van een object Loader is de eigenschap contentLoaderInfo, wat een object LoaderInfo is. Anders dan de meeste andere objecten, wordt een object LoaderInfo tussen het ladende SWF-bestand en de geladen inhoud gedeeld en is het object altijd toegankelijk voor beide partijen. Als de geladen inhoud een SWF-bestand is, heeft het toegang tot het object LoaderInfo via de eigenschap DisplayObject.loaderInfo. Objecten LoaderInfo bieden informatie over de voortgang van het laden, de URL’s van de lader en geladen inhoud, de vertrouwensrelatie tussen de lader en geladen inhoud en andere informatie. Zie De voortgang van het laden controleren voor meer informatie. Geluids- en videobestanden ladenMet de methoden Sound.load(), NetConnection.connect() en NetStream.play() kunnen geluids- en videobestanden vanaf netwerken worden geladen door alle inhoud, behalve inhoud in de sandbox Lokaal-met-bestandssysteem. Media van het lokale bestandssysteem kan alleen worden geladen door inhoud in de sandbox Lokaal-met-bestandssysteem en in de sandbox AIR-toepassing. De gegevens in deze geladen bestanden zijn alleen toegankelijk voor inhoud in de sandbox Lokaal-met-bestandssysteem, de sandbox AIR-toepassing en de sandbox Lokaal-vertrouwd. Er gelden geen andere beperkingen voor het benaderen van gegevens uit geladen media. Zie Geladen media benaderen als gegevens voor meer informatie. SWF-bestanden en afbeeldingen in een tekstveld laden met de tag <img >U kunt de tag <img> gebruiken om SWF-bestanden en bitmaps in een tekstveld te laden, zoals in de volgende code wordt getoond: <img src = 'filename.jpg' id = 'instanceName' > U kunt toegang verkrijgen tot inhoud die zo is geladen met de methode getImageReference() van de instantie TextField, zoals in de volgende code wordt getoond: var loadedObject:DisplayObject = myTextField.getImageReference('instanceName'); SWF-bestanden en afbeeldingen die zo zijn geladen, worden in de sandbox geplaatst die overeenkomt met de locatie waarvan de bestanden zijn gedownload. Wanneer u een afbeeldingsbestand in een tekstveld laadt met de tag <img>, kunt u mogelijk toegang krijgen tot de gegevens in de afbeelding via een bestand met interdomeinbeleid. U kunt controleren of er een beleidsbestand aanwezig is door een attribuut checkPolicyFile aan de tag <img> toe te voegen, zoals in de volgende code wordt getoond: <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > Wanneer u een SWF-bestand in een tekstveld laadt met behulp van een tag <img>, kunt u toegang tot de gegevens in dat SWF-bestand toestaan via het aanroepen van de methode Security.allowDomain(). Als u een tag <img> in een tekstveld gebruikt om een extern bestand te laden (in plaats van een klasse Bitmap die in het SWF-bestand is ingesloten), wordt automatisch een object Loader gemaakt als onderliggend element van het object TextField en wordt het externe bestand in die Loader geladen alsof u een object Loader in ActionScript had gebruikt om het bestand te laden. In dit geval retourneert de methode getImageReference() de Loader die automatisch is gemaakt. Er is geen beveiligingscontrole nodig om toegang te krijgen tot dit object Loader, omdat het object zich in dezelfde beveiligingssandbox bevindt als de aanroepende code. Als u echter via de eigenschap content van het object Loader toegang wilt krijgen tot geladen media, zijn beveiligingsregels van toepassing. Als de inhoud een afbeelding is, moet u een bestand met interdomeinbeleid implementeren. Als de inhoud een SWF-bestand is, moet de methode allowDomain() worden aangeroepen door de code in het SWF-bestand. Adobe AIRIn de sandbox van toepassingen worden <img>-tags in tekstvelden genegeerd om phishingaanvallen te voorkomen. Bovendien mag code die in de sandbox van een toepassing wordt uitgevoerd, de methode allowDomain() niet aanroepen. Inhoud leveren met RTMP-serversFlash Media Server maakt gebruik van RMTP (Real-Time Media Protocol) bij het leveren van gegevens en geluids- en videobestanden. Deze media kan worden geladen door de methode connect() van de klasse NetConnection te gebruiken, waarbij als parameter een RTMP-URL wordt doorgegeven. Flash Media Server kan op basis van het domein van het aanvragende bestand verbindingen beperken en voorkomen dat inhoud wordt gedownload. Bekijk de Flash Media Server-documentatie online op www.adobe.com/go/learn_fms_docs_nl voor meer informatie. Als u de methoden BitmapData.draw() en SoundMixer.computeSpectrum() wilt gebruiken om runtimeafbeeldingen en geluidsgegevens te extraheren uit RTMP-streams, moet u toegang verlenen tot de server. Met de ActionScript-eigenschappen Client.videoSampleAccess en Client.audioSampleAccess aan de serverkant kunt u toegang verlenen tot bepaalde mappen op Flash Media Server. Zie de Server-Side ActionScript Language Reference voor meer informatie. |
![]() |