Le package flash.system contient une fonction de niveau package, fscommand(), qui facilite la communication entre un fichier SWF et son conteneur.
Public Fonctions
 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 fonction
fscommand()fonction
public function fscommand(command:String, args:String = ""):void

Version du langage : ActionScript 3.0
Version du lecteur : 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 pouvez définir 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 l'attribut allowScriptAccess est défini sur "never", un fichier SWF ne peut pas accéder aux scripts de la page Web. A partir de Flash Player 7, lorsque l'attribut allowScriptAccess est défini sur "always", un fichier SWF peut toujours accéder aux scripts de la page Web. Lorsque l'attribut allowScriptAccess est défini sur "sameDomain", les scripts sont uniquement autorisés à partir des fichiers SWF qui se trouvent dans le même domaine que la page Web ; les scripts sont toujours autorisés dans les versions précédentes de Flash Player. Si l'attribut allowScriptAccess n'est pas spécifié dans une page HTML, il est défini par défaut sur "sameDomain" pour les fichiers SWF, version 8 et ultérieure ; et sur "always" pour les fichiers SWF, version 7 et antérieure.

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.

Pour plus de détails sur la sécurité, consultez les sections suivantes :

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 :

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. (Vous pouvez définir 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 l'attribut allowScriptAccess est défini sur "never", les scripts externes échouent systématiquement. Lorsque l'attribut allowScriptAccess est défini sur "always", les scripts externes sont acceptés de façon systématique. Lorsqu'il est défini sur "sameDomain", les scripts sont uniquement autorisés à partir des fichiers SWF qui se trouvent dans le même domaine que la page Web. Si l'attribut allowScriptAccess n'est pas spécifié dans une page Web, il est défini par défaut sur "sameDomain" pour Flash Player 8, et sur "always" pour les versions précédentes de Flash Player.

Lorsque vous utilisez cette fonction, référez-vous au modèle de sécurité de Flash Player. Pour Flash Player 9, 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 de réseau local et si la page HTML contenant ce fichier se trouve dans un Sandbox non approuvé. Pour plus d'informations, consultez le livre blanc sur la Sécurité de Flash Player à l'adresse http://www.adobe.com/go/fp9_0_security.

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, consultez 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/support/flash/.

Remarque : si vous procédez à la publication de Flash Player 8 ou version ultérieure, 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 les 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.

Voir aussi


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);
        }
    }
}

 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/system/package.html