Chargement de contenuFlash Player 9 et ultérieur, Adobe AIR 1.0 et ultérieur Le contenu Flash Player et AIR peut charger un grand nombre de types de contenus, notamment :
Chargement d’images et de fichiers SWF à l’aide de la classe LoaderLa classe Loader permet de charger des fichiers SWF et des images (fichiers JPG, GIF ou PNG). Un fichier SWF, s’il ne se trouve pas dans le sandbox local avec système de fichiers, peut charger des fichiers SWF et des images depuis n’importe quel domaine réseau. Seuls les fichiers SWF associés aux sandbox locaux peuvent charger des fichiers SWF et des images issus du système de fichiers local. Cependant, les fichiers du sandbox local avec réseau peuvent uniquement charger des fichiers SWF locaux qui se trouvent dans le sandbox local approuvé ou avec réseau. Les fichiers SWF associés au sandbox local avec réseau peuvent charger du contenu autre que des fichiers SWF (par exemple des images), mais ne peuvent pas accéder aux données du contenu chargé. Lorsque vous chargez un fichier SWF d’une source non approuvée (telle qu’un domaine autre que celui du fichier SWF racine de l’objet Loader), il peut s’avérer utile de définir un masque pour ce dernier, afin d’empêcher le contenu chargé, qui est un enfant de l’objet Loader, d’apparaître dans des parties de la scène qui ne relèvent pas de ce masque, comme illustré par le code suivant : 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); Lorsque vous appelez la méthode load() de l’objet Loader, vous pouvez spécifier un paramètre context, qui constitue un objet LoaderContext. La classe LoaderContext comporte trois propriétés qui permettent de définir le contexte d’utilisation du contenu chargé :
Pour plus d’informations, voir Définition du contexte de chargement. L’objet Loader possède une importante propriété, contentLoaderInfo, qui constitue un objet LoaderInfo. Contrairement à la plupart des objets, un objet LoaderInfo est partagé entre le fichier SWF à l’origine du chargement et le contenu chargé. Il est en outre accessible par les deux parties. Si le contenu chargé est un fichier SWF, il peut accéder à l’objet LoaderInfo au moyen de la propriété DisplayObject.loaderInfo. Les objets LoaderInfo incluent des informations telles que la progression du chargement, l’URL du fichier de chargement et du fichier chargé, la relation de confiance entre ces deux fichiers, et d’autres renseignements. Pour plus d’informations, voir Surveillance de la progression du chargement. Chargement de sons et vidéosEn dehors du contenu du sandbox local avec système de fichiers, tout contenu est autorisé à charger des éléments audio et vidéo en provenance d’un réseau grâce aux méthodes Sound.load(), NetConnection.connect() et NetStream.play(). Seul le contenu du sandbox local avec système de fichiers et du sandbox d’application AIR peut charger des fichiers multimédias issus du système de fichiers local. Seul le contenu du sandbox local avec système de fichiers, du sandbox d’application AIR ou du sandbox approuvé localement peut accéder aux données de ces fichiers chargés. D’autres restrictions s’appliquent à l’accès aux données à partir d’un média chargé. Pour plus d’informations, voir Accès aux médias chargés comme s’il s’agissait de données. Chargement de fichiers SWF et d’images à l’aide de la balise <img> d’un champ de texteLa balise <img> permet de charger des fichiers SWF et bitmap dans un champ de texte, comme le montre le code suivant : <img src = 'filename.jpg' id = 'instanceName' > Pour accéder au contenu chargé de cette manière, utilisez la méthode getImageReference() de l’occurrence de TextField, comme dans le code suivant : var loadedObject:DisplayObject = myTextField.getImageReference('instanceName'); Notez cependant que les fichiers SWF et images chargés de cette manière sont placés dans le sandbox correspondant à leur origine. Lorsque vous chargez un fichier image à l’aide de la balise <img> d’un champ de texte, l’accès aux données de l’image peut être autorisé par le biais d’un fichier de régulation d’URL. Vous pouvez vérifier l’existence d’un tel fichier en ajoutant l’attribut checkPolicyFile à la balise <img>, comme le montre le code suivant : <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > Lorsque vous chargez un SWF à l’aide de la balise <img> d’un champ de texte, vous pouvez autoriser l’accès aux données de ce fichier SWF via un appel à la méthode Security.allowDomain(). Si vous utilisez la balise <img> d’un champ de texte pour charger un fichier externe (plutôt que d’incorporer une classe Bitmap dans votre fichier SWF), un objet Loader est automatiquement créé comme enfant de l’objet TextField et le fichier externe est chargé dans l’objet Loader comme si vous aviez utilisé un tel objet en ActionScript pour charger ce fichier. Dans ce cas, la méthode getImageReference() renvoie l’objet Loader automatiquement créé. Aucune vérification de sécurité n’est nécessaire pour charger cet objet Loader car il se trouve dans le même sandbox de sécurité que le code appelant. Toutefois, si vous faites référence à la propriété content de l’objet Loader pour accéder au média chargé, des règles de sécurité s’appliquent. Si le contenu est une image, vous devez implémenter un fichier de régulation d’URL ; s’il s’agit d’un fichier SWF, vous devez modifier le code de ce fichier de manière qu’il appelle la méthode allowDomain(). Adobe AIRDans le sandbox de l’application, les balises <img> d’un champ de texte sont ignorées pour empêcher les attaques d’hameçonnage. Par ailleurs, le code exécuté dans le sandbox de l’application n’est pas autorisé à appeler la méthode de sécurité allowDomain(). Contenu diffusé à l’aide de serveurs RTMPFlash Media Server utilise le protocole RTMP (Real-Time Media Protocol) pour servir des données, des sons et des vidéos. Vous pouvez charger ces données multimédias par le biais de la méthode connect() de la classe NetConnection, en transmettant une URL RTMP en tant que paramètre. Flash Media Server peut restreindre les connexions et empêcher le téléchargement du contenu, selon le domaine du fichier requis. Pour plus d’informations, voir la documentation de Flash Media Server disponible en ligne à l’adresse suivante : www.adobe.com/go/learn_fms_docs_fr. Pour extraire des graphiques d’exécution et des données audio de flux RTMP par le biais des méthodes BitmapData.draw() et SoundMixer.computeSpectrum() , vous devez autoriser l’accès au serveur. Les propriétés ActionScript côté serveur Client.videoSampleAccess et Client.audioSampleAccess permettent d’accéder à des répertoires spécifiques de Flash Media Server. Pour plus d’informations, voir le Guide de référence ActionScript de Flash Media Server côté serveur. |
|