La configuration d’un serveur en vue de la communication avec un objet XMLSocket peut être difficile à réaliser. Si votre application ne requiert pas d’interactivité en temps réel, utilisez la classe URLLoader, plutôt que la classe XMLSocket.
Pour utiliser les méthodes de la classe XMLSocket, utilisez tout d’abord le constructeur,
Les fichiers SWF du sandbox local avec système de fichiers peuvent ne pas utiliser de sockets.
Les fichiers de régulation de socket situés sur l’hôte cible spécifient les hôtes à partir desquels les fichiers SWF peuvent établir des connexions de socket et les ports sur lesquels ces connexions peuvent être établies. Les exigences de sécurité relatives aux fichiers de régulation de socket sont devenues plus rigoureuses avec les dernières versions de Flash Player. Dans toutes les versions de Flash Player, Adobe recommande d’utiliser un fichier de régulation de socket ; dans certains cas, un tel fichier est même obligatoire. Ainsi, si vous utilisez des objets XMLSocket, assurez-vous que l’hôte cible fournisse au besoin un fichier de régulation de socket.
Voici une liste résumant les exigences relatives aux fichiers de régulation de socket dans les différentes versions de Flash Player :
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Remarques :
Remarque : il est fortement conseillé d’utiliser la forme du constructeur sans paramètre, d’ajouter ensuite des écouteurs d’événement éventuels, puis d’appeler la méthode
Si vous spécifiez
Vous pouvez empêcher un fichier d’utiliser cette méthode en définissant le paramètre
Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player :
Si vous ne connectez pas l’objet XMLSocket au serveur à l’aide de
Si la connexion n’est pas établie pendant le délai spécifié, elle échoue. La valeur par défaut est de 20 000 (vingt secondes).
Les adresses IPv4 sont exprimées dans ActionScript sous forme de chaîne en notation point-décimale, par exemple :
Les adresses IPv6 sont exprimées dans ActionScript sous forme de chaîne en notation hexadécimale-deux points et entre crochets, par exemple :
La classe Socket est utile si vous utilisez des serveurs faisant appel à des protocoles binaires.
Pour utiliser les méthodes de la classe Socket, utilisez tout d’abord le constructeur,
Un socket transmet et reçoit des données en mode asynchrone.
Sur certaines systèmes d’exploitation, la méthode flush() est appelée automatiquement entre les images d’exécution. Sur d’autres, notamment sur Windows, les données ne sont jamais envoyées, à moins que vous n’appeliez explicitement la méthode
Dans Adobe AIR, les objets Socket sont également créés lorsqu’un serveur socket d’écoute reçoit une connexion provenant d’un processus externe. Le socket représentant la connexion est distribué dans un ServerSocketConnectEvent. Votre application est chargée de maintenir une référence à cet objet Socket. Dans le cas contraire, l’objet Socket peut être nettoyé et détruit par le moteur d’exécution sans avertissement.
Le contenu SWF s’exécutant dans le sandbox de sécurité local avec système de fichiers ne peut pas utiliser de sockets.
Les fichiers de régulation de socket situés sur l’hôte cible spécifient les hôtes à partir desquels les fichiers SWF peuvent établir des connexions de socket et les ports sur lesquels ces connexions peuvent être établies. Les exigences de sécurité relatives aux fichiers de régulation de socket sont devenues plus rigoureuses avec les dernières versions de Flash Player. Dans toutes les versions de Flash Player, Adobe recommande d’utiliser un fichier de régulation de socket ; dans certains cas, un tel fichier est même obligatoire. Par conséquent, si vous utilisez des objets Socket, assurez-vous que l’hôte cible fournisse, le cas échéant, un fichier de régulation de socket.
Voici une liste résumant les exigences relatives aux fichiers de régulation de socket dans les différentes versions de Flash Player :
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Remarque : pour exécuter l’exemple, vous avez besoin d’un serveur s’exécutant dans le domaine où réside le fichier SWF (dans l’exemple,
Remarque : dans une application AIR, le contenu s’exécutant dans le sandbox de sécurité de l’application est autorisé à se connecter à un serveur et à un numéro de port sans un fichier de régulation de socket.
Les données reçues par le socket restent dans le socket jusqu’à leur lecture. Il n’est pas nécessaire de lire toutes les données disponibles pendant la gestion de cet événement.
Les événements de type
L’événement
Remarque : il est fortement conseillé d’utiliser la forme du constructeur sans paramètre, d’ajouter ensuite des écouteurs d’événement éventuels, puis d’appeler la méthode
L’événement
Vous pouvez réutiliser l’objet Socket en lui appliquant à nouveau la méthode
Si la connexion échoue immédiatement, un événement est distribué ou une exception est émise : un événement d’erreur est distribué si un hôte a été spécifié, et une exception est émise dans le cas contraire. Dans tous les autres cas, l’état de la connexion est signalé par un événement. Si le socket est déjà connecté, la connexion existante est d’abord fermée.
Sur certaines systèmes d’exploitation, la méthode flush() est appelée automatiquement entre les images d’exécution. Sur d’autres, notamment sur Windows, les données ne sont jamais envoyées, à moins que vous n’appeliez explicitement la méthode
Remarque : si la valeur du paramètre
Si vous omettez le paramètre
Si vous omettez aussi le paramètre
(v >> 8) & 0xff v & 0xff
Les 16 bits inférieurs du paramètre sont utilisés. Les 16 bits supérieurs ne sont pas pris en compte.
Avant d’écrire la chaîne, la méthode calcule le nombre d’octets nécessaires pour représenter tous les caractères requis.
Votre code doit accéder à
Vous pouvez utiliser cette propriété pour déterminer l’adresse IP d’un socket client distribué dans un ServerSocketConnectEvent par un objet ServerSocket. Si vous le souhaitez, utilisez la classe DNSResolver pour convertir une adresse IP en un nom de domaine.
Vous pouvez utiliser cette propriété pour déterminer le numéro de port d’un socket client distribué dans un ServerSocketConnectEvent par un objet ServerSocket.
Si la connexion n’est pas établie pendant le délai spécifié, elle échoue. La valeur par défaut est de 20 000 (vingt secondes).
L’encodage d’objet détermine la manière dont les objets sont représentés au format AMF (Action Message Format). Flash Player utilise AMF pour améliorer l’efficacité des communications entre une application et un serveur distant. Le format AMF code les appels de procédure à distance dans un format binaire compact, qui peut être transféré via HTTP/HTTPS ou le protocole RTMP/RTMPS utilisé par Flash Media Server. Les objets et les valeurs de données sont sérialisés dans ce format binaire, qui est généralement plus compact que d’autres représentations, telles que XML.
Adobe AIR et Flash Player 9 peuvent sérialiser dans deux formats différents : AMF3 et AMF0. AMF3, la sérialisation développée par défaut pour ActionScript 3.0, offre plusieurs avantages par rapport à AMF0, réservée à ActionScript 1.0 et 2.0. AMF3 envoie des données sur le réseau de manière plus efficace que AMF0.
Les classes ByteArray, FileStream, NetConnection, NetStream,
Par exemple, si la propriété
Cette valeur n’est appelée que pour les propriétés d’un objet dynamique (objets déclarés au sein d’une classe dynamique) ou pour des objets déclarés à l’aide de l’opérateur
Cette propriété vous permet d’exclure des propriétés d’objets dynamiques de la sérialisation, d’écrire des valeurs dans les propriétés dynamiques des objets dynamiques ou de créer des propriétés dynamiques pour des objets dynamiques. Pour ce faire, réglez-la sur un objet qui implémente l’interface IDynamicPropertyWriter. Pour plus d’informations, voir l’interface IDynamicPropertyWriter.
Deux des constantes indiquent une discontinuité dans l’échelle de temps. Chaque balise FLV possède un horodateur qui indique sa position dans l’échelle de temps. Les horodateurs sont utilisés pour synchroniser la lecture des données vidéo, des données audio et des données de script. Les horodatages pour les balises FLV de même type (données vidéo, audio et de script) ne doivent pas diminuer lors de la progression des balises FLV.
Un objet URLLoader télécharge toutes les données d’une URL avant de les mettre à disposition du code dans les applications. Il fournit des notifications sur la progression du téléchargement, que vous pouvez connaître en surveillant les propriétés
Dans le cas de chargements de fichiers vidéo très volumineux, tels que des FLV, des erreurs de mémoire insuffisante peuvent se produire.
Lorsque vous employez cette classe
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Remarque : pour exécuter cet exemple, placez un fichier nommé urlLoaderExample.txt dans le même répertoire que votre fichier SWF. Ce fichier ne doit contenir que la ligne de texte suivante :
Le code de l’exemple effectue les opérations suivantes :
Notez qu’avec un objet URLLoader, il est impossible d’accéder aux données avant la fin de leur téléchargement. L’événement progress indique donc uniquement la progression du téléchargement. Pour accéder aux données avant la fin de leur téléchargement, utilisez un objet URLStream.
Le nom de cette fonction n’a aucune importance.
Les fonctions de membres de niveau classe n’étant pas soumises au nettoyage, vous pouvez définir
Après l’enregistrement d’un écouteur d’événement, vous ne pouvez plus modifier sa priorité par d’autres appels de
N’oubliez pas qu’une fois l’écouteur enregistré, tous les prochains appels de
Il est impossible d’enregistrer un écouteur d’événement uniquement pour la phase cible ou la phase de propagation vers le haut. Ces deux phases sont associées pendant l’enregistrement car la propagation vers le haut s’applique uniquement aux ancêtres du nœud cible.
Si vous n’avez plus besoin d’un écouteur d’événements, supprimez-le en appelant
Lors de la copie d’une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés ne sont pas pris en compte (si le nouveau nœud nécessite un écouteur d’événement, vous devez associer celui-ci après la création du nœud). Toutefois, si vous déplacez une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés la suivent.
Si un écouteur d’événement est enregistré sur un nœud alors qu’un événement est en cours de traitement sur ce nœud, l’écouteur n’est pas déclenché pendant la phase actuelle, mais il peut l’être pendant une phase ultérieure du flux d’événements, telle que la phase de propagation vers le haut (bubbling).
Si un écouteur d’événement est supprimé d’un nœud sur lequel un événement est en cours de traitement, il est cependant déclenché par les actions en cours. Une fois supprimé, l’écouteur d’événement n’est plus jamais appelé (à moins d’être réenregistré à des fins de traitement ultérieur).
Remarque : si un fichier en cours de chargement contient des caractères non-ASCII (comme dans les langues autres que l’anglais), nous vous recommandons d’enregistrer le fichier avec codage UTF-8 ou UTF-16, plutôt que sous un format non-Unicode, ASCII par exemple.
Un fichier SWF du sandbox local avec système de fichiers risque de ne pas charger des données depuis une ressource située dans le sandbox réseau, ni lui en fournir.
Par défaut, le fichier SWF appelant et l’URL chargée doivent se trouver dans le même domaine. Par exemple, un fichier SWF à l’adresse www.adobe.com peut charger uniquement des données provenant de sources situées aussi à l’adresse www.adobe.com. Pour charger des données à partir d’un autre domaine, placez un fichier de régulation d’URL sur le serveur hébergeant les données.
Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Un objet
Dans la méthode
Si la valeur de la propriété
Si la valeur de la propriété
Si la valeur de la propriété
Si la propriété
Si la propriété
Si la propriété
Si vous transmettez un nombre positif pour
Si vous transmettez un nombre négatif autre que -1 pour
Commutation rapide
Lorsque cette propriété est spécifiée, Flash Media Server met immédiatement fin au flux actuel et commence la diffusion en continu du nouveau flux à partir de la position d’index spécifiée, sans attendre de trouver une image-clé. Toutes les données suivant le décalage déjà mises en mémoire tampon à partir d’un flux précédent sont vidées. Cette technique permet de basculer vers un nouveau flux plus rapidement que la commutation standard, car il n’est pas nécessaire de vider les données d’un flux précédent mises en mémoire tampon.
La valeur par défaut de
La valeur de décalage doit être supérieure à la durée de lecture actuelle (
Pour plus d’informations, voir la section
La valeur par défaut de
Si vous transmettez -1 pour
Si vous transmettez 0 ou un nombre positif pour
Si vous transmettez un nombre négatif autre que -1 ou -2 pour
Les propriétés qui renvoient des nombres représentent des totaux calculés depuis le début du flux en multidiffusion. Ces types de propriétés incluent le nombre d’octets multimédias transmis ou le nombre de messages d’un fragment multimédia reçus. Les propriétés correspondant à des débits représentent un instantané du débit actuel dont la moyenne est établie sur quelques secondes. Ces types de propriétés incluent le débit auquel un nœud local reçoit les données.
Pour afficher la liste de valeurs contenues dans l’objet NetStreamMulticastInfo, utilisez la méthode
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau et les périphériques AIR pour TV, mais ne l’est pas sur tous les périphériques mobiles. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété
L’objet NetworkInfo est un singleton. Pour obtenir l’objet NetworkInfo, utilisez la propriété statique
La plupart des ordinateurs disposent d’une ou de plusieurs interfaces, par exemple d’une interface réseau sans fil et d’une interface réseau câblée. D’autres interfaces peuvent être présentes : VPN, interface de bouclage, interfaces virtuelles, etc.
Un objet NetworkInfo distribue un événement change lorsque les interfaces disponibles changent. Appelez la méthode
Remarque : l’objet NativeApplication distribue également des événements de changement réseau.
Vous trouverez ci-dessous des extraits de l’exemple :
Remarque : pour exécuter l’exemple, l’URL de l’application distante de l’exemple doit être remplacée par une URL opérationnelle. En outre, du code serveur serait nécessaire pour traiter les informations capturées par Flash Player dans l’objet URLVariables.
Si vous appelez le constructeur URLVariables avec une chaîne, la méthode
Cette méthode est utilisée en interne par les événements URLVariables. La plupart des utilisateurs n’a pas besoin d’appeler cette méthode directement.
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur les périphériques mobiles ou les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété
Les paquets de datagrammes sont transmis individuellement entre la source et la destination. Il est possible que les paquets ne soient pas reçus dans l’ordre dans lequel ils ont été envoyés. Les paquets perdus lors de la transmission ne sont pas retransmis ; il est même possible qu’ils ne soient pas détectés.
Les données envoyées à l’aide d’un socket datagramme ne sont pas automatiquement divisées en paquets de taille transmissible. Si vous envoyez un paquet UDP qui dépasse la taille de l’unité maximale de transmission, le réseau refuse le paquet (sans avertissement). L’UTM limite correspond à la plus petite UTM d’une interface, d’un commutateur ou d’un router dans le chemin de transmission. Vous pouvez utiliser la classe NetworkInterface pour déterminer l’UTM de l’interface locale, bien que d’autres nœuds dans le réseau puissent avoir différentes valeurs d’UTM.
La classe Socket utilise TCP, qui permet de garantir la livraison des paquets, ainsi que de diviser automatiquement et de reconstituer les paquets volumineux. TCP offre également une meilleure gestion de la bande passante du réseau. Ces fonctionnalités signifient que les données envoyées à l’aide d’un socket TCP impliquent un temps d’attente plus long, mais pour la plupart des utilisateurs, les avantages du protocole TCP compensent les coûts. La plupart des communications réseau doivent utiliser la classe Socket plutôt que la classe DatagramSocket.
La classe DatagramSocket est utile lors de l’utilisation d’applications qui offrent un faible temps d’attente de transmission et qui tolèrent la perte de paquets. Par exemple, les opérations de réseau dans des applications VoIP (voix sur IP) et en temps réel, telles que les jeux multijoueurs, peuvent tirer profit du protocole UDP. La classe DatagramSocket est également utile pour certaines applications côté serveur. Etant donné que le protocole UDP est sans état, un serveur peut traiter davantage de requêtes provenant de plusieurs clients que s’il utilisait le protocole TCP.
La classe DatagramSocket ne peut être utilisée dans les applications d’Adobe AIR et uniquement dans le sandbox de sécurité de l’application.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
L’événement
La méthode
Le socket est déconnecté de la machine distante et n’est plus lié à l’ordinateur local. Il est impossible de réutiliser un socket fermé.
Lorsqu’un socket datagramme est « connecté », les paquets peuvent être envoyés et reçus uniquement à partir de la cible spécifiée. Les paquets provenant d’autres sources sont ignorés. Il n’est pas nécessaire de connecter un socket datagramme. Etablir une connexion peut supprimer la nécessité de filtrer les paquets superflus provenant d’autres sources. Cependant, une connexion socket UDP n’est pas une connexion réseau permanente (comme c’est le cas pour une connexion TCP). Il est possible que l’extrémité distante du socket n’existe même pas.
Si la méthode
La fonction est immédiatement renvoyée. L’objet DatagramSocket distribue un événement
Si le socket est connecté, le paquet est envoyé à l’adresse distante et au port spécifiés dans la méthode
Remarque : l’envoi de données à une adresse de diffusion n’est pas pris en charge.
Remarque : une valeur
Les propriétés définies dans un objet URLRequest remplacent les propriétés statiques définies pour la classe URLRequestDefaults.
Les paramètres de la classe URLRequestDefault ne s’appliquent qu’au contenu du domaine d’application de l’appelant, à une exception près : les paramètres définis lors de l’appel de
Seul le contenu Adobe® AIR® s’exécutant dans le sandbox de sécurité de l’application peut utiliser la classe URLRequestDefaults. L’utilisation d’autres contenus renvoie une exception SecurityError lors de l’accès aux membres ou aux propriétés de cette classe.
Remarque concernant les applications fonctionnant sous Mac OS : lorsque vous appelez cette méthode sous Mac OS, l’application utilise ces informations d’identification pour l’hôte spécifié tant que celle-ci est ouverte, même si vous appelez par la suite la méthode
Remarque : cette méthode ne s’applique pas aux objets URLRequest utilisés lors du chargement de fichiers ou dans des requêtes RTMP.
Remarque : ce paramètre ne s’applique pas aux objets URLRequest utilisés lors du chargement de fichiers ou dans des requêtes RTMP.
Le délai d’inactivité correspond au laps de temps (en millisecondes) que le client attend une réponse du serveur, une fois la connexion établie et avant l’abandon de la requête.
Ce paramètre définit le délai d’inactivité par défaut utilisé par l’objet URLRequest ou par l’objet HTMLLoader. La définition de la propriété
Lorsque cette propriété est définie sur 0 (valeur par défaut), le moteur d’exécution utilise le délai d’inactivité par défaut défini par le système d’exploitation. Le délai d’inactivité par défaut varie selon le système d’exploitation (Mac OS, Linux ou Windows) ou selon la version du système d’exploitation.
Ce paramètre ne s’applique pas aux objets URLRequest utilisés lors du chargement de fichiers ou dans des requêtes RTMP.
Remarque : ce paramètre ne s’applique pas aux objets URLRequest utilisés lors du chargement de fichiers ou dans des requêtes RTMP.
Il s’agit également de la chaîne userAgent par défaut de tous les objets HTMLLoader (utilisés lors de l’appel de la méthode
Cette valeur par défaut varie selon le système d’exploitation du moteur d’exécution (par exemple, Mac OS, Linux ou Windows), ainsi que du langage et de la version du moteur d’exécution, comme le montrent les exemples suivants :
Dans la classe NetGroup côté client, l’objet NetConnection distribue les événements suivants :
La propriété
Pour plus d’informations sur la mise en réseau coopérative, voir le didacticiel
Pour plus d’informations sur les détails techniques de la mise en réseau coopérative, voir le didacticiel
Lorsque vous exécutez l’application, vous pouvez indiquer n’importe quel nom de groupe dans le champ de saisie de texte. La classe GroupSpecifier utilise le nom (ainsi que toutes les propriétés que vous avez définies) pour créer une chaîne qui est le nom toujours unique du groupe. Pour connecter un autre client au groupe, ce client doit utiliser le même nom de groupe. Par exemple, si le client A utilise le nom de groupe « firstmesh », les autres clients qui souhaitent communiquer avec le client A doivent également utiliser le nom de groupe « firstmesh ». Si le client B utilise le nom de groupe « kite », il parviendra à se connecter, mais il créera un nouveau groupe et ne sera pas en mesure de communiquer avec le client A ou les membres du groupe « firstmesh ».
Dans la plupart des cas, un
Remarque : lorsqu’un client s’abonne au flux en multidiffusion d’une adresse IP native, la boîte de dialogue de sécurité n’est pas affichée.
Pour plus d’informations sur la réplication d’objets, voir la section
Cette méthode envoie un événement NetStatusEvent à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Pour plus d’informations sur la réplication d’objets, voir la section
Cette méthode envoie un événement NetStatusEvent à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Pour plus d’informations sur la réplication d’objets, voir la section
REMARQUE : testez l’événement
Tous les messages doivent être uniques. Il est impossible de transmettre un message identique à l’un des messages envoyés précédemment. Utilisez un numéro de séquence pour rendre les messages uniques.
La remise des messages n’est pas préconisée. La remise des messages n’est pas garantie.
Les messages sont sérialisés au format AMF. Le message peut être de l’un des types suivants : Object, int, Number ou String. Le message ne peut pas être un objet MovieClip.
Cette méthode envoie un événement NetStatusEvent à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Lorsque vous exécutez l’application, vous pouvez indiquer n’importe quel nom de groupe dans le champ de saisie de texte. La classe GroupSpecifier utilise le nom (ainsi que toutes les propriétés que vous avez définies) pour créer une chaîne qui est le nom toujours unique du groupe. Pour connecter un autre client au groupe, ce client doit utiliser le même nom de groupe. Par exemple, si le client A utilise le nom de groupe « firstmesh », les autres clients qui souhaitent communiquer avec le client A doivent également utiliser le nom de groupe « firstmesh ». Si le client B utilise le nom de groupe « kite », il parviendra à se connecter, mais il créera un nouveau groupe et ne sera pas en mesure de communiquer avec le client A ou les membres du groupe « firstmesh ».
Pour exécuter cet exemple, ajoutez un composant Button, Label, TextInput et TextArea à la bibliothèque dans Flash Pro.
Pour plus d’informations sur la réplication d’objets, voir la section
REMARQUE : testez l’événement
Pour plus d’informations sur la réplication d’objets, voir la section
REMARQUE : testez l’événement
Pour plus d’informations sur l’acheminement des messages, voir la section
Lorsqu’un nœud reçoit un message, un événement NetStatusEvent est envoyé à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Pour plus d’informations sur l’acheminement des messages, voir la section
Lorsqu’un nœud reçoit un message, un événement NetStatusEvent est envoyé à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Pour plus d’informations sur l’acheminement des messages, voir la section
Lorsqu’un nœud reçoit un message, un événement NetStatusEvent est envoyé à l’écouteur d’événement de NetGroup avec
REMARQUE : testez l’événement
Pour plus d’informations sur la réplication d’objets, voir la section
REMARQUE : testez l’événement
Cette méthode n’interagit pas avec la méthode
Si vous ne renseignez pas la valeur de ce paramètre, une fenêtre vide est créée. Dans le lecteur autonome, vous pouvez spécifier une nouvelle fenêtre (
Remarque : si le code d’un fichier SWF s’exécutant dans le sandbox local avec système de fichiers appelle la fonction
Remarque de sécurité importante
Les développeurs transmettent souvent des valeurs d’URL à la fonction
Il existe plusieurs façons de valider correctement les données d’URL selon l’utilisation des URL dans l’application. L’une des techniques de validation de données les plus courantes consiste à vérifier que l’URL appartient au modèle d’URL adéquat. Par exemple, l’autorisation non intentionnelle d’URL javascript: peut entraîner des manipulations par programmation croisée. Vous pouvez également vérifier que l’URL se trouve dans votre domaine afin de vous assurer que les personnes qui pratiquent l’hameçonnage ne puissent pas utiliser le fichier SWF comme redirecteur ouvert. Pour plus de sécurité, vous pouvez par ailleurs choisir de valider le chemin de l’URL et de vérifier que l’URL est conforme aux RFC.
Le code suivant montre un exemple simple de validation de données : toute URL ne commençant pas par http:// ou https:// est rejetée et les URL sont analysées afin de vérifier qu’elles se trouvent dans votre nom de domaine. Il est possible que cet exemple ne soit pas valable pour toutes les applications Web ; vous devez donc évaluer s’il est nécessaire de procéder à des vérifications supplémentaires.
Dans le cas d’un contenu local s’exécutant dans un navigateur, les appels à la méthode
Dans Flash Player et dans les sandbox non-applicatifs d’Adobe AIR, vous ne pouvez pas utiliser les ports habituellement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Dans Flash Player versions 10 et ultérieures s’exécutant dans un navigateur, il est possible que vous ne puissiez pas utiliser cette méthode par programmation pour ouvrir une fenêtre contextuelle. Certains navigateurs (et configurations de navigateur) peuvent bloquer les fenêtres contextuelles ; il n’est donc pas possible de garantir l’ouverture de toutes les fenêtres contextuelles. Toutefois, pour un résultat optimal, utilisez cette méthode pour ouvrir une fenêtre contextuelle uniquement dans le code qui s’exécute comme conséquence directe de l’action d’un utilisateur (par exemple, un événement de type clic de souris ou pression de touche).
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Dans AIR installé sur les plates-formes mobiles, les modèles d’URI sms: et tel: sont pris en charge. Sous Android, les modèles d’URI vipaccess:, connectpro: et market: sont pris en charge. La syntaxe de l’URL est soumise aux conventions de la plate-forme. Par exemple, sur Android, le modèle d’URI doit être en minuscules. Lorsque vous accédez à une URL à l’aide de l’un de ces modèles, le moteur d’exécution ouvre l’URL dans l’application par défaut pour la gérer le modèle. Ainsi, l’accès à
Le code suivant explique comment appeler les applications VIP Access et Connect Pro sous Android :
Toutes les classes LocalConnection, ByteArray, SharedObject, NetConnection et NetStream codent les objets au format AMF.
Il n’est pas nécessaire que les contextes utilisent une même classe pour un alias. Ils peuvent changer de classe intentionnellement, à condition que la classe de destination contienne tous les membres sérialisés par la classe source.
Pour examiner la réponse du serveur, utilisez plutôt la méthode
Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Si vous souhaitez activer le comportement de routage direct, définissez cette valeur sur
Dans Adobe® AIR®, le contenu du sandbox de sécurité de l’application (par exemple, le contenu installé avec l’application AIR) peut utiliser n’importe quel en-tête de requête, sans qu’aucune erreur ne se produise. En revanche, dans le cas de contenu s’exécutant dans Adobe AIR et se trouvant dans un sandbox de sécurité différent
Dans le cas de contenu s’exécutant dans Flash Player ou de contenu s’exécutant dans Adobe AIR hors du sandbox de sécurité de l’application, les en-têtes de requête suivants ne peuvent pas être utilisés et les termes restreints ne sont pas sensibles à la casse (par exemple,
La longueur des objets URLRequestHeader est limitée. Si la longueur totale d’un objet URLRequestHeader (longueur de la propriété
Le contenu s’exécutant dans Adobe AIR définit l’en-tête
Toutes les méthodes qui acceptent des paramètres URLRequest ne prennent pas en charge la propriété
Du fait des limites des navigateurs, les en-têtes de requête HTTP personnalisées ne sont prises en charge que pour les requêtes
Remarque : pour exécuter cet exemple, placez un fichier nommé example.txt dans le même répertoire que votre fichier SWF. Il doit s’agir d’un fichier de texte contenant simplement quelques mots ou lignes de texte.
Le code de l’exemple effectue les opérations suivantes :
Remarque :
Remarque : dans Adobe AIR, la classe File, qui étend la classe FileReference, offre davantage de fonctionnalités et moins de restrictions de sécurité que la classe FileReference.
Les occurrences de FileReference sont créées de diverses manières :
Pendant une opération de chargement, toutes les propriétés d’un objet FileReference sont renseignées par des appels des méthodes
La méthode
Les classes FileReference et FileReferenceList ne vous permettent pas de définir un emplacement de fichier par défaut pour la boîte de dialogue générée par les méthodes
Par ailleurs, les classes FileReference et FileReferenceList ne proposent pas de méthode d’authentification. Pour les serveurs ayant besoin d’une authentification, vous pouvez télécharger des fichiers avec le plug-in de navigation de Flash® Player, mais le chargement (sur tous les lecteurs) et le téléchargement (sur les lecteurs autonomes ou externes) échouent. Utilisez les écouteurs d’événement FileReference afin de déterminer si les opérations ont réussi, ou non, et pour traiter les erreurs.
Dans le cas de contenus s’exécutant dans
Notez que lors de la publication dans Flash Player 10, les nouvelles fonctionnalités ajoutées au lecteur ne vous permettent d’exécuter qu’une seule opération à la fois :
Pendant l’exécution des appels aux méthodes
Flash Player envoie la requête HTTP
POST /handler.cfm HTTP/1.1 Accept: text/~~ Content-Type: multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7 User-Agent: Shockwave Flash Host: www.example.com Content-Length: 421 Connection: Keep-Alive Cache-Control: no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Filedata"; filename="MyFile.jpg" Content-Type: application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
Flash Player envoie la requête HTTP
POST /handler.cfm HTTP/1.1 Accept: text/~~ Content-Type: multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7 User-Agent: Shockwave Flash Host: www.example.com Content-Length: 421 Connection: Keep-Alive Cache-Control: no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="api_sig" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="api_key" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="auth_token" XXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Filedata"; filename="MyFile.jpg" Content-Type: application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition: form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
Remarque : pour exécuter cet exemple, modifiez la propriété uploadURL.url pour qu’elle pointe sur une URL réelle, au lieu de l’adresse fictive de l’exemple. L’URL doit pointer sur un fichier nommé
L’événement
Dans le cas de contenu s’exécutant
Dans Adobe AIR, le contenu du sandbox de sécurité de l’application n’est pas soumis à ces restrictions de sécurité.
Dans Adobe AIR, le contenu du sandbox de sécurité de l’application n’est pas soumis à ces restrictions de sécurité.
Il arrive que des événements
La progression du chargement d’un fichier ne peut pas être déterminée sur les plateformes Macintosh avec version antérieure à OS X 10.3. L’événement
open
event.
It should be made clear that there is no way to actually track the progress
of a download, just that it hasn't yet finished or failed.
ioError
event.
Note that for simplicity, none of the other event types are used in this
example.
Important : seules les applications s’exécutant dans un navigateur (via le module de navigation ou le contrôle ActiveX), ainsi que le contenu s’exécutant dans Adobe AIR, peuvent proposer une boîte de dialogue pour inviter l’utilisateur à s’authentifier avec un nom d’utilisateur et un mot de passe, et ceci uniquement pour les téléchargements. Le transfert de fichiers échoue si le chargement est effectué à l’aide du plug-in ou du contrôle ActiveX de Flash Player, ou si un chargement/téléchargement est effectué par le biais du lecteur autonome ou externe.
complete
event
listener. It should be made clear that there is no way to actually track the progress
of a download, just that it hasn't yet finished or failed.
FileReference
object and
initiates the download of a pdf file.
Remarque : la classe File, disponible dans Adobe AIR, comprend des méthodes permettant d’accéder à des boîtes de dialogue de sélection de systèmes de fichiers plus spécifiques. Ces méthodes sont les suivantes :
Lorsque vous appelez cette méthode et que l’utilisateur réussit à sélectionner un fichier, les propriétés de l’objet FileReference sont renseignées par les propriétés de ce fichier. Par la suite, à chaque appel de la méthode
Le paramètre
Dans Flash Player 10 et Flash Player 9 Mise à jour 5, l’appel de cette méthode aboutit uniquement en réponse à un événement utilisateur (par exemple, un événement de type clic de souris ou pression de touche). Dans les autres cas, Flash Player renvoie une exception Error à l’appel de cette méthode.
Notez que lors de la publication dans Flash Player 10, les nouvelles fonctionnalités ajoutées au lecteur ne vous permettent d’exécuter qu’une seule opération à la fois :
Dans Adobe AIR, la boîte de dialogue de recherche de fichiers n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété
Dans certains navigateurs, la longueur des chaînes d’URL est limitée. Une longueur supérieure à 256 caractères peut échouer avec certains navigateurs ou serveurs.
Si vous omettez ce paramètre, le nom de fichier de l’URL distante est analysé et utilisé par défaut.
La méthode
Les fonctions
Une fois le fichier téléchargé, les propriétés de l’objet FileReference sont renseignées par les propriétés du fichier local. L’événement
Une seule session
Cette méthode prend en charge le téléchargement de tout type de fichier, via HTTP ou HTTPS.
Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Remarque : si votre serveur requiert l’authentification des utilisateurs, seuls les fichiers SWF s’exécutant dans un navigateur (c’est-à-dire avec le plug-in de navigation ou un contrôle ActiveX), peuvent fournir une boîte de dialogue qui demande à l’utilisateur son identifiant et son mot de passe d’authentification, ceci uniquement pour les téléchargements. Le transfert de fichiers échoue si le chargement est effectué à l’aide du plug-in ou d’un contrôle ActiveX, ou si un chargement/téléchargement est effectué par le biais du lecteur autonome ou externe.
Lorsque vous employez cette méthode, tenez compte du modèle de sécurité de
Néanmoins,
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Lorsque vous téléchargez un fichier à l’aide de cette méthode, il est alors marqué comme téléchargé sur les systèmes d’exploitation qui marquent les fichiers téléchargés :
Certains systèmes d’exploitation, tels que Linux, ne marquent pas les fichiers téléchargés.
Notez que lors de la publication dans Flash Player 10, les nouvelles fonctionnalités ajoutées au lecteur ne vous permettent d’exécuter qu’une seule opération à la fois :
Dans Adobe AIR, la boîte de dialogue de téléchargement n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété
Les écouteurs reçoivent des événements indiquant la progression du chargement, ainsi que sa réussite ou son échec. Bien que vous puissiez utiliser l’objet FileReferenceList permettant aux utilisateurs un choix multiple de fichiers à charger, vous devez charger les fichiers un par un. Pour charger les fichiers un par un, parcourez en boucle le tableau
Adobe AIR comprend également la classe FileStream, qui propose davantage d’options de lecture de fichiers.
Les fonctions
Si le téléchargement du fichier aboutit, son contenu est stocké en tant que tableau d’octets dans la propriété
Il faut tenir compte des considérations de sécurité suivantes :
Toutefois, ces considérations ne s’appliquent pas au contenu AIR dans le sandbox de l’application.
Notez que lors de la publication dans Flash Player 10 ou AIR 1.5, une seule des opérations suivantes peut être exécutée à la fois :
Dans Adobe AIR, la boîte de dialogue de recherche de fichiers n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété
Si un objet File appelle cette méthode, le nom de fichier correspond à celui du fichier auquel l’objet File fait référence. (la classe File d’AIR étend la classe FileReference).
La méthode
Adobe AIR comprend également la classe FileStream, qui propose davantage d’options d’enregistrement de fichiers au niveau local.
Les fonctions
Une fois le fichier enregistré, les propriétés de l’objet FileReference sont renseignées avec les propriétés du fichier local. L’événement
Une seule session
Dans Flash Player, l’appel de cette méthode aboutit uniquement en réponse à un événement utilisateur (par exemple, un événement de type clic de souris ou pression de touche). Dans les autres cas, Flash Player renvoie une exception Error à l’appel de cette méthode. Le contenu AIR s’exécutant dans le sandbox de l’application n’est pas soumis à cette restriction.
Dans Adobe AIR, la boîte de dialogue d’enregistrement n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété
L’URL peut être de type HTTP ou, pour les chargements sécurisés, de type HTTPS. Pour utiliser HTTPS, entrez une URL HTTPS dans le paramètre
Pour envoyer des paramètres
L’URL peut être de type HTTP ou, pour les chargements sécurisés, de type HTTPS. Pour utiliser HTTPS, entrez une URL HTTPS dans le paramètre
Pour envoyer des paramètres
Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition: form-data; name="Filedata"; filename="example.jpg" Content-Type: application/octet-stream ... contents of example.jpg ... --AaB03x--
Pour la classe File d’Adobe AIR, qui étend la classe FileReference, vous pouvez utiliser la méthode
Les écouteurs reçoivent des événements indiquant la progression du chargement, ainsi que sa réussite ou son échec. Bien que vous puissiez employer l’objet FileReferenceList pour permettre aux utilisateurs de sélectionner plusieurs fichiers à charger, vous devez charger ces fichiers un par un. Pour ce faire, exécutez une itération dans le tableau
Les fonctions
Le fichier est chargé dans l’URL transmise dans le paramètre
Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Vous trouverez un exemple de requête
Si le paramètre
Remarque : si votre serveur requiert l’authentification des utilisateurs, seuls les fichiers SWF s’exécutant dans un navigateur (c’est-à-dire avec le plug-in de navigation ou un contrôle ActiveX), peuvent fournir une boîte de dialogue qui demande à l’utilisateur son identifiant et son mot de passe d’authentification, ceci uniquement pour les téléchargements. Le transfert de fichiers échoue si le chargement est effectué à l’aide du plug-in ou d’un contrôle ActiveX, ou si un chargement/téléchargement est effectué par le biais du lecteur autonome ou externe.
Lorsque vous employez cette méthode, tenez compte du modèle de sécurité de
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Notez que lors de la publication dans Flash Player 10, les nouvelles fonctionnalités ajoutées au lecteur ne vous permettent d’exécuter qu’une seule opération à la fois :
L’extension d’un fichier correspond à la partie du nom qui suit le point final (« . »), sans inclure ce dernier. Si le nom du fichier ne comporte aucun point, l’extension est
Remarque : vous devez utiliser la propriété
Toutes les propriétés d’un objet FileReference sont renseignées par appel de la méthode
Remarque : dans la version initiale d’ActionScript 3.0, la propriété
Sous Windows ou Linux, cette propriété correspond à l’extension de fichier. Sous Macintosh, cette propriété correspond au type de fichier à quatre caractères, uniquement utilisé dans les versions de Mac OS antérieures à Mac OS X. Si l’objet FileReference n’a pas été renseigné, un appel permettant d’obtenir la valeur de cette propriété renvoie
Sous Windows, Linux et Mac OS X, l’extension du fichier, c’est-à-dire la partie de la propriété
Pour utiliser la classe FileReferenceList :
La classe FileReferenceList comprend une méthode
Pour exécuter cet exemple, placez un script conçu pour accepter un chargement de fichiers à l’adresse http://www.[yourDomain].com/yourUploadHandlerScript.cfm. Selon l’emplacement de votre fichier SWF et la destination des fichiers à charger, vous aurez peut-être besoin de compiler le fichier SWF avec l’option Protection de lecture locale définie sur Accéder au réseau seulement ou de mettre à jour vos paramètres de sécurité Flash® Player pour autoriser ce fichier à accéder au réseau. Si le serveur de chargement est distant et que vous exécutez cet exemple depuis votre ordinateur de bureau, assurez-vous que le serveur contienne un fichier crossdomain.xml.
select
event.
FileReferenceList
object,
iterates over each selected file, and outputs their names.
// ask the user to choose an image file for upload var fileRef = new FileReference(); if (fileRef.browse(["Images", "jpg;gif;png", "Flash Movies", "swf"])) { trace("Opened " + fileRef.name); } else { trace("User canceled"); }
Dans Flash Player versions 10 et ultérieures, l’appel de cette méthode aboutit uniquement en réponse à un événement utilisateur (par exemple, un événement de type clic de souris ou pression de touche). Dans les autres cas, Flash Player renvoie une erreur à l’appel de cette méthode.
Lorsque vous appelez cette méthode et que l’utilisateur réussit à sélectionner des fichiers, la propriété
Le paramètre
Une seule session
fileList
property.
Quand la méthode
La propriété
Les propriétés des objets
Vous pouvez obtenir une liste des interfaces réseau en appelant la méthode
L’adresse matérielle correspond généralement à l’adresse MAC (Media Access Control, contrôle d’accès au média) de l’adaptateur ou de la carte réseau.
Si la valeur
Cette interface peut avoir un parent s’il s’agit d’une sous-interface. La propriété
Les sous-interfaces sont souvent des interfaces virtuelles. La propriété
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur tous les périphériques AIR pour TV. Elle n’est pas prise en charge sur les périphériques mobiles. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété
Les protocoles SSL/TLS fournissent un mécanisme grâce auquel il est possible d’authentifier l’identité d’un hôte par le biais de son certificat et offrent une communication chiffrée sur le socket. SSLv3 et TLSv1 sont pris en charge. Le certificat de serveur est validé à l’aide du magasin d’approbations et de la fonction de validation de certificat de la plate-forme client.
La classe SecureSocket ne se connecte aux serveurs qu’avec des certificats valides et approuvés. Vous ne pouvez pas vous connecter à un serveur si son certificat pose problème. Par exemple, il est impossible de se connecter à un serveur avec un certificat périmé ou avec un certificat qui n’est pas lié à un certificat racine approuvé, même si ce certificat serait valide dans d’autres cas.
La classe SecureSocket est utile pour établir la communication chiffrée à un serveur approuvé. A d’autres égards, un objet SecureSocket se comporte comme un objet Socket standard.
Pour utiliser les méthodes de la classe SecureSocket, utilisez tout d’abord le constructeur,
Important : le protocole OCSP (Online Certificate Status Protocol) n’est pas pris en charge sur tous les systèmes d’exploitation. Les utilisateurs peuvent également désactiver la vérification OCSP sur des ordinateurs individuels. Si le protocole OCSP n’est pas pris en charge ou s’il est désactivé et si un certificat ne contient pas les informations nécessaires permettant de vérifier la révocation à l’aide d’une liste de révocation de certificats, la révocation des certificats n’est pas vérifiée. Le certificat est accepté s’il est valide. Cela pourrait autoriser un serveur à utiliser un certificat révoqué.
Lorsqu’il s’avère impossible de valider un certificat de serveur, l’événement d’erreur distribué est de type IOError. Dans ce cas, vous pouvez vérifier la propriété
L’événement
Vérifiez
Lorsque vous appelez la méthode
Si le socket est déjà connecté, la connexion existante est d’abord fermée.
Les sockets sécurisés ne sont pas pris en charge sur toutes les plates-formes. Vérifiez cette propriété avant toute tentative de création d’une nouvelle occurrence de SecureSocket.
L’état est
Remarque : une fois le certificat validé ou rejeté, la valeur d’état n’est pas mise à jour jusqu’au prochain appel de la méthode
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur les périphériques mobiles ou les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété
Un serveur TCP écoute les connexions entrantes de clients distants. Lorsqu’un client tente de se connecter, l’objet ServerSocket distribue un événement
Remarque : votre application est chargée de maintenir une référence à l’objet Socket du client. Dans le cas contraire, l’objet peut être nettoyé et détruit par le moteur d’exécution sans avertissement.
Pour placer un objet ServerSocket en état d’écoute, appelez la méthode
Les connexions TCP sont continues. Elles sont maintenues jusqu’à ce que l’un des côtés de la connexion la ferme (ou en cas d’échec réseau grave). Toutes les données envoyées via la connexion sont divisées en paquets transmissibles, puis reconstituées à l’autre extrémité de la connexion. Dans la limite du possible, tous les paquets sont transmis et tous les paquets perdus sont retransmis. En général, le protocole TCP gère mieux la bande passante réseau disponible que le protocole UDP. La plupart des applications AIR qui nécessitent des communications socket doivent utiliser les classes ServerSocket et Socket plutôt que la classe DatagramSocket.
La classe ServerSocket peut être utilisée uniquement dans les applications d’Adobe AIR et uniquement dans le sandbox de sécurité de l’application.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
L’événement
Vous ne pouvez pas rouvrir les sockets fermés. Créez plutôt une nouvelle occurrence de ServerSocket.
La méthode
Le paramètre
Vous pouvez utiliser les occurrences de FileFilter de deux façons :
Ces deux formats ne sont pas interchangeables dans le même appel de la méthode browse. Vous devez utiliser l’un ou l’autre.
Vous pouvez transmettre une ou plusieurs occurrences de FileFilter à la méthode browse, comme dans l’exemple suivant :
Dans le cas d’une application AIR :
La liste des extensions dans la propriété
Un fichier SWF du sandbox local avec système de fichiers risque de ne pas charger des données depuis une ressource située dans le sandbox réseau, ni lui en fournir.
Par défaut, le fichier
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité de l’application (contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité. Dans le cas de contenu s’exécutant dans Adobe AIR, les fichiers du sandbox de sécurité de l’application peuvent accéder aux URL à l’aide de l’un des modèles d’URL suivants :
Le contenu
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Pour exécuter cet exemple, placez un fichier nommé XMLFile.xml dans le même répertoire que votre fichier SWF.
Les méthodes d’authentification prises en charge sont les suivantes :
Remarque : les méthodes
Remarque : la méthode
La valeur par défaut est
Remarque : les méthodes
Lors de l’envoi d’une requête POST, les valeurs des propriétés
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Cette propriété s’utilise en combinaison avec la propriété
L’API URLRequest offre une prise en charge
L’utilisation des données varie en fonction du type d’objet :
Les données ne sont pas envoyées tant qu’une méthode, telle que
Remarque : la valeur de
Vous trouverez ci-dessous des extraits de l’exemple :
Remarque : pour exécuter l’exemple, l’URL de l’application distante de l’exemple doit être remplacée par une URL opérationnelle. En outre, du code serveur serait nécessaire pour traiter les informations capturées par Flash Player dans l’objet URLVariables.
Le résumé est basé sur un algorithme Digest sécurisé SHA-256 (64 caractères en notation hexadécimale).
Par exemple, le kit de développement Flex comprend un fichier SWZ pour le cadre d’application Flex (et il fournit la chaîne digest pour ce fichier SWZ). Vous pouvez envoyer ce fichier SWZ au serveur Web et le charger dans votre fichier SWF (à l’aide de la méthode
Définissez le paramètre
Remarque : les méthodes
Le délai d’inactivité correspond au laps de temps que le client attend une réponse du serveur, une fois la connexion établie et avant l’abandon de la requête.
Remarque : la méthode
Sous Mac OS, les cookies sont partagés avec Safari. Pour supprimer les cookies sous Mac OS :
Pour supprimer les cookies sous Windows :
Vous trouverez ci-dessous des extraits de l’exemple :
Remarque : pour exécuter l’exemple, l’URL de l’application distante de l’exemple doit être remplacée par une URL opérationnelle. En outre, du code serveur serait nécessaire pour traiter les informations capturées par Flash Player dans l’objet URLVariables.
Toutes les méthodes qui acceptent des paramètres URLRequest ne prennent pas en charge la propriété
Du fait des limites des navigateurs, les en-têtes de requête HTTP personnalisées ne sont prises en charge que pour les requêtes
Veillez à coder tous les caractères définis comme non fiables dans le document Uniform Resource Locator (http://www.faqs.org/rfcs/rfc1738.html) ou ceux réservés dans le modèle URL de l’objet URLRequest (s’ils ne sont pas utilisés comme caractères réservés). Utilisez
Par défaut, l’URL doit être dans le même domaine que le fichier appelant, sauf si le contenu s’exécute dans le sandbox de sécurité de l’application
Remarque : IPv6 (Internet Protocol version 6) est pris en charge
rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test
Remarque : la méthode
La valeur par défaut correspond à la même chaîne agent utilisateur utilisée par Flash Player, différente dans Mac, Linux et Windows.
Remarque : cette propriété n’a pas d’incidence sur la chaîne agent utilisateur lors de l’utilisation de l’objet URLRequest avec la méthode
Pour les adresses IPv4, il s’agit du masque de sous-réseau. Exemples de la longueur du préfixe pour les valeurs IPv4 : 8 (255.0.0.0), 16 (255.255.0.0) et 24 (255.255.255.0). Exemples des valeurs de longueur du préfixe IPv6 : 128 (::1/128) et 32 (2001:db8::/32),
Remarque : si la longueur du préfixe de cette adresse n’est pas disponible, la valeur de
Par défaut, toutes les fonctionnalités sont désactivées et les connexions homologue à homologue sont autorisées.
Si connexions P2P sont désactivées (vous pouvez définir cette propriété sur TRUE), la boîte de dialogue d’avertissement P2P est masquée. Dans ce cas, aucune connexion de voisin ne peut être établie et aucun membre du groupe ne peut utiliser la bande passante en amont. Il n’est généralement utile de désactiver les connexions P2P de cette manière que lors de la réception de flux multidiffusion via une multidiffusion IP pure.
Il est nécessaire d’ouvrir un canal vers le serveur avant que le serveur puisse fournir des fonctions de prise en charge aux membres du groupe. Selon la configuration du serveur, les fonctions de prise en charge peuvent (ou non) être fournies sur ce canal.
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau et sur tous les périphériques AIR pour TV, mais ne l’est pas sur les périphériques mobiles. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété
Remarque : les périphériques AIR pour TV prennent en charge la communication uniquement entre le contenu basé sur SWF dans les applications AIR.
Les connexions locales autorisent ce type de communication entre les fichiers SWF sans passer par
Les objets LocalConnection créés dans ActionScript 3.0 peuvent communiquer avec les objets LocalConnection créés dans ActionScript 1.0 ou 2.0. L’inverse est également vrai : les objets LocalConnection créés dans ActionScript 1.0 ou 2.0 peuvent communiquer avec les objets LocalConnection créés dans ActionScript 3.0. Flash Player gère automatiquement les communications entre les objets LocalConnection de versions différentes.
Il existe trois façons d’ajouter des méthodes de rappel à un objet LocaConnection :
Pour comprendre comment utiliser les objets LocalConnection afin de permettre les communications entre deux fichiers, il est utile d’identifier les commandes utilisées dans chaque fichier. L’un des fichiers est appelé fichier de réception. Il contient la méthode à appeler. Le fichier de réception doit contenir un objet LocalConnection et un appel de la méthode
L’utilisation des méthodes
Même domaine. La manière la plus simple d’utiliser un objet LocalConnection est d’autoriser la communication uniquement entre les objets LocalConnection appartenant au même domaine, car les communications intra-domaine sont autorisées par défaut. Lorsque deux fichiers d’un même domaine communiquent, vous n’avez pas besoin d’implémenter des mesures de sécurité particulières. Vous transmettez simplement la même valeur pour le paramètre
Domaines différents avec des noms prévisibles. Lorsque deux fichiers SWF de domaines différents communiquent, vous devez autoriser les échanges entre ces derniers en appelant la méthode
Domaines différents avec des noms imprévisibles. Il se peut que vous souhaitiez accroître la portabilité interdomaines du fichier contenant l’objet LocalConnection de réception. Pour éviter de spécifier le nom de domaine dans la méthode
De Flash Player à une application AIR. Un objet LocalConnection créé dans le sandbox de l’application AIR utilise une chaîne spéciale comme préfixe de connexion au lieu d’un nom de domaine. Cette chaîne à la forme suivante :
Remarque : si une application AIR charge un fichier SWF en dehors du sandbox de l’application AIR, les règles permettant d’établir une connexion locale avec ce fichier SWF sont les mêmes que les règles permettant d’établir une connexion locale avec un fichier SWF s’exécutant dans Flash Player.
D’une application AIR à Flash Player. Lorsqu’une application AIR communique avec un fichier SWF s’exécutant dans le moteur d’exécution de Flash Player, vous devez autoriser la communication entre les deux en appelant la méthode
D’une application AIR à une autre application AIR. Pour communiquer entre deux applications AIR, vous devez autoriser la communication entre les deux en appelant la méthode
Vous pouvez utiliser les objets LocalConnection pour envoyer et recevoir des données au sein d’un même fichier, mais ce n’est pas l’implémentation la plus répandue.
Pour plus d’informations sur les méthodes
Une occurrence de LocalConnection est créée dans le fichier SWF LocalConnectionSenderExample. Lorsque l’utilisateur appuie sur le bouton, la méthode
Une occurrence de LocalConnection est créée dans le fichier SWF LocalConnectionReceiverExample et la méthode
Remarque : pour tester l’exemple, chargez les deux fichiers SWF simultanément sur le même ordinateur.
The following file sends the request to the first file.
Vous ne pouvez pas utiliser cette méthode pour permettre aux fichiers hébergés à l’aide d’un protocole sécurisé (HTTPS) d’autoriser un accès à partir de fichiers hébergés avec des protocoles non sécurisés ; vous devez pour cela utiliser la méthode
Vous pouvez utiliser cette méthode pour faire en sorte qu’un fichier enfant issu d’un domaine différent puisse effectuer des appels LocalConnection vers le fichier parent, sans connaître le domaine final dont émanera le fichier enfant. Cela peut se produire, par exemple, lorsque vous utilisez des redirections d’équilibrage de charge ou des serveurs tiers. Dans ce cas, vous pouvez utiliser la propriété
Le cas contraire peut aussi se présenter : vous pouvez créer un fichier enfant qui souhaite accepter les appels LocalConnection émanant de son parent, mais qui ignore le domaine de ce dernier. Dans ce cas, mettez en œuvre cette méthode en vérifiant si l’argument de domaine correspond au domaine de la propriété
Lorsque vous employez cette méthode, tenez compte du modèle de sécurité de Flash Player. Par défaut, un objet LocalConnection est associé au sandbox du fichier qui l’a créé et les appels interdomaines des objets LocalConnection sont interdits, à moins que vous n’appeliez la méthode
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Remarque : le format de la méthode
Le fonctionnement des méthodes
L’appel de
Par défaut, les fichiers hébergés via le protocole HTTPS sont accessibles uniquement aux autres fichiers hébergés également par l’intermédiaire du protocole HTTPS. Cette implémentation préserve l’intégrité fournie par le protocole HTTPS.
Il n’est pas recommandé d’utiliser cette méthode pour annuler le comportement par défaut car elle compromet la sécurité HTTPS. Cependant, vous devrez peut-être l’utiliser, par exemple, si vous devez autoriser l’accès aux fichiers SWF publiés pour Flash Player 9 ou version ultérieure via HTTPS à partir de fichiers SWF publiés pour Flash Player 6 ou version antérieure via HTTP.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Pour éviter tout conflit, définissez les méthodes associées à l’objet LocalConnection de réception avant d’appeler cette méthode, comme illustré dans l’exemple de la classe LocalConnection.
Par défaut, l’argument
Dans le cas de contenu s’exécutant dans le sandbox de sécurité
De même, par défaut, Flash Player ne permet à l’objet LocalConnection de réception de n’accepter que les commandes provenant d’objets LocalConnection d’envoi dont le nom de connexion correspond également à une valeur
Si vous implémentez une communication uniquement entre des fichiers appartenant au même domaine, spécifiez pour
Si vous implémentez des communications entre des fichiers de domaines différents, la spécification pour
Pour plus d’informations, voir la présentation de la classe et la section consacrée au paramètre
Remarque : les deux-points sont utilisés en tant que caractères spéciaux pour séparer le super-domaine de la chaîne
Lorsque vous utilisez cette méthode, tenez compte du modèle de sécurité
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
La quantité de données que vous pouvez transmettre en tant que paramètres à cette commande est limitée à 40 Ko. Si
Comme nous l’avons vu à la rubrique
Remarque : vous ne pouvez pas spécifier de super-domaine dans
Lorsque vous utilisez cette méthode, tenez compte du modèle de sécurité
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Dans le cas de contenu s’exécutant dans le sandbox de sécurité
Dans les fichiers SWF publiés pour Flash Player 9 ou version ultérieure, la chaîne renvoyée correspond au domaine exact du fichier, y compris aux sous-domaines. Par exemple, si le fichier se trouve à l’adresse www.adobe.com, cette commande renvoie
Si le fichier actuel est un fichier local résidant sur l’ordinateur client et s’exécutant dans Flash Player, cette commande renvoie
Les emplois les plus courants de cette propriété consistent à inclure le nom de domaine de l’objet LocalConnection d’envoi en tant que paramètre de la méthode que vous comptez appeler dans l’objet LocalConnection de réception, ou conjointement avec
Utilisez la classe NetStream pour effectuer les opérations suivantes :
Remarque : vous ne pouvez pas afficher ni publier un flux de données sur le même objet NetStream.
Adobe AIR, ainsi que Flash Player 9.0.115.0 et les versions ultérieures, prennent en charge les fichiers dérivés du format conteneur standard MPEG-4. Ces fichiers sont les suivants : F4V, MP4, M4A, MOV, MP4V, 3GP et 3G2, s’ils contiennent des images H.264 ou du son codé au format HEAAC v2, ou les deux. H.264 produit une qualité vidéo supérieure à une vitesse de transmission inférieure par rapport au même profil d’encodage dans Sorenson ou On2. AAC est un format audio standard défini dans la norme vidéo MPEG-4. HE-AAC v2 est une extension du format AAC qui utilise les techniques de réplique spectrale de bande (SBR - Spectral Band Replication) et de stéréo paramétrique pour optimiser l’efficacité de l’encodage à des vitesses de transmission inférieures.
Pour plus d’informations sur les codecs et les formats de fichier pris en charge, voir les références suivantes :
Réception de données à partir d’un flux Flash Media Server, d’un fichier F4V ou d’un fichier FLV progressif
Flash Media Server, les fichiers F4V et les fichiers FLV peuvent envoyer des objets d’événement contenant des données à des points de données spécifiques pendant la diffusion ou la lecture. Vous pouvez gérer les données d’un flux ou d’un fichier FLV pendant la lecture de deux manières :
Attendez de recevoir un événement
Remarque : pour envoyer des données par l’intermédiaire d’un fichier audio, tel qu’un fichier MP3, utilisez la classe Sound pour associer le fichier audio à un objet Sound. Ensuite, utilisez la propriété
Dans cet exemple, le code qui crée les objets Video et NetStream et appelle les méthodes
Un NetDataEvent est distribué pour les messages suivants :
Remarque : cet événement n’est pas distribué par le contenu qui s’exécute dans Flash Player dans le navigateur sur Android ou le système d’exploitation de la tablette Blackberry ou par le contenu s’exécutant dans AIR sur iOS.
Remarque : les appels de
La propriété
L’objet DRMStatusEvent contient des informations concernant le voucher : disponibilité du voucher hors connexion, date d’expiration du voucher, accessibilité du contenu aux utilisateurs, etc.
Utilisez la méthode
Un objet DRMContentData contient les informations nécessaires à l’obtention du voucher requis pour lire un fichier multimédia protégé par DRM. Utilisez la classe DRMManager pour télécharger le voucher avec ces informations.
Cet événement peut renvoyer un objet d’informations doté des propriétés suivantes :
L’écouteur d’événement associé est déclenché après un appel de la méthode
Vous pouvez incorporer les types de points de repère suivants dans un fichier vidéo :
L’objet d’événement
Vous pouvez définir des points de repère dans un fichier vidéo lorsque vous encodez initialement celui-ci ou lorsque vous importez un clip vidéo dans l’outil de création de Flash à l’aide de l’assistant d’importation vidéo.
L’événement
En règle générale, pour que votre code réagisse à un certain point de repère au moment où il se produit, utilisez l’événement
Vous pouvez utiliser la liste de points de repère fournie à l’événement
L’écouteur d’événement associé est déclenché après un appel de la méthode
L’objet d’événement onTextData contient une propriété pour chaque partie de données texte.
Vous devez remplacer l’emplacement
Vous pouvez également gérer les données de texte et d’images à l’aide d’une classe personnalisée. Voir l’article
L’écouteur d’événement associé est déclenché après un appel de la méthode
L’objet d’événement onImageData contient les données d’images sous la forme d’un tableau d’octets envoyé par l’intermédiaire d’un canal de données AMF0.
Vous devez remplacer l’emplacement
Vous pouvez également gérer les données de texte et d’images à l’aide d’une classe personnalisée. Voir l’article
L’utilitaire Flash Video Exporter (version 1.1 ou supérieure) intègre la durée de la vidéo, sa date de création, les débits et d’autres informations dans le fichier vidéo. Différents encodeurs vidéo intègrent différents jeux de métadonnées.
L’écouteur d’événement associé est déclenché après un appel de la méthode
Dans la plupart des cas, la valeur de durée intégrée dans les métadonnées du flux se rapproche de la durée réelle, mais n’est pas exacte. En d’autres termes, elle ne correspond pas toujours à la valeur de la propriété
L’objet d’événement transmis au gestionnaire d’événement onMetaData contient une propriété pour chaque élément de données.
L’écouteur d’événement associé est déclenché après un appel de la méthode
L’objet transmis à la fonction de gestion d’événement
Dans la plupart des cas, un
Si vous incluez ce paramètre dans l’instruction du constructeur et transmettez une valeur
Les appels de
Vous pouvez également appeler cette méthode pour réinitialiser l’analyseur d’octets pour le rappel de
L’analyseur d’octets interprète un fichier FLV avec un en-tête. Après l’analyse de l’en-tête,
Un objet NetStream possède deux mémoires tampons : la FIFO de
Chaque appel de la méthode
Remarque : il est possible que l’analyseur d’octets ne parvienne pas à décoder complètement un appel de la méthode
Utilisez cette méthode avec Flash Media Server pour envoyer des données audio en direct au serveur. Appelez cette méthode avant ou après l’appel de
Définissez la propriété
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://server.domain.com/app"); var ns:NetStream = new NetStream(nc); var live_mic:Microphone = Microphone.get(); live_mic.rate = 8; live_mic.setSilenceLevel(20,200); var soundTrans:SoundTransform = new SoundTransform(); soundTrans.volume = 6; live_mic.soundTransform = soundTrans; ns.attachAudio(live_mic); ns.publish("mic_stream","live")
Pour entendre le son, appelez la méthode
Cette méthode est conçue pour une utilisation avec Flash Media Server. Pour plus d’informations, voir la description de la classe.
Une fois la source vidéo associée, vous devez appeler
Vous pouvez utiliser
Le paramètre
Imaginons, par exemple, que vous voulez capturer 100 instantanés, à raison d’un instantané toutes les 5 minutes. Deux solutions s’offrent à vous :
Ces deux techniques capturent les mêmes 500 images et les deux sont utiles. Votre choix doit être déterminé principalement par le type de lecture souhaité. Dans le second cas, par exemple, vous pourriez enregistrer du son en même temps. Par ailleurs, les deux fichiers feraient environ la même taille.
Cette méthode requiert Flash Media Server version 3.5.3 ou ultérieure.
Si vous souhaitez utiliser cette méthode pour procéder à la reconnexion du flux de données, voir la
Si vous souhaitez utiliser cette méthode pour l’équilibrage de charge, procédez comme suit :
Avec Flash Media Server, cette méthode est invoquée implicitement lorsque vous appelez
Si l’éditeur homologue n’implémente pas cette méthode, tous les homologues sont autorisés à lire tout contenu publié.
Depuis Flash Player 9.0.115.0, le lecteur n’efface plus la mémoire tampon lors de l’appel de
Remarque : pour assurer la compatibilité descendante, l’événement
En cas d’interruption unique, la propriété
La propriété
Conseil : vous pouvez utiliser
Cette méthode est une version améliorée de
Diffusion dynamique en continu
La diffusion dynamique en continu (prise en charge dans Flash Media Server 3.5 et les versions ultérieures) fournit un flux codé à des vitesses de transmission différentes. A mesure que les conditions de réseau d’un spectateur changent, ce dernier reçoit la vitesse de transmission qui fournit les meilleures conditions d’affichage. Utilisez la classe
Adobe a conçu une classe ActionScript personnalisée appelée DynamicStream qui étend la classe NetStream. Vous pouvez utiliser la classe DynamicStream pour implémenter la diffusion dynamique en continu dans une application au lieu d’écrire votre propre code afin de détecter les conditions du réseau. Même si vous choisissez d’écrire votre propre code de diffusion en continu dynamique, utilisez la classe DynamicStream comme exemple d’implémentation. Téléchargez la classe et la documentation de la classe depuis la page
Reconnexion du flux de données
La reconnexion du flux de données (prise en charge dans Flash Media Server 3.5.3 et les versions ultérieures) permet d’utiliser le média sans interruption, même lorsque la connexion est perdue. Le média utilise la mémoire tampon pour poursuivre la lecture tandis que votre logique ActionScript se reconnecte à Flash Media Server. Une fois la connexion rétablie, appelez
Lire un fichier local
Emplacement d’un fichier multimédia. Cet argument peut être une chaîne, une propriété
Dans le cas de contenu AIR dans le sandbox de sécurité de l’application, le chemin que vous spécifiez pour le fichier multimédia est relatif au répertoire du fichier SWF. Vous ne pouvez toutefois pas naviguer en dehors du répertoire du fichier SWF. Ne spécifiez pas un chemin d’accès complet, car AIR le considère comme un chemin relatif.
Lire un fichier à partir de Flash Media Server
Vous pouvez lire les formats de fichier décrits dans le tableau suivant. La syntaxe varie selon le format de fichier.
Activer le mode Génération de données
Pour activer le mode de génération de données, transmettez la valeur
Pour plus d’informations sur les codecs et les formats de fichier pris en charge, voir les références suivantes :
Flux de travail pour la lecture d’un fichier ou d’un flux en direct
Pour lire un fichier à partir d’un répertoire local ou d’un serveur Web, transmettez la valeur null.
Pour lire un fichier enregistré ou un flux en direct depuis Flash Media Server, transmettez l’URI d’une application de Flash Media Server.
Pour lire un flux en direct, transmettez le nom du flux transmis à la méthode
Pour lire un fichier enregistré, transmettez le nom du fichier.
Remarque : pour voir l’exemple de code, faites défiler la page jusqu’à l’exemple situé dans la partie inférieure.
Activer le mode Génération de données
Appelez
Lorsque vous utilisez cette méthode sans Flash Media Server, il existe certaines contraintes de sécurité. Un fichier , placé dans le sandbox local approuvé ou local avec accès au réseau, peut charger et lire un fichier vidéo à partir du sandbox distant. Cependant, il ne peut pas accéder aux données de ce fichier distant sans une autorisation explicite, accordée sous forme de fichier de régulation d’URL.
Utilisez tout d’abord
Les étapes pour précharger un voucher DRM sont les suivantes :
Créez un nouvel objet NetStream pour précharger les métadonnées.
Remarque : si vous souhaitez utiliser le même objet NetStream pour précharger les métadonnées et lire le contenu, attendez l’appel de
Les vouchers téléchargés sont stockés dans une mémoire cache locale. La lecture de contenu en ligne permet également de télécharger et de mettre en cache les vouchers. Lors de la visualisation d’un fichier dont le contenu est protégé par DRM, un voucher mis en cache est automatiquement récupéré à partir du magasin local. Utilisez DRMManager pour gérer la mémoire cache du voucher.
Remarques : le préchargement des métadonnées DRM via une connexion HTTP, HTTPS ou RTMP n’est pas pris en charge. Vous ne pouvez précharger des métadonnées qu’à partir de fichiers enregistrés sur le systèmes de fichiers.
Vous pouvez enregistrer les fichiers dans les formats décrits dans le tableau suivant (impossible d'utiliser
Lors de la publication, vous pouvez enregistrer les fichiers au format FLV ou F4V. Si vous enregistrez un fichier au format F4V, utilisez un outil d’aplatissement pour modifier ou lire le fichier dans une autre application. Pour télécharger l’outil, voir
Remarque : n’utilisez pas cette méthode pour lire un flux de données. Pour lire un flux de données, appelez la méthode
Flux de travail pour la publication d’un flux de données
Remarque : un objet NetStream peut soit publier soit lire un flux de données, mais il ne peut pas effectuer ces deux opérations simultanément. Pour publier un flux de données et afficher la lecture à partir du serveur, créez deux objets NetStream. Vous pouvez envoyer plusieurs objets NetStream sur un seul objet NetConnection.
Lorsque Flash Media Server enregistre un flux de données, il crée un fichier. Par défaut, le serveur crée un répertoire avec le nom de l’occurrence de l’application transmis à
L’exemple suivant se connecte à l’occurrence de "monday" de la même application. Le fichier « lecture.flv » est enregistré dans le répertoire /applications/lectureseries/streams/monday :
Pour exécuter cet exemple, vous avez besoin d’une caméra reliée à votre ordinateur. Vous devez également ajouter un composant Button et un composant Label à la bibliothèque.
L’application dispose d’un bouton qui publie un flux (l’envoie à Flash Media Server) uniquement lorsque l’application est correctement connectée au serveur. L’application lit le flux du serveur uniquement lorsque le flux a été correctement publié. L’événement
Lorsque vous transmettez une valeur au paramètre FPS en vue de limiter la cadence de la vidéo, Flash Media Server tente de réduire la cadence tout en préservant l’intégrité de la vidéo. Entre deux images-clés, le serveur envoie le nombre minimum d’images nécessaires pour répondre à la cadence spécifiée. Notez que les images intermédiaires doivent être envoyées conjointement, auquel cas la vidéo est endommagée. Par conséquent, le nombre d’images souhaité est envoyé immédiatement et conjointement après une image-clé. Etant donné que les images ne sont pas distribuées uniformément, le mouvement entre images uniques est homogène, mais des interruptions apparaissent entre les séquences d’images.
Utilisez cette méthode uniquement sur les flux de données en monodiffusion lus à partir de Flash Media Server. Cette méthode ne fonctionne pas sur les flux de données en multidiffusion RTMFP ou lors de l’utilisation de la méthode
L’application doit à nouveau télécharger les vouchers requis depuis le serveur de droits multimédias afin que l’utilisateur puisse accéder au contenu protégé. Appeler cette fonction équivaut à appeler la fonction
Les flux vidéo sont généralement encodés avec deux types d’image, les images-clés (ou images I) et les images P. Une image-clé contient l’ensemble de l’image, alors qu’une image P est une image intérimaire qui fournit des informations vidéo supplémentaires entre les images-clé. Un flux vidéo présente généralement une image-clé toutes les 10 à 50 images.
Flash Media Server dispose de plusieurs types de comportements de recherche : la recherche améliorée et la recherche dynamique.
Recherche améliorée
Par défaut, la recherche améliorée est activée. Pour désactiver la recherche améliorée, ouvrez Flash Media Server, puis définissez l’élément
Si la recherche améliorée est activée, le serveur génère une nouvelle image-clé au niveau du
Si la recherche améliorée est désactivée, le serveur commence la diffusion en continu à partir de l’image-clé la plus proche. Par exemple, supposons qu’une vidéo présente des images-clés à 0 et 10 secondes. Une recherche de 4 secondes entraîne un démarrage de la lecture à 4 secondes à l’aide de l’image-clé à 0 seconde. La vidéo demeure figée jusqu’à ce qu’elle atteigne la prochaine image-clé placée à 10 secondes. Pour améliorer les recherches, vous devez réduire l’intervalle des images-clés. En mode de recherche normal, vous ne pouvez pas démarrer la vidéo à un point placé entre les images-clés.
Recherche dynamique
Pour activer la recherche dynamique, définissez
La recherche dynamique permet à Flash Player d’effectuer des recherches dans une mémoire tampon d’arrière-plan et dans une mémoire tampon directe. Si la fonction de recherche dynamique est désactivée, chaque fois que la méthode
Recherche en mode de génération de données
Lorsque vous appelez
Vous pouvez appeler la méthode
Les clients abonnés au flux en direct avant l’ajout d’une image-clé de données reçoivent cette image-clé dès son ajout. Les clients qui s’abonnent au flux en direct après l’ajout de l’image-clé reçoivent cette image-clé lorsqu’ils s’abonnent.
Pour ajouter une image-clé de métadonnées dans un flux en direct envoyé à Flash Media Server, utilisez
L’argument
Utilisez
La méthode
Cette méthode n’est disponible que lorsque les données sont diffusées en continu à partir de Flash Media Server 3.5.3 ou version ultérieure et lorsque
Cette méthode est conçue pour être utilisée avec la méthode
Si l’appel de la méthode
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Cette propriété est disponible uniquement lorsque des données sont diffusées en flux continu à partir de Flash Media Server 3.5.3 ou version ultérieure. Pour plus d’informations sur Flash Media Server, voir la description de la classe.
Pour spécifier la quantité de données précédemment affichées mises en cache, utilisez la propriété
Pour éviter la mise en cache des données, définissez la propriété
Cette propriété est disponible uniquement lorsque des données sont diffusées en flux continu à partir de Flash Media Server 3.5.3 ou version ultérieure. Pour plus d’informations sur Flash Media Server, voir la description de la classe.
L’utilisation de cette propriété améliore les performances des opérations de rembobinage, car les données qui ont déjà été affichées ne sont pas à nouveau extraites du serveur. Au contraire, le flux continu lance la relecture depuis la mémoire tampon. Lors de la lecture, la diffusion en continu des données se poursuit depuis le serveur jusqu’à ce que la mémoire tampon soit pleine.
Si la position de rembobinage est plus éloignée que les données dans la mémoire cache, la mémoire tampon est nettoyée ; la diffusion en continu des données commence depuis le serveur à la position requise.
Pour utiliser cette propriété, définissez la propriété
Lorsque
Selon le retard de la lecture (différence entre
Définissez la propriété
La valeur par défaut est 0.1 (un dixième de seconde). Pour déterminer le nombre de secondes actuellement dans la mémoire tampon, utilisez la propriété
Pour lire une liste de lecture côté serveur, définissez
Contenu enregistré Pour éviter toute distorsion lors de la diffusion de contenu pré-enregistré (pas en direct), ne réglez pas la valeur de
Contenu en direct Lors de la diffusion de contenu en direct, définissez la propriété
Depuis Flash Player 9.0.115.0, le lecteur n’efface plus la mémoire tampon lors de l’appel de
En cas d’interruption unique, la propriété
La propriété
Conseil : vous pouvez utiliser
Pour plus d’informations sur le nouveau comportement d’interruption, voir la page
Flash Media Server. Le comportement du tampon varie en fonction de la définition de la durée du tampon : sur un flux de publication ou sur un flux d’abonnement. Dans le cas d’un flux de publication,
Dans le cas d’un flux d’abonnement,
Lors de la lecture d’un flux enregistré, si
Définissez cette propriété sur
Ne définissez pas cette propriété sur true, sauf si vous souhaitez accéder à la vidéo en cours de chargement au niveau des pixels. La recherche d’un fichier de régulation consomme de la bande passante réseau et risque de retarder le début du téléchargement.
Lorsque vous appelez la méthode
Dans tous les cas,
Si vous définissez
Si vous définissez
Servez-vous de
Pour plus d’informations sur les fichiers de régulation, voir la rubrique « Contrôles de site Web (fichiers de régulation) » dans le Guide du développeur d’ActionScript 3.0 , ainsi que la rubrique
Pour associer la propriété
Lorsque les données sont transmises via le flux ou au cours de la lecture, l’objet d’événement de données (dans ce cas l’objet
Pour associer la propriété
Lorsque les données sont transmises via le flux ou au cours de la lecture, l’objet d’événement de données (dans ce cas l’objet
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Flash Media Server 3.5.3 et Flash Player 10.1 collaborent pour prendre en charge la recherche dynamique. La recherche dynamique a recours à une mémoire tampon d’arrière-plan et à une mémoire tampon directe pour effectuer des recherches sans solliciter de données au serveur. La recherche standard efface les données placées en mémoire tampon et demande au serveur d’envoyer de nouvelles données en fonction du temps de recherche.
Appelez
La recherche dynamique réduit la charge du serveur et améliore les performances de recherche. Définissez
Lorsque
Lorsqu’un appel de
Cette propriété est surtout conçue pour une utilisation avec un serveur, tel que Flash Media Server. Pour plus d’informations, voir la description de la classe.
Vous pouvez extraire la valeur de cette propriété pour évaluer approximativement la qualité de transmission du flux continu, et la communiquer à l’utilisateur.
Si cette valeur n’est pas définie, la limite par défaut est de 60 secondes ou correspond à deux fois la valeur de
Des valeurs plus élevées peuvent améliorer l’équilibrage de charge et son équité dans le maillage homologue à homologue, mais réduire la
La valeur de cette propriété varie selon la nature du flux continu, local ou distant. Les flux locaux, dans lesquels
Si vous tentez de lire cette propriété sans être connecté ou si vous tentez de la modifier, l’application renvoie une exception.
Flash Media Server Dans le cas d’un flux d’abonnement, nombre de secondes pendant lequel le flux a été lu. Dans le cas d’un flux de publication, nombre de secondes pendant lequel le flux a été publié. Ce nombre est précis au millième près ; multipliez-le par 1000 pour obtenir le nombre de millisecondes pendant lequel le flux a été lu.
Dans le cas d’un flux d’abonnement, si le serveur cesse d’envoyer des données et que le flux demeure ouvert, la valeur de la propriété
La valeur de la propriété
Si vous tentez de définir cette propriété sur FALSE sur un protocole réseau qui ne prend pas en charge la fiabilité partielle, la tentative est ignorée et la propriété est définie sur TRUE.
Utilisez la classe NetMonitor pour obtenir la liste actuelle des objets NetStream en cours d’utilisation dans une application. Une occurrence de cette classe distribue un événement
Vous pouvez utiliser la classe NetMonitor pour vous aider à suivre la lecture de la vidéo et les événements liés, indépendamment du lecteur vidéo en cours d’utilisation. Cela peut s’avérer utile lors de la mesure de médias, d’analyses, et de l’utilisation de bibliothèques de suivi.
Vous pouvez utiliser la barre d’espace pour mettre en pause et reprendre la lecture de la vidéo dans l’exemple, et les flèches droite et gauche pour effectuer une recherche vers l’avant ou vers l’arrière de 30 secondes afin de connaître les effets de ces actions sur les événements distribués.
Remarque : si la surveillance des objets NetStream n’est pas prise en charge sur la plate-forme actuelle, les événements
Evitez la mise en cache de la liste des objets NetStream.
Remarque : si la surveillance des objets NetStream n’est pas prise en charge sur la plate-forme actuelle, la liste renvoyée par cette fonction est toujours vide.
Dans le cas de téléchargement de flux enregistrés ou progressifs, si la vidéo est de qualité ou de résolution élevée, le décodeur peut être en retard dans le décodage du nombre requis d’images par seconde s’il ne dispose pas des ressources CPU système adéquates. En flux continu en direct, le tampon abandonne les images vidéo si le retard devient trop important. Cette propriété spécifie le nombre d’images abandonnées et non présentées normalement.
Remarque : cette propriété est toujours définie sur
Remarque : cette propriété est toujours définie sur
Remarque : cette propriété est toujours définie sur
Remarque : cette propriété est toujours définie sur
Lorsque le message est plus petit que l’unité de transmission maximale (UTM), cette valeur correspond au taux de perte de paquets réseau.
Cette propriété renvoie une valeur valide uniquement pour les flux RTMFP. Pour les flux RTMP, elle renvoie une valeur de zéro. Pour plus d’informations, voir la
Remarque : cette propriété est toujours définie sur
Les opérations de lecture dans URLStream ne sont pas bloquantes. Cela signifie que vous devez utiliser la propriété
Toutes les données binaires sont codées par défaut au format BE (gros-boutiste), l’octet le plus significatif étant en première position.
Les règles de sécurité qui s’appliquent au téléchargement d’URL avec la classe URLStream sont identiques à celles appliquées aux objets URLLoader. Il est possible de télécharger les fichiers de régulation, si nécessaire. Les règles de sécurité des fichiers locaux sont appliquées et des avertissements de sécurité sont générés, si besoin est.
Pour exécuter l’exemple, placez un fichier intitulé URLStreamExample.swf dans le même répertoire que vos fichiers SWF.
Si un objet URLStream s’inscrit à un événement
Remarque : si un fichier en cours de chargement contient des caractères non-ASCII (comme s’en trouvent dans de nombreuses langues autres que l’anglais), nous vous recommandons d’enregistrer le fichier en utilisant le codage UTF-8 ou UTF-16, plutôt que sous un format non-Unicode, ASCII par exemple.
Si le chargement échoue immédiatement, une exception IOError ou SecurityError (erreur de sécurité de fichier local comprise) décrivant l’échec est renvoyée. Dans le cas contraire, un événement
Par défaut, le fichier SWF appelant et l’URL chargée doivent se trouver dans le même domaine. Par exemple, un fichier SWF à l’adresse www.adobe.com peut charger uniquement des données provenant de sources situées aussi à l’adresse www.adobe.com. Pour charger des données à partir d’un autre domaine, placez un fichier de régulation d’URL sur le serveur hébergeant les données.
Dans Flash Player, vous ne pouvez pas vous connecter à des ports normalement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Dans Flash Player, vous pouvez éviter qu’un fichier SWF n’utilise cette méthode en définissant le paramètre
Dans Flash Player 10 et versions ultérieures, et dans AIR 1.5 et versions ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête «content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Le contenu AIR dans des sandbox non-applicatifs est également soumis à ces règles. Cependant, dans Adobe AIR, le contenu du sandbox de l’application (contenu installé avec l’application AIR) n’est pas soumis à ces limites de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player :
Dans AIR, un objet URLRequest peut enregistrer l’événement d’état
S’il existe un écouteur d’événement
La valeur renvoyée est comprise entre -128 et 127.
La valeur renvoyée est comprise entre -2147483648 et 2147483647.
Remarque : si la valeur du paramètre
La valeur renvoyée est comprise entre -32768 et 32767.
La valeur renvoyée est comprise entre 0 et 255.
La valeur renvoyée est comprise entre 0 et 4294967295.
La valeur renvoyée est comprise entre 0 et 65535.
Utilisez des objets partagés lorsque vous devez :
Pour créer un objet partagé local, appelez
A la fermeture d’une application, les objets partagés sont purgés ou écrits sur un disque. Vous pouvez également appeler la méthode
Eléments importants relatifs à l’espace disque local. Les objets partagés locaux possèdent certaines restrictions dont vous devez absloment tenir compte lors de la conception de votre application. Certains fichiers SWF ne sont pas autorisés à écrire des objets partagés locaux et certaines données stockées dans des objets partagés locaux sont parfois supprimées à votre insu. Les utilisateurs de Flash Player peuvent gérer l’espace disque disponible pour des domaines spécifiques ou l’ensemble des domaines. Lorsque des utilisateurs réduisent la quantité d’espace disque disponible, certains objets locaux partagés risquent d’être supprimés. Les utilisateurs de Flash Player disposent également de contrôles de confidentialité qui peuvent empêcher les domaines tiers (autres que celui figurant dans la barre d’adresse du navigateur) de lire ou d’écrire des objets partagés locaux.
Remarque : les fichiers SWF stockés et exécutés sur un ordinateur local, et non à partir d’un serveur distant, peuvent toujours écrire des objets partagés par un tiers sur un disque. Pour plus d’informations sur les objets partagés par un tiers, voir
Il est toujours conseillé de vérifier les défaillances relatives à la quantité d’espace disque et au contrôle de la confidentialité des utilisateurs. Effectuez ces vérifications lorsque vous appelez
Si votre fichier SWF tente de créer ou modifier des objets partagés locaux, assurez-vous que le fichier SWF fait au moins 215 pixels de large et 138 pixels de haut (ce qui constitue les dimensions minimales d’affichage de la boîte de dialogue qui suggère à l’utilisateur d’augmenter sa limite locale de stockage des objets partagés locaux). Si votre fichier SWF est inférieur à ces dimensions et si une augmentation de la limite de stockage est nécessaire,
Objets partagés distants. Flash Media Server vous permet de créer et d’utiliser des objets partagés distants, partagés en temps réel par tous les clients connectés à votre application. Lorsqu’un client modifie une propriété d’un objet partagé distant, cette propriété est modifiée pour tous les clients connectés. Vous pouvez utiliser des objets partagés distants pour synchroniser des clients, par exemple les utilisateurs d’un jeu multi-joueurs.
Chaque objet partagé distant possède une propriété
Vous pouvez choisir de rendre les objets partagés distants persistant sur le client, sur le serveur ou sur les deux. Par défaut, Flash Player enregistre localement les objets partagés distants persistants dont la taille est inférieure à 100 Ko. Lorsque vous tentez d’enregistrer un objet plus volumineux, Flash Player ouvre une boite de dialogue de stockage local qui permet à l’utilisateur d’autoriser ou d’interdire le stockage local de l’objet partagé. Assurez-vous que la taille de votre scène est d’au moins 215 x 138 pixels ; il s’agit de la taille minimale requise par Flash pour afficher cette boîte de dialogue.
Si l’utilisateur sélectionne Autoriser, le serveur enregistre l’objet partagé et distribue un événement
Pour les objets partagés distants utilisés avec Flash Media Server,
Avant de tenter d’utiliser un objet partagé distant, commencez par vérifier la présence d’erreurs éventuelles à l’aide d’une instruction
Appelez la méthode
Remarque : un contenu local peut toujours écrire sur un disque des objets partagés en provenance de domaines tiers (autres que celui de la barre d’adresse actuelle du navigateur), même s’il est interdit à un domaine tiers d’écrire des objets partagés sur un disque.
Si cette méthode renvoie
Par exemple, si vous pensez qu’un objet partagé atteindra une taille maximale de 500 octets, même s’il est au départ beaucoup plus petit, transmettez 500 à
Une fois que l’utilisateur a répondu dans la boîte de dialogue, cette méthode est de nouveau appelée. Un événement
~ % & \ ; : " ' , < > ? #
Si votre fichier SWF est reçu via une connexion autre que HTTPS et que vous tentez de définir ce paramètre sur
Le diagramme suivant indique comment utiliser le paramètre
Le code suivant illustre la procédure d’attribution à une variable de la référence à l’objet partagé renvoyé :
Remarque : si l’utilisateur a choisi de ne jamais autoriser l’enregistrement local pour ce domaine, l’objet n’est pas enregistré localement, même si une valeur est spécifiée pour
Pour éviter les conflits de noms, Flash examine l’emplacement du fichier SWF qui crée l’objet partagé. Par exemple, si un fichier SWF à l’adresse www.myCompany.com/apps/stockwatcher.swf crée un objet partagé nommé
Bien que le paramètre
Pour éviter de limiter inopinément l’accès à un objet partagé, utilisez le paramètre
Lorsque vous employez cette méthode, tenez compte du modèle de sécurité suivant :
Imaginons que vous publiez le contenu de fichiers SWF afin qu’il soit lu sous forme de fichiers locaux (fichiers SWF installés localement ou fichiers EXE) et que vous deviez accéder à un objet partagé spécifique à partir de plusieurs fichiers SWF locaux. Dans ce cas, sachez que, pour ce qui est des fichiers locaux, il est possible d’utiliser deux emplacements différents pour le stockage des objets partagés. Le domaine utilisé dépend des autorisations de sécurité accordées au fichier local qui a créé l’objet partagé. Les fichiers locaux peuvent avoir trois niveaux distincts d’autorisation :
Les fichiers locaux pouvant accéder au système de fichiers local (niveau 1 ou 3) stockent leurs objets partagés à un emplacement unique. Les fichiers locaux ne pouvant pas accéder au système de fichiers local (niveau 2) stockent leurs objets partagés dans un autre emplacement.
Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre
Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player :
~ % & \ ; : " ' , > ? ? #
Remarque : si l’utilisateur a choisi de ne jamais autoriser l’enregistrement local pour ce domaine, l’objet n’est pas enregistré localement, même si un chemin local est spécifié à des fins de persistance. Pour plus d’informations, voir la description de la classe.
Pour créer un objet partagé distant, appelez
Pour confirmer la synchronisation des copies locale et distante de l’objet partagé, écoutez et gérez l’événement
Pour créer un objet partagé accessible au client actuel uniquement, utilisez
Remarque : n’utilisez pas un terme réservé comme nom de fonction.
Pour créer les propriétés d’un objet partagé, appelez
La méthode
Pour plus d’informations sur les objets partagés distants, voir la
Remarque : La méthode
Tous les attributs de la propriété
Remarque : n’affectez pas directement de valeurs à la propriété
Pour supprimer des attributs pour des objets partagés locaux, utilisez un code tel que
Pour créer des valeurs privées pour un objet partagé, valeurs qui ne sont disponibles que pour l’occurrence du client alors que l’objet est utilisé et qui ne sont pas enregistrées avec l’objet lorsqu’il est fermé, créez des propriétés qui ne sont pas nommées
L’objet partagé contient les données suivantes :
Dans le cas d’objets partagés distants utilisés avec un serveur, tous les attributs de la propriété
Pour plus d’informations sur l’encodage des objets, y compris sur les différences d’encodage des objets partagés selon qu’ils sont locaux ou distants, voir la description de la propriété
La valeur par défaut de
Pour configurer l’encodage objet par objet, plutôt que pour la totalité des objets partagés créés par le fichier SWF, définissez la propriété
L’encodage d’objet est géré différemment selon que l’objet partagé est local ou distant.
Flash calcule la taille d’un objet partagé en examinant toutes ses propriétés data ; plus un objet a de propriétés data, plus l’estimation de sa taille prend du temps. L’estimation de la taille de l’objet peut monopoliser beaucoup de temps de traitement. Il est donc recommandé d’éviter cette méthode à moins d’en avoir réellement besoin.
Cette méthode vous permet de contrôler le trafic entre le client et le serveur. Si la connexion entre le client et le serveur est relativement lente, par exemple, réglez
La définition de
Les modifications ne sont envoyées au serveur qu’après la diffusion de l’événement
Remarques :
Le mode de transition
Vous pouvez utiliser ce mode pour créer une nouvelle liste de lecture ou reconstituer une liste de lecture après le rétablissement d’une connexion perdue. Pour créer une nouvelle liste de lecture, lorsque la méthode
Ce mode de transition est l’inverse du mode
Dans ce mode, Flash Media Server place en file d’attente le flux spécifié dans
Dans ce mode, le flux en cours de lecture est abandonné et la lecture du flux spécifié dans
Ce mode remplace le flux continu spécifié dans
Si
Utilisez ce mode si les flux entre lesquels vous souhaitez basculer ne sont pas reliés entre eux et si leur contenu ou leurs longueurs diffèrent. Par exemple, utilisez ce mode lorsque vous souhaitez remplacer un message publicitaire par un autre en fonction du suivi effectué par l’utilisateur et des statistiques de visualisation de messages publicitaires antérieures.
Pour passer d’un flux à un autre de même contenu, utilisez plutôt le mode
Utilisez ce mode lorsque vous souhaitez basculer vers un flux de même contenu, mais codé avec une autre vitesse de transmission ou une autre résolution. Par exemple, utilisez ce mode lorsque l’application place les flux en file d’attente dans une liste de lecture ou lit un flux unique avec une vitesse de transmission particulière, puis s’aperçoit que la disponibilité de la bande passante ou la capacité de traitement est inférieure ou supérieure aux exigences du flux de données. L’application peut alors actualiser les flux avec leurs versions de vitesse de transmission supérieure ou inférieure.
Dans ce mode, Flash Media Server fait des hypothèses quant à la relation entre les flux
Lorsqu’une liste de lecture a été mise en file d’attente et que
Si
Pour passer d’un flux à un autre de contenu différent, utilisez plutôt le mode
Pour obtenir des informations de sécurité sur le chargement de contenu et de données dans Flash Player et AIR, voir les références suivantes :
Pour écrire des méthodes de rappel pour cette classe, étendez la classe et définissez les méthodes de rappel dans votre sous-classe, ou affectez la propriété
Dans cet exemple, le code qui crée les objets Video et NetStream et appelle les méthodes
connect()
.
Si une application doit communiquer avec des serveurs antérieurs à Flash Player 9, définissez la propriété
Le code suivant crée un objet NetConnection.
var nc:NetConnection = new NetConnection();
Avec Flash Media Server,
Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
Cette méthode déconnecte tous les objets NetStream qui s’exécutent sur la connexion. Toutes les données en attente qui n’ont pas encore été envoyées sont abandonnées (pour clore les flux locaux ou de serveur sans fermer la connexion, utilisez
La méthode
Avec Flash Media Server, la meilleure pratique de développement consiste à appeler
Ce type de connexion présente les limites suivantes :
Seuls les homologues sur le même réseau local peuvent se rechercher entre eux.
La multidiffusion IP permet à Flash Player de recevoir des flux de données, mais pas de les envoyer.
Flash Player et AIR peuvent envoyer et recevoir des flux de données dans un groupe homologue à homologue, mais les homologues doivent être recherchés sur le même réseau local via la multidiffusion IP.
Cette technique ne peut pas être utilisée pour une communication un-à-un.
Utilisez l’un des protocoles suivants :
Si le fichier est desservi par l’hôte dans lequel le serveur est installé, vous pouvez omettre le paramètre
(Flash Player 10.1 ou AIR 2 ou version ultérieure) Pour créer des applications homologue à homologue, utilisez le protocole
Appelez
Tenez compte du modèle de sécurité suivant :
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité
Pour plus d’informations concernant la sécurité, voir la rubrique Sécurité
La valeur est
La valeur est
La valeur est
La valeur est
La valeur par défaut est
Pour définir l’encodage d’un objet séparément (plutôt que de définir l’encodage de tous les objets de l’application), réglez la propriété
Pour plus d’informations, voir la description de la propriété
Cette valeur ne fait pas la distinction entre les connexions d’éditeurs et d’abonnés. Si cette valeur est réduite alors que des connexions d’homologue sont en cours, la nouvelle valeur n’affecte que les nouvelles connexions entrantes. Les connexions existantes ne sont pas abandonnées.
Chaque occurrence de NetConnection possède une propriété
Les autres occurrences Flash Player ou Adobe AIR utilisent cet identifiant comme
Lors de l’écriture ou de la lecture d’un objet à partir de données binaires, la propriété
Il est important de comprendre cette propriété si votre application doit communiquer avec des serveurs antérieurs à Flash Player 9. Les trois scénarios suivants sont possibles :
Une fois l’occurrence de NetConnection connectée, sa propriété
Si vous ne spécifiez pas l’encodage approprié pour vous connecter à un serveur, l’objet NetConnection distribue l’événement
"best"
; if this value
is not changed, native SSL sockets are used by default, and a fallback
to other methods is used if necessary.
Les valeurs possibles sont les suivantes :
Pour utiliser une connexion SSL native, définissez cette propriété sur
Si la propriété est définie sur
Cette propriété est applicable uniquement lors de l’utilisation de RTMP, RTMPS ou RTMPT. La méthode