Das flash.system-Paket enthält eine Funktion auf Paketebene,
fscommand()
, mit der die Kommunikation zwischen einer SWF-Datei und deren Container vereinfacht wird.Funktion | Definiert von | ||
---|---|---|---|
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 |
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.)
Befehl | Parameter (args) | Zweck |
---|---|---|
quit | Keine | Schließt den Projektor. |
fullscreen | true oder false | Bei Angabe von true wird Flash Player in den Vollbildmodus gesetzt. Mit false wird der Player auf die normale Menüansicht zurückgesetzt. |
allowscale | true oder false | Bei 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. |
showmenu | true oder false | Bei 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. |
exec | Pfad der Anwendung | Führt eine Anwendung im Projektor aus. |
trapallkeys | true oder false | Bei 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 vonfscommand("quit")
. - In Test-Movie-Playern sind nur die Befehle
allowscale
undexec
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 )
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); } } }
Tue Jun 12 2018, 10:19 AM Z