Il pacchetto flash.system contiene una funzione a livello di pacchetto,
fscommand()
, che facilita la comunicazione tra un file SWF e il relativo contenitore.Funzione | Definito da | ||
---|---|---|---|
Consente la comunicazione tra il file SWF e Flash Player o il programma su cui Flash Player risiede (ad esempio, un browser Web). | flash.system |
fscommand | () | funzione |
public function fscommand(command:String, args:String = ""):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Consente la comunicazione tra il file SWF e Flash Player o il programma su cui Flash Player risiede (ad esempio, un browser Web). La funzione fscommand()
può anche essere utilizzata per passare messaggi a Director o a Visual Basic (VB), Visual C++ e ad altri programmi che accettano i controlli ActiveX.
La funzione fscommand()
consente a un file SWF di comunicare con uno script in una pagina Web. Tuttavia, l'accesso allo script viene controllato dall'impostazione allowScriptAccess
della pagina Web. Questo attributo viene impostato nel codice HTML che incorpora il file SWF, ad esempio nel tag PARAM
per Internet Explorer o EMBED
per Netscape.
- Quando
allowScriptAccess
è impostato su"sameDomain"
(impostazione predefinita), la creazione di script è consentita solo da parte dei file SWF che appartengono allo stesso dominio della pagina Web. - Quando
allowScriptAccess
è impostato su"always"
, il file SWF può comunicare con la pagina HTML in cui è incorporato, anche quando il file SWF appartiene a un dominio diverso da quello della pagina HTML. - Quando
allowScriptAccess
è impostato su"never"
, il file SWF non può comunicare con alcuna pagina HTML. Si sconsiglia di utilizzare questo valore, anche se non dovrebbe essere necessario a meno che non dobbiate gestire file SWF non affidabili dal vostro dominio. Se non avete l'esigenza di fornire file SWF non attendibili, Adobe consiglia di creare un sottodominio distinto e inserire in tale dominio tutto il contenuto non attendibile.
Potete impedire che un file SWF utilizzi questo metodo impostando il parametro allowNetworking
dei tag object
ed embed
nella pagina HTML che include il contenuto SWF.
La funzione fscommand()
non è consentita se il file SWF che esegue la chiamata si trova nella sandbox locale con file system o locale con rete e la pagina HTML è una funzione sandbox non attendibile.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Uso 1: per usare fscommand()
per inviare un messaggio a Flash Player, è necessario utilizzare parametri e comandi predefiniti. La tabella seguente mostra i valori che possono essere specificati per la funzione fscommand()
e in particolare per i parametri command
e args
. Questi valori controllano i file SWF riprodotti in Flash Player, compresi i proiettori. Un proiettore è un file SWF salvato in un formato che può essere eseguito come applicazione autonoma, ovvero senza Flash Player.
Comando | Parametro (args) | Funzione |
---|---|---|
quit | Nessuna | Chiude il proiettore. |
fullscreen | true o false | Se si specifica true , Flash Player viene impostato in modalità a schermo intero. Se si specifica false il lettore viene riportato alla normale visualizzazione con i menu. |
allowscale | true o false | Se specificate false , il lettore viene impostato affinché il file SWF sia disegnato sempre alle dimensioni originali e non venga mai ridimensionato. Se specificate true , il file SWF viene ridimensionato per essere adattato alle dimensioni del lettore. |
showmenu | true o false | Se specificate true , vengono attivate tutte le voci del menu di scelta rapida. Se specificate false , vengono disattivate tutte le voci del menu di scelta rapida ad eccezione di Impostazioni e Informazioni su Flash. |
exec | Percorso dell'applicazione | Esegue un'applicazione dall'interno del proiettore. |
trapallkeys | true o false | Se specificate true , tutti gli eventi di tastiera, compresi quelli dei tasti di scelta rapida, vengono inviati al gestore onClipEvent(keyDown/keyUp) in Flash Player. |
Non tutti i comandi elencati nella tabella sono disponibili in tutte le applicazioni:
- Nessuno dei comandi è disponibile nei lettori Web.
- Tutti i comandi sono disponibili nelle applicazioni proiettore autonome.
- Le applicazioni AIR devono usare la classe flash.desktop.NativeApplication per funzioni analoghe, ad esempio
NativeApplication.nativeApplication.exit()
anzichéfscommand("quit")
. - Solo
allowscale
eexec
sono disponibili nei lettori di prova filmato.
Il comando exec
può contenere solo i caratteri A-Z, a-z, 0-9, punto (.) e il carattere di sottolineatura (_). Il comando exec
viene eseguito solo nella sottodirectory fscommand. In altre parole, se utilizzate il comando exec
per chiamare un'applicazione, questa deve risiedere in una sottodirectory denominata fscommand. Il comando exec
funziona solo da un proiettore Flash.
Uso 2: Per utilizzare fscommand()
per inviare un messaggio a un linguaggio di script come JavaScript in un browser, è possibile passare qualunque coppia di parametri command
e args
. Questi parametri possono essere stringhe o espressioni e vengono utilizzati in una funzione JavaScript che gestisce, ovvero rileva, la funzione fscommand()
.
In un browser Web, fscommand()
chiama la funzione JavaScript moviename_DoFScommand
, che risiede nella pagina Web che contiene il file SWF. Per moviename
, specificate il nome dell'oggetto Flash usato per l'attributo NAME
del tag EMBED
o la proprietà ID del tag OBJECT
. Se assegnate il nome "myMovie" al file SWF, viene chiamata la funzione JavaScript myMovie_DoFScommand
.
Nella pagina Web che contiene il file SWF, impostate l'attributo allowScriptAccess
in modo che consenta o neghi l'accesso del file SWF alla pagina Web, come descritto sopra. Questo attributo viene impostato nel codice HTML che incorpora il file SWF, ad esempio nel tag PARAM
per Internet Explorer o EMBED
per Netscape.
In Flash Player 10 e versioni successive in esecuzione in un browser, potrebbe non essere possibile utilizzare questo metodo a livello di programmazione per aprire una finestra a comparsa. Browser (e configurazioni del browser) differenti potrebbero bloccare le finestre a comparsa in qualsiasi momento; non è possibile garantire la visualizzazione delle finestre. Tuttavia, per avere più possibilità di successo, utilizzate questo metodo per aprire una finestra a comparsa solo in codice che viene eseguita come risultato diretto di un'azione utente (ad esempio, in un gestore di eventi per un clic del mouse o la pressione di un tasto).
Uso 3: la funzione fscommand()
può inviare messaggi a Director (Macromedia Director di Adobe). Questi messaggi vengono interpretati da Lingo (linguaggio di scripting di Director) come stringhe, eventi o codice Lingo eseguibile. Se il messaggio è una stringa o un evento, è necessario scrivere il codice Lingo per ricevere il messaggio dalla funzione fscommand()
ed eseguire un'azione in Director. Per ulteriori informazioni, visitate il Centro di assistenza di Director all'indirizzo www.adobe.com/support/director/.
Uso 4: in Visual Basic, Visual C++ e altri programmi che possono ospitare controlli ActiveX, la funzione fscommand()
invia un evento VB con due stringhe che possono essere gestite dal linguaggio di programmazione dell'ambiente. Per ulteriori informazioni, cercate le parole chiave "Flash method" nel Centro di supporto di Flash all'indirizzo www.adobe.com/it/support/flash/.
Nota: la classe ExternalInterface che fornisce una funzionalità di comunicazione migliore tra JavaScript e ActionScript (uso 2) e ActionScript e VisualBasic, Visual C++ o altri programmi che possono ospitare i controlli ActiveX (uso 4). Continuate a usare fscommand()
per inviare messaggi a Flash Player (uso 1) e Director (uso 3).
Parametri
command:String — Una stringa trasmessa all'applicazione host per qualsiasi uso, o un comando trasmesso a Flash Player.
| |
args:String (default = " ") — Una stringa trasmessa all'applicazione host per qualsiasi uso, o un valore trasmesso a Flash Player.
|
Genera
Error — Se la funzione non viene chiamata in seguito a un'azione dell'utente, come un evento mouse o tastiera.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
fscommand()
può essere utilizzato per impostare in Flash Player la modalità a schermo intero senza consentire la modifica in scala. Nello stage viene quindi aggiunta una casella arancione mediante draw()
. In draw()
, viene aggiunto un listener di eventi click
denominato clickHandler()
, che risponde agli eventi click
richiedendo a Flash Player di uscire dalla modalità mediante un'altra chiamata a fscommand().
Nota: questo esempio deve essere eseguito nella versione autonoma di Flash Player e non in un browser 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); } } }
Tue Jun 12 2018, 03:02 PM Z