ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
 

Paket flash.system 


Das flash.system-Paket enthält eine Funktion auf Paketebene, fscommand(), mit der die Kommunikation zwischen einer SWF-Datei und deren Container vereinfacht wird.
Öffentliche Methoden
 FunktionDefiniert von
  
fscommand(command:String, args:String = ""):void
Ermöglicht die Kommunikation zwischen der SWF-Datei und Flash Player oder dem Programm, in dem Flash Player ausgeführt wird, beispielsweise ein Webbrowser.
flash.system
Funktionsdetails

fscommand

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9

Ermöglicht die Kommunikation zwischen der SWF-Datei und Flash Player oder dem Programm, in dem Flash Player ausgeführt wird, beispielsweise ein Webbrowser. Mithilfe der Funktion fscommand() können Sie zudem Meldungen an Director, Visual Basic, Visual C++ und andere Programme übergeben, die als Hosts für ActiveX-Steuerelemente verwendet werden können.

Die Funktion fscommand() ermöglicht einer SWF-Datei die Kommunikation mit einem Skript auf einer Webseite. Der Zugriff auf das Skript wird jedoch auf der Webseite durch die Einstellung allowScriptAccess gesteuert. (Sie setzen dieses Attribut in dem HTML-Code, in den die SWF-Datei eingebettet ist. In Internet Explorer ist dies das PARAM-Tag, in Netscape Navigator das EMBED-Tag.)

  • Wenn allowScriptAccess auf "sameDomain" (Standardeinstellung) gesetzt ist, ist Skripting nur von SWF-Dateien erlaubt, die in der gleichen Domäne wie die Webseite sind.
  • Wenn allowScriptAccess auf "always" gesetzt ist, kann die SWF-Datei mit der HTML-Seite kommunizieren, in der sie eingebettet ist, selbst wenn die SWF-Datei aus einer anderen Domäne als die HTML-Seite stammt.
  • Wenn allowScriptAccess auf "never" gesetzt ist, kann die SWF-Datei nicht mit HTML-Seiten kommunizieren. Bitte beachten Sie, dass dieser Wert veraltet ist und nicht empfohlen wird und nicht notwendig sein sollte, wenn Sie nur vertrauenswürdige SWF-Dateien von Ihrer eigenen Domäne bereitstellen. Falls Sie nicht vertrauenswürdige SWF-Dateien bereitstellen müssen, empfiehlt es sich, eine separate Unterdomäne zu erstellen und alle nicht vertrauenswürdigen Inhalte dort abzulegen.

Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Die fscommand()-Funktion ist nicht erlaubt, wenn die aufrufende SWF-Datei in der lokalen Sandbox des Dateisystems oder in der Netzwerk-Sandbox befindet und die enthaltende HTML-Datei eine nicht vertrauenswürdige Sandbox ist.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Verwendung 1: Um mithilfe von fscommand() eine Meldung an Flash Player zu senden, müssen Sie vordefinierte Befehle und Parameter verwenden. Die folgende Tabelle enthält die Werte, die Sie in der Funktion fscommand() für die Parameter command und args einsetzen können. Diese Werte steuern SWF-Dateien, die in Flash Player wiedergegeben werden, einschließlich Projektoren. (Ein projector ist eine SWF-Datei, die in einem Format gespeichert wurde, das als eigenständige Anwendung, d. h. ohne Flash Player, ausgeführt werden kann.)

BefehlParameter (args)Zweck
quitKeineSchließt den Projektor.
fullscreentrue oder falseBei Angabe von true wird Flash Player in den Vollbildmodus gesetzt. Mit false wird der Player auf die normale Menüansicht zurückgesetzt.
allowscaletrue oder falseBei Angabe von false wird der Player angewiesen, die SWF-Datei immer in ihrer ursprünglichen Größe darzustellen und nicht zu skalieren. Bei Angabe von true wird die SWF-Datei exakt in der vollen Größe des Players dargestellt.
showmenutrue oder falseBei Angabe von true werden sämtliche Kontextmenüelemente aktiviert. Bei Angabe von false werden alle Elemente des Kontextmenüs mit Ausnahme von „Einstellungen“ und „Flash Player“ ausgeblendet.
execPfad der Anwendung Führt eine Anwendung im Projektor aus.
trapallkeystrue oder falseBei Angabe von true werden alle Tastenereignisse, einschließlich Tastaturbefehle, an die Prozedur onClipEvent(keyDown/keyUp)in Flash Player gesendet.

Nicht alle in der Tabelle aufgeführten Befehle sind in allen Anwendungen verfügbar:

  • In Web-Playern sind keine dieser Befehle verfügbar.
  • Alle Befehle sind in eigenständigen Projektoranwendungen verfügbar.
  • AIR-Anwendungen müssen die flash.desktop.NativeApplication-Klasse für ähnliche Funktionen verwenden, z. B. NativeApplication.nativeApplication.exit() anstelle von fscommand("quit").
  • In Test-Movie-Playern sind nur die Befehle allowscale und exec verfügbar.

Im Befehl exec können nur die Zeichen A-Z, a-z, 0-9, Punkt (.) und Unterstrich (_) verwendet werden. Der Befehl exec wird nur im Unterordner „fscommand“ ausgeführt. Mit anderen Worten: Wenn Sie mit dem Befehl exec eine Anwendung aufrufen, muss sich die Anwendung in einem Unterordner mit der Bezeichnung „fscommand“ befinden. Der Befehl exec kann nur innerhalb einer Flash-Projektordatei ausgeführt werden.

Verwendung 2: Wenn Sie mit fscommand() eine Meldung an eine Skriptsprache in einem Webbrowser (z. B. JavaScript) senden, können Sie zwei beliebige Parameter in den Parametern command und args übergeben. Bei diesen Parametern kann es sich um Strings oder Ausdrücke in einer JavaScript-Funktion handeln, mit der die Funktion fscommand() abgefangen wird.

In einem Webbrowser ruft fscommand() die JavaScript-Funktion moviename_DoFScommand auf der Webseite mit der SWF-Datei auf. Dabei ist moviename der Name des Flash-Objekts, das mit dem Attribut NAME des Tags EMBED bzw. mit der Eigenschaft „ID“ des Tags OBJECT zugewiesen wurde. Wenn Sie der SWF-Datei den Namen „myMovie“ zuweisen, wird die JavaScript-Funktion myMovie_DoFScommand aufgerufen.

Setzen Sie in der Webseite, die die SWF-Datei enthält, das allowScriptAccess-Attribut, um es der SWF-Datei wie oben beschrieben zu erlauben oder zu verbieten, auf die Webseite zuzugreifen. (Sie setzen dieses Attribut in dem HTML-Code, in den die SWF-Datei eingebettet ist. In Internet Explorer ist dies das PARAM-Tag, in Netscape Navigator das EMBED-Tag.)

Wenn Flash Player 10 oder eine spätere Version im Browser ausgeführt wird, kann diese Methode eventuell nicht programmgesteuert verwendet werden, um ein Popupfenster zu öffnen. Verschiedene Browser (und Browserkonfigurationen) blocken eventuell Popupfenster. Es kann daher nicht sichergestellt werden, dass Popupfenster eingeblendet werden. Den größten Erfolg verspricht diese Methode zum Öffnen eines Popupfensters, und zwar aufgrund von Code, der als direktes Ergebnis einer Benutzeraktion ausgeführt wird, z. B. in einer Ereignisprozedur für ein Mausklick- oder Tastendruckereignis.

Verwendung 3: Über die Funktion fscommand() können Meldungen an Director (Macromedia Director von Adobe) gesendet werden. Diese Meldungen werden von Lingo (Director-Skriptsprache) als Strings, Ereignisse oder ausführbarer Lingo-Code interpretiert. Wenn es sich bei einer Meldung um einen String oder ein Ereignis handelt, müssen Sie entsprechenden Lingo-Code erstellen, der die Meldungen der Funktion fscommand() empfängt und in Director eine Aktion aufruft. Weitere Informationen finden Sie im Director Support Center unter www.adobe.com/support/director/.

Verwendung 4: In VisualBasic, Visual C++ und anderen Programmen, in denen ActiveX-Steuerelemente ausgeführt werden können, sendet die Funktion fscommand() ein VB-Ereignis mit zwei Strings, die in der Programmiersprache der Umgebung verarbeitet werden können. Weitere Informationen erhalten Sie, indem Sie das Flash Support Center unter www.adobe.com/support/flash/ nach dem Schlüsselwort „Flash-Methode“ durchsuchen.

Hinweis: Die ExternalInterface-Klasse stellt bessere Funktionen für die Kommunikation zwischen JavaScript und ActionScript (Verwendung 2) und zwischen ActionScript und VisualBasic, Visual C++ oder anderen Programmen bereit, die ActiveX-Steuerelemente (Verwendung 4) hosten können. Verwenden Sie fscommand() weiterhin, um Meldungen an Flash Player (Verwendung 1) und Director (Verwendung 3) zu senden.

Parameter

command:String — Ein zur beliebigen Verwendung für die Hostanwendung übergebener String oder ein an Flash Player übergebener Befehl.
 
args:String (default = "") — Ein zur beliebigen Verwendung für die Hostanwendung übergebener String oder ein an Flash Player übergebener Wert.


Auslöser
Error — Wenn die Funktion nicht als Antwort auf eine Benutzeraktion wie z. B. ein Maus- oder ein Tastendruckereignis aufgerufen wird.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel zeigt, wie Sie Flash Player mit fscommand() veranlassen können, in den Vollbildmodus zu wechseln und keine Skalierung zu gestatten. Anschließend wird der Bühne mithilfe von draw() ein orangefarbenes Feld hinzugefügt. Zu draw() wird ein click-Ereignis-Listener mit dem Namen clickHandler() hinzugefügt, der auf click-Ereignisse reagiert, indem Flash Player durch einen weiteren Aufruf von fscommand() veranlasst wird, die Ausführung zu beenden.

Hinweis: Dieses Beispiel sollte in einem eigenständigen Flash Player und nicht in einem Webbrowser ausgeführt werden.

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 ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.