Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : Récupération des données du serveur...
Récupération des données du serveur...
 

Package flash.system 


Le package flash.system contient une fonction de niveau package, fscommand(), qui facilite la communication entre un fichier SWF et son conteneur.
Méthodes publiques
 FonctionDéfini par
  
fscommand(command:String, args:String = ""):void
Permet au fichier SWF de communiquer avec Flash Player ou le programme hébergeant Flash Player, tel qu’un navigateur Web.
flash.system
Détail de la fonction

fscommand

()fonction
public function fscommand(command:String, args:String = ""):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9

Permet au fichier SWF de communiquer avec Flash Player ou le programme hébergeant Flash Player, tel qu’un navigateur Web. La fonction fscommand() permet également de transmettre des messages à Director ou à Visual Basic (VB), Visual C++ et autres programmes ayant recours aux contrôles ActiveX.

La fonction fscommand() permet à un fichier SWF de communiquer avec un script dans une page Web. Cependant, l’accès au script est contrôlé par le paramètre allowScriptAccess de la page Web (vous définissez cet attribut dans le code HTML intégré au fichier SWF, par exemple dans la balise PARAM pour Internet Explorer ou dans la balise EMBED pour Netscape).

  • Lorsque allowScriptAccessest défini sur "sameDomain" (par défaut), les scripts sont uniquement autorisés à partir des fichiers SWF qui se trouvent dans le même domaine que la page Web.
  • Lorsque allowScriptAccess est défini sur "always", le fichier SWF peut communiquer avec la page HTML dans laquelle il est intégré, même s’il ne provient pas du même domaine que la page HTML.
  • Lorsque l’attribut allowScriptAccess est défini sur "never", le fichier SWF ne peut communiquer avec aucune page HTML. Notez que l’utilisation de cette valeur est déconseillée, voire inutile si vous n’envoyez pas de fichiers SWF non approuvés depuis votre propre domaine. Si vous devez envoyer des fichiers SWF non approuvés, Adobe vous conseille de créer un sous-domaine distinct et d’y placer l’ensemble du contenu non approuvé.

Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui comporte le contenu SWF.

La fonction fscommand() n’est pas autorisée si le fichier SWF appelant se trouve dans le système de fichiers local ou dans le Sandbox du réseau local et si la page HTML contenant ce fichier se trouve dans un Sandbox non approuvé.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Usage 1 : pour utiliser fscommand() afin d’envoyer un message à Flash Player, vous devez utiliser les commandes et les paramètres prédéfinis. Le tableau suivant indique les valeurs que vous pouvez spécifier pour les paramètres command et args de la fonction fscommand(). Ces valeurs contrôlent les fichiers SWF lus par Flash Player, y compris les projections (une projection est un fichier SWF enregistré sous un format permettant de l’exécuter en tant qu’application autonome, pouvant être lue sans Flash Player).

CommandeParameter (args)Rôle
quitAucunFerme la projection.
fullscreentrue ou falseSpécifiez true pour exécuter Flash Player en mode plein écran. Spécifiez false pour rétablir le mode d’affichage normal du menu.
allowscaletrue ou falseSi vous spécifiez false, le lecteur affiche toujours la taille d’origine du fichier SWF, sans le redimensionner. Si vous spécifiez true, le fichier SWF adopte l’échelle 100 % du lecteur.
showmenutrue ou falseSpécifiez true pour activer le jeu complet d’éléments de menu contextuel. Spécifiez false pour masquer tous les éléments de menu contextuel, à l’exception de A propos de Flash Player et Paramètres.
execChemin de l’application Exécute une application depuis la projection.
trapallkeystrue ou falseSpécifiez true pour envoyer tous les événements de touche, y compris les touches de raccourci, au gestionnaire onClipEvent(keyDown/keyUp) de Flash Player.

Toutes les commandes qui figurent dans le tableau ne sont pas disponibles dans toutes les applications :

  • Aucune des commandes n’est disponible dans les lecteurs Web.
  • Toutes les commandes sont disponibles dans les applications de projecteur autonome.
  • Les applications AIR doivent utiliser la classe flash.desktop.NativeApplication pour les fonctions similaires telles que NativeApplication.nativeApplication.exit() au lieu de fscommand("quit").
  • Seuls allowscale et exec sont disponibles sur les lecteurs de tests d’animation.

La commande exec ne peut contenir que les caractères compris entre A et Z, a et z, 0 et 9, les caractères point (.) et souligné (_). La commande exec ne s’exécute que dans le sous-répertoire fscommand. En d’autres termes, si vous utilisez la commande exec pour appeler une application, cette application doit résider dans un sous-répertoire appelé fscommand. La commande exec ne fonctionne qu’à partir d’un fichier de projection Flash.

Usage 2 : pour utiliser fscommand() pour envoyer un message à un langage de programmation tel que JavaScript dans un navigateur Web, vous pouvez transmettre deux paramètres avec les paramètres command et args. Ces paramètres peuvent être des chaînes ou des expressions. Ils sont utilisés dans une fonction JavaScript qui gère ou intercepte la fonction fscommand().

Dans un navigateur Web, la fonction fscommand() appelle la fonction JavaScript moviename_DoFScommand, résidant dans la page Web qui contient le fichier SWF. Pour moviename, attribuez le nom de l’objet Flash utilisé pour l’attribut NAME de la balise EMBED ou la propriété ID de la balise OBJECT. Si vous attribuez le nom « myMovie » au fichier SWF, la fonction JavaScript myMovie_DoFScommand est appelée.

Dans la page Web qui contient le fichier SWF, définissez l’attribut allowScriptAccess de manière à autoriser, ou non, le fichier SWF à accéder à la page Web, selon les descriptions ci-dessus (vous définissez cet attribut dans le code HTML intégré au fichier SWF, par exemple dans la balise PARAM pour Internet Explorer ou dans la balise EMBED pour Netscape).

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).

Usage 3 : la fonction fscommand() peut envoyer des messages à Director (Macromedia Director d’Adobe). Ces messages sont interprétés par Lingo (le langage de script de Director) comme des chaînes, des événements ou un code Lingo exécutable. Si le message est une chaîne ou un événement, vous devez écrire le code Lingo devant recevoir le message de la fonction fscommand() et exécuter une action dans Director. Pour plus d’informations, voir le centre de support de Director à l’adresse www.adobe.com/support/director/.

Usage 4 : dans VisualBasic, Visual C++ et dans d’autres programmes ayant recours aux contrôles ActiveX, la fonction fscommand() envoie un événement VB avec deux chaînes qui peut être traité dans le langage de programmation de l’environnement. Pour plus d’informations, utilisez les mots-clés « méthode Flash » pour effectuer une recherche dans le centre de support de Flash à l’adresse www.adobe.com/fr/support/flash/.

Remarque : la classe ExternalInterface offre de meilleures fonctionnalités de communication entre JavaScript et ActionScript (Utilisation 2), et entre ActionScript et VisualBasic, Visual C++ ou d’autres programmes pouvant héberger des contrôles ActiveX (Utilisation 4). Vous devriez continuer à utiliser la fonction fscommand() pour envoyer des messages à Flash Player (Utilisation 1) et à Director (Utilisation 3).

Paramètres

command:String — Chaîne transmise à l’application hôte ou commande passée à Flash Player.
 
args:String (default = "") — Chaîne transmise à l’application hôte ou valeur passée à Flash Player.


Valeur émise
Error — Si la fonction n’est pas appelée en réponse à l’action d’un utilisateur, notamment à un événement de type clic de souris ou pression de touche.

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

L’exemple suivant indique comment fscommand() peut être utilisé pour forcer Flash Player à activer le mode plein écran et bloquer toute tentative de redimensionnement. Un cadre orange est ensuite ajouté à la scène à l’aide de draw(). Dans draw(), un écouteur de l’événement click est ajouté sous le nom clickHandler(), qui répond aux événements click en forçant Flash Player à se fermer en effectuant un autre appel à fscommand().

Remarque : cet exemple doit être exécuté avec la version autonome de Flash Player et non pas dans un navigateur Web.

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.system.fscommand;
    import flash.events.MouseEvent;

    public class FSCommandExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function FSCommandExample() {
            fscommand("fullscreen", "true");
            fscommand("allowscale", "false");
            draw();
        }

        private function clickHandler(event:MouseEvent):void {
            fscommand("quit");
            trace("clickHandler");
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;
            addEventListener(MouseEvent.CLICK, clickHandler);

            var label:TextField = new TextField();
            label.text = "quit";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            addChild(child);
        }
    }
}

[ X ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.