Documentation Flash CS3 |
|||
| Programmation avec ActionScript 3.0 > La sécurité dans Flash Player > Accès aux médias chargés comme s'il s'agissait de données | |||
Vous pouvez accéder aux données grâce aux méthodes telles que BitmapData.draw() et SoundMixer.computeSpectrum(). Par défaut, un fichier SWF d'un sandbox de sécurité ne peut obtenir de données de pixels ou de données audio de la part d'objets graphiques ou audio rendus ou lus dans un média chargé d'un autre sandbox. Vous pouvez cependant utiliser les méthodes suivantes pour accorder cette autorisation :
Security.allowDomain() pour permettre l'accès aux données des fichiers SWF d'autres domaines. BitmapData.draw() et SoundMixer.computeSpectrum() pour extraire des données de ce fichier. Les sections qui suivent offrent des détails sur l'accès aux données bitmap, son et vidéo.
La méthode draw() de l'objet BitmapData vous permet d'extraire les pixels actuellement affichés de tout objet vers l'objet BitmapData. Il peut s'agir des pixels d'un objet MovieClip, d'un objet Bitmap ou d'un objet d'affichage. Les conditions suivantes doivent être remplies pour que la méthode draw() puisse extraire les pixels vers l'objet BitmapData :
draw() ou se trouver dans un fichier SWF qui est devenu accessible à l'objet appelant suite à l'appel de la méthode Security.allowDomain(). draw() ou son serveur source doit inclure un fichier de régulation inter-domaines qui accorde l'autorisation nécessaire au domaine appelant. Si ces conditions ne sont pas réunies, une exception SecurityError est renvoyée.
Lorsque vous appelez la méthode load() de la classe Loader, vous pouvez spécifier un paramètre context, qui constitue un objet LoaderContext. Si vous réglez la propriété checkPolicyFile de l'objet LoaderContext sur true, Flash Player recherche un fichier de régulation interdomaine sur le serveur à partir duquel l'image est chargée. S'il existe un fichier de régulation interdomaine autorisant le domaine du fichier SWF à l'origine du chargement, le fichier peut accéder aux données de l'objet Bitmap ; dans le cas contraire, l'accès est refusé.
Vous pouvez également spécifier une propriété checkPolicyFile dans une image chargée via la balise <img> d'un champ texte. Pour plus d'informations, voir Chargement de fichiers SWF et d'images à l'aide de la balise <img> d'un champ texte.
Les API ActionScript 3.0 suivantes, liées aux sons, font l'objet de restrictions de sécurité :
SoundMixer.computeSpectrum() : toujours autorisée pour les fichiers SWF qui se trouvent dans le même sandbox de sécurité que le fichier son. Des contrôles de sécurité sont nécessaires pour les fichiers se trouvant dans d'autres sandboxes. SoundMixer.stopAll() : toujours autorisée pour les fichiers SWF qui se trouvent dans le même sandbox de sécurité que le fichier son. Des contrôles de sécurité sont nécessaires pour les fichiers se trouvant dans d'autres sandboxes.id3 de l'objet Sound : toujours autorisée pour les fichiers SWF qui se trouvent dans le même sandbox de sécurité que le fichier audio. Des contrôles de sécurité sont nécessaires pour les fichiers se trouvant dans d'autres sandboxes.Chaque son est associé à deux types de sandbox, un sandbox de contexte et un sandbox de propriétaire :
id3 du son et la méthode SoundMixer.computeSpectrum().SoundMixer.stopAll(). Lorsque vous chargez le son à l'aide de la méthode load() de la classe Sound, vous pouvez spécifier un paramètre context, qui constitue un objet SoundLoaderContext. Si vous réglez la propriété checkPolicyFile de l'objet SoundLoaderContext sur true, Flash Player recherche un fichier de régulation interdomaine sur le serveur à partir duquel le son est chargé. S'il existe un fichier de régulation interdomaine autorisant le domaine du fichier SWF à l'origine du chargement, le fichier peut accéder à la propriété id de l'objet Sound ; dans le cas contraire, l'accès est refusé. En outre, la propriété checkPolicyFile peut permettre d'activer la méthode SoundMixer.computeSpectrum() pour les sons chargés.
La méthode SoundMixer.areSoundsInaccessible() vous permet de savoir si l'appel à la méthode SoundMixer.stopAll() n'entraînerait pas l'arrêt de tous les sons parce que le sandbox de l'une ou de plusieurs des propriétés d'objet son sont inaccessibles à l'appelant.
La méthode SoundMixer.stopAll() permet d'arrêter tous les sons dont le sandbox propriétaire est le même que celui de l'appelant de stopAll(). Elle arrête également les sons dont la lecture a été déclenchée par des fichiers SWF ayant appelé la méthode Security.allowDomain() pour autoriser le domaine du fichier SWF appelant la méthode stopAll(). Tous les autres sons ne sont pas arrêtés ; vous pouvez vérifier leur présence en appelant la méthode SoundMixer.areSoundsInaccessible().
L'appel de la méthode computeSpectrum() requiert que chaque son en cours de lecture soit issu du même sandbox que l'objet appelant la méthode ou de la même source qui a autorisé l'accès au sandbox de l'appelant. Autrement, une exception SecurityError est renvoyée. Pour les sons chargés à partir de sons incorporés dans la bibliothèque d'un fichier SWF, l'autorisation est accordée en appelant la méthode Security.allowDomain() dans le fichier SWF chargé. Pour les sons chargés à partir de sources autres que des fichiers SWF (des fichiers mp3 ou des vidéos Flash), un fichier de régulation interdomaine sur le serveur source doit autoriser l'accès aux données dans le média chargé. Vous ne pouvez pas utiliser la méthode computeSpectrum() si le chargement du son s'effectue à partir de flux RTMP.
Pour plus d'informations, voir Contrôles de création (développeur) et Contrôles de site Web (fichiers de régulation interdomaine).
La méthode BitmapData.draw() vous permet de capturer des données de pixels à partir de l'image active d'une vidéo.
Il existe deux types de vidéo :
La méthode BitmapData.draw() ne permet pas d'utiliser la vidéo RTMP.
Lorsque vous appelez la méthode BitmapData.draw() avec la vidéo progressive comme paramètre source, l'appelant de BitmapData.draw() doit provenir du même sandbox que le fichier FLV ou le serveur du fichier FLV doit contenir un fichier de régulation qui autorise le domaine du fichier SWF appelant. Pour demander le téléchargement du fichier de régulation, définissez la propriété checkPolicyFile de l'objet NetStream sur true.
Flash CS3
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000355.html