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 |
| Player-Version : | 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. Der Internet Explorer beispielsweise unterstützt dafür das Tag PARAM und Netscape Navigator das Tag EMBED.) Wenn allowScriptAccess auf "never" gesetzt ist, kann eine SWF-Datei auf die Skripts der Webseite nicht zugreifen. Wenn in einer Version ab Flash Player 7 allowScriptAccess auf "always" gesetzt ist, kann eine SWF-Datei immer auf die Skripts der Webseite zugreifen. Wenn allowScriptAccess auf "sameDomain" gesetzt ist, dürfen nur SWF-Dateien, die sich in derselben Domäne wie die Webseite befinden, auf die Skripts zugreifen, bei früheren Flash Player-Versionen jedoch immer. Wird allowScriptAccess auf einer HTML-Seite gar nicht angegeben, lautet der Standardwert bei SWF-Dateien ab Version 8 "sameDomain" und bei früheren Versionen "always".
Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie in der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.
Weitere sicherheitsrelevante Informationen finden Sie in den folgenden Abschnitten:
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:
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 Unterverzeichnis "fscommand" ausgeführt. Mit anderen Worten: Wenn Sie mit dem Befehl exec eine Anwendung aufrufen, muss sich die Anwendung in einem Unterverzeichnis mit der Bezeichnung "fscommand" befinden. Der Befehl exec kann nur innerhalb einer Flash-Projektordatei ausgeführt werden.
Verwendung 2: Wenn Sie mit fscommand() eine Nachricht 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.
Auf der Webseite mit der SWF-Datei setzen Sie das Attribut allowScriptAccess, um die Zugriffsberechtigung der SWF-Datei auf die Skripte der Webpage zu regeln. (Sie setzen dieses Attribut in dem HTML-Code, in den die SWF-Datei eingebettet ist. Der Internet Explorer beispielsweise unterstützt dafür das Tag PARAM und Netscape Navigator das Tag EMBED.) Wenn allowScriptAccess auf "never" eingestellt wird, schlägt ein Skriptzugriff von außen immer fehl. Wenn allowScriptAccess hingegen auf "always" eingestellt wird, ist ein Skriptzugriff von außen immer erfolgreich. Wenn das Attribut auf "sameDomain" gesetzt ist, dürfen nur SWF-Dateien, die sich in derselben Domäne wie die Webseite befinden, auf die Skripts zugreifen. Wenn allowScriptAccess auf einer Webseite nicht angegeben ist, wird in Flash Player 8 der Standardwert "sameDomain" verwendet und in älteren Flash Player-Versionen der Standardwert "always".
Beachten Sie bei Verwendung dieser Funktion das Sicherheitsmodell von Flash Player: In Flash Player 9 ist die Verwendung der Funktion fscommand() nicht zulässig, wenn sich die aufrufende SWF-Datei in der Sandbox "local-with-file-system" oder in der Sandbox "local-with-network" befindet und es sich bei der HTML-Seite, in die die SWF-Datei eingebettet ist, um eine nicht vertrauenswürdige Sandbox handelt. Weitere Informationen finden Sie im Flash Player 9-Whitepaper zum Thema Sicherheit unter http://www.adobe.com/go/fp9_0_security_de.
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 Nachricht um einen String oder ein Ereignis handelt, müssen Sie entsprechenden Lingo-Code erstellen, der die Nachrichten 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:Wenn Sie Inhalte für den Flash Player ab Version 8 veröffentlichen, ist die ExternalInterface-Klasse besser geeignet für die Kommunikation zwischen JavaScript und ActionScript (Verwendung 2) und zwischen ActionScript und VisualBasic, Visual C++ oder anderen Programmen, in denen ActiveX-Steuerelemente ausgeführt werden können (Verwendung 4). 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.
|
Siehe auch
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);
}
}
}
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/system/package.html