Het pakket flash.system bevat één functie op pakketniveau,
fscommand()
, die de communicatie tussen een SWF-bestand en de container vergemakkelijkt.Functie | Gedefinieerd door | ||
---|---|---|---|
Laat het SWF-bestand communiceren met Flash Player of met het programma dat als host voor Flash Player fungeert, zoals een webbrowser. | flash.system |
fscommand | () | functie |
public function fscommand(command:String, args:String = ""):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Laat het SWF-bestand communiceren met Flash Player of met het programma dat als host voor Flash Player fungeert, zoals een webbrowser. U kunt ook de functie fscommand()
gebruiken om berichten aan Director door te geven of aan Visual Basic, Visual C++ en andere programma’s die als host voor ActiveX-besturingselementen kunnen fungeren.
Met de functie fscommand()
kan een SWF-bestand met een script op een webpagina communiceren. Scripttoegang wordt echter door de instelling allowScriptAccess
van de webpagina beheerd. (U kunt dit kenmerk in de HTML-code instellen die het SWF-bestand insluit, bijvoorbeeld in de tag PARAM
voor Internet Explorer of de tag EMBED
voor Netscape.)
- Wanneer
allowScriptAccess
is ingesteld opsameDomain
(de standaardwaarde), wordt het gebruik van scripts alleen toegestaan door SWF-bestanden die zich in hetzelfde domein als de webpagina bevinden. - Wanneer
allowScriptAccess
is ingesteld opalways
, kan het SWF-bestand communiceren met de HTML-pagina waarin het is ingesloten, zelfs als het SWF-bestand afkomstig is van een ander domein dan de HTML-pagina. - Wanneer
allowScriptAccess
is ingesteld opnever
, kan het SWF-bestand niet communiceren met een HTML-pagina. Het toepassen van deze waarde wordt afgewezen en zou ook niet nodig hoeven te zijn als u geen niet-vertrouwde SWF-bestanden vanuit uw eigen domein beschikbaar wilt stellen. Als u wel niet-vertrouwde SWF-bestanden beschikbaar moet stellen, raadt Adobe u aan een afzonderlijk subdomein te maken en alle niet-vertrouwde inhoud daar te plaatsen.
U kunt voorkomen dat een SWF-bestand deze methode gebruikt door de parameter allowNetworking
in te stellen van de tags object
en embed
op de HTML-pagina die de SWF-inhoud bevat.
De functie fscommand()
wordt niet toegestaan wanneer het aanroepende SWF-bestand zich in de sandbox Lokaal-met-bestandssysteem of Lokaal-met-netwerk bevindt en de HTML-pagina die het SWF-bestand bevat zich in een niet-vertrouwde sandbox bevindt.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Gebruik 1: u moet vooraf gedefinieerde opdrachten en parameters gebruiken wanneer u fscommand()
wilt gebruiken om een bericht naar Flash Player te verzenden. De volgende tabel bevat de waarden die u voor de parameters command
en args
van de functie fscommand()
kunt opgeven. Deze waarden beheren SWF-bestanden die in Flash Player worden afgespeeld, inclusief projectoren. (Een projector is een SWF-bestand dat is opgeslagen in een indeling die als een zelfstandige toepassing kan worden uitgevoerd. Met andere woorden, zonder Flash Player.)
Opdracht | Parameter (args) | Doel |
---|---|---|
quit | Geen | Sluit de projector. |
fullscreen | true of false | Wanneer true wordt opgegeven, wordt in Flash Player de modus Volledig scherm geactiveerd. Wanneer false wordt opgegeven, keert de speler terug naar de normale menuweergave. |
allowscale | true of false | Wanneer false wordt opgegeven, wordt de speler zo ingesteld dat het SWF-bestand altijd wordt getekend op de oorspronkelijke grootte en nooit wordt geschaald. Wanneer true wordt gebruikt, wordt de grootte van het SWF-bestand gewijzigd in 100% van de speler. |
showmenu | true of false | Wanneer true wordt opgegeven, wordt de volledige set contextmenu-items weergegeven. Wanneer false wordt opgegeven, worden alle contextmenu-items verborgen, behalve Settings en About Flash Player. |
exec | Pad naar toepassing | Voert een toepassing uit vanuit de projector. |
trapallkeys | true of false | Wanneer true wordt opgegeven, worden alle toetsgebeurtenissen, inclusief sneltoetsen, naar de handler onClipEvent(keyDown/keyUp) in Flash Player verzonden. |
Niet alle opdrachten in de tabel zijn in alle toepassingen beschikbaar:
- Geen enkele toepassing is beschikbaar in webspelers.
- Alle opdrachten zijn beschikbaar in zelfstandige projectortoepassingen.
- AIR-toepassingen moeten de flash.desktop.NativeApplication-klasse gebruiken voor vergelijkbare functies, bijvoorbeeld
NativeApplication.nativeApplication.exit()
in plaats vanfscommand("quit")
. - Alleen
allowscale
enexec
zijn beschikbaar in testfilmspelers.
De opdracht exec
kan alleen de tekens A-Z, a-z, 0-9, punt (.) en het onderstrepingsteken (_) bevatten. De opdracht exec
wordt alleen in de submap fscommand uitgevoerd. Met andere woorden, wanneer u de opdracht exec
gebruikt om een toepassing aan te roepen, moet de toepassing zich in een submap met de naam fscommand bevinden. De opdracht exec
werkt alleen vanuit een Flash-projectorbestand.
Gebruik 2: wanneer u fscommand()
wilt gebruiken om een bericht te verzenden naar een scripttaal zoals JavaScript in een webbrowser, kunt u twee willekeurige parameters in de parameters command
en args
doorgeven. Deze parameters kunnen tekenreeksen of expressies zijn en worden gebruikt in een JavaScript-functie die de functie fscommand()
verwerkt of afvangt.
In een webbrowser roept fscommand()
de JavaScript-functie moviename_DoFScommand
aan die zich op de webpagina bevindt die het SWF-bestand bevat. Geef voor moviename
de naam op van het Flash-object dat u wilt gebruiken voor het kenmerk NAME
van de tag EMBED
of de eigenschap ID van de tag OBJECT
. Wanneer u aan het SWF-bestand de naam myMovie toewijst, wordt de JavaScript-functie myMovie_DoFScommand
aangeroepen.
Stel op de webpagina die het SWF-bestand bevat het kenmerk allowScriptAccess
in zodat het bestand de webpagina wel of niet kan benaderen, zoals hierboven beschreven. (U kunt dit kenmerk in de HTML-code instellen die het SWF-bestand insluit, bijvoorbeeld in de tag PARAM
voor Internet Explorer of de tag EMBED
voor Netscape.)
Als u in Flash Player 10 en hoger tijdens uitvoering in een browser deze methode via programmacode gebruikt om een pop-upvenster te openen, lukt dit mogelijk niet. Verschillende browsers (en browserconfiguraties) blokkeren pop-upvensters namelijk vaak en er kan dus niet worden gegarandeerd dat het venster daadwerkelijk wordt weergegeven. De meeste kans op succes hebt u als u deze methode alleen gebruikt om een pop-upvenster te openen in code die wordt uitgevoerd als een direct resultaat van een gebruikersactie (zoals in een gebeurtenishandler voor een muisklik of het indrukken van een toets.)
Gebruik 3: de functie fscommand()
kan berichten naar Director verzenden (Macromedia Director van Adobe). Deze berichten worden via Lingo geïnterpreteerd (de scripttaal van Director) als tekenreeksen, gebeurtenissen of uitvoerbare Lingo-code. Wanneer een bericht een tekenreeks of een gebeurtenis is, moet u de Lingo-code schrijven om het bericht via de functie fscommand()
te ontvangen en een handeling in Director uit te voeren. Raadpleeg voor meer informatie het Director Support Center op www.adobe.com/support/director/.
Gebruik 4: in Visual Basic, Visual C++ en andere programma’s die ActiveX-besturingselementen kunnen hosten, verzendt fscommand()
een VB-gebeurtenis met twee tekenreeksen die in de programmeertaal van de omgeving kunnen worden verwerkt. Gebruik voor meer informatie de trefwoorden ‘Flash method’ om te zoeken in het Flash Support Center op www.adobe.com/nl/support/flash/.
Opmerking:De klasse ExternalInterface biedt betere functionaliteit voor communicatie tussen JavaScript en ActionScript (gebruik 2) en tussen ActionScript en VisualBasic, Visual C++ of andere programma’s die ActiveX-besturingselementen kunnen hosten (gebruik 4). U moet fscommand()
blijven gebruiken voor het verzenden van berichten naar Flash Player (gebruik 1) en Director (gebruik 3).
Parameters
command:String — Een tekenreeks die aan de hosttoepassing is doorgegeven voor willekeurig gebruik of voor een opdracht die aan Flash Player is doorgegeven.
| |
args:String (default = " ") — Een tekenreeks die aan de hosttoepassing is doorgegeven voor willekeurig gebruik of een waarde die aan Flash Player is doorgegeven.
|
Gegenereerde uitzondering
Error — Als de functie niet wordt aangeroepen in reactie op een gebruikersactie, zoals het klikken met de muis of het indrukken van een toets.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
fscommand()
kunt gebruiken om Flash Player de opdracht te geven de modus Volledig scherm te activeren en schalen niet toe te staan. Er wordt vervolgens een oranje vak aan het werkgebied toegevoegd met draw()
. In draw()
wordt een gebeurtenislistener click
met de naam clickHandler()
toegevoegd die op gebeurtenissen click
reageert door Flash Player te sluiten door fscommand()
nogmaals aan te roepen.
Opmerking: dit voorbeeld moet in de zelfstandige versie van Flash Player worden uitgevoerd en niet in een webbrowser.
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); } } }
Wed Jun 13 2018, 11:59 AM Z