|
Bronnen voor Flash CS4 |
Werken met de JavaScript-APIMet de Flash JavaScript-API kunt u scripts schrijven om verschillende acties uit te voeren in de ontwerpomgeving van Flash (terwijl het programma Flash door een gebruiker is geopend). Deze functionaliteit is anders dan de ActionScript-taal, waarmee u scripts kunt schrijven om acties uit te voeren in de Flash Player-omgeving (terwijl een SWF-bestand wordt afgespeeld). Deze functionaliteit is ook anders dan JavaScript-opdrachten, die u kunt gebruiken op pagina's die in een webbrowser worden weergegeven. Met de JavaScript-API kunt u Flash-toepassingsscripts schrijven om het ontwerpproces mede te stroomlijnen. U kunt bijvoorbeeld scripts schrijven om routinetaken te automatiseren of om aangepaste gereedschappen aan het deelvenster Gereedschappen toe te voegen. De Flash JavaScript-API is gemaakt om te lijken op de Adobe® Dreamweaver® en Adobe® Fireworks® JavaScript-API (die zijn gemaakt op basis van de Netscape JavaScript-API). De Flash JavaScript-API is gebaseerd op een Document Object Model (DOM), waarmee Flash-documenten met behulp van JavaScript-objecten kunnen worden benaderd. De Flash JavaScript-API bevat alle elementen van de Netscape JavaScript-API, plus de Flash DOM. Deze extra objecten en de bijbehorende methoden en eigenschappen worden in dit document beschreven. U kunt alle elementen van de oorspronkelijke JavaScript-taal in een Flash-script gebruiken, maar alleen de elementen die in de context van een Flash-document zinnig zijn, hebben een effect. De JavaScript-API bevat ook methoden waarmee u uitbreidbaarheid kunt implementeren met behulp van een combinatie van JavaScript en eigen code in C. Zie Uitbreidbaarheid in C voor meer informatie. De JavaScript-interpreter in Flash is de Mozilla SpiderMonkey-engine, versie 1.5, die op het web beschikbaar is op www.mozilla.org/js/spidermonkey/. SpiderMonkey is een van de twee referentie-implementaties van de JavaScript-taal die door Mozilla.org is ontwikkeld. Dit is dezelfde engine die in de browser Mozilla is ingesloten. SpiderMonkey implementeert de kern-JavaScript-taal, zoals gedefinieerd in ECMAScript (ECMA-262) Edition 3 Language Specification en voldoet volledig aan de specificatie. Alleen de browserspecifieke hostobjecten die geen deel uitmaken van de specificatie ECMA-262, worden niet ondersteund. Zo wordt in veel JavaScript-naslaggidsen onderscheid gemaakt tussen kern-JavaScript en client-JavaScript (browsergerelateerd). Alleen kern-JavaScript is van toepassing op de Flash JavaScript-interpreter. JSFL-bestanden makenU kunt Adobe Flash CS4 Professional of de teksteditor van uw voorkeur gebruiken om Flash JavaScript-bestanden (JSFL) te schrijven. Als u Flash gebruikt, hebben deze bestanden standaard de extensie .jsfl. Als u een script wilt schrijven, selecteert u Bestand > Nieuw > Flash JavaScript-bestand. U kunt ook een JSFL-bestand maken door opdrachten in het deelvenster Historie te selecteren. Klik vervolgens op de knop Opslaan in het deelvenster Historie of selecteer de opdracht Opslaan als in het deelvenstermenu. Het opdrachtbestand (JSFL) wordt opgeslagen in de map met opdrachten (zie JSFL-bestanden opslaan). U kunt het bestand vervolgens op dezelfde manier openen en bewerken als elk scriptbestand. Het deelvenster Historie bevat nog enkele nuttige opties. U kunt geselecteerde opdrachten naar het Klembord kopiëren en u kunt JavaScript-opdrachten weergeven die zijn gegenereerd terwijl u in Flash werkt. JSFL-bestanden opslaanU kunt JSFL-scripts beschikbaar houden in de ontwerpomgeving van Flash door deze in een van de mappen in de configuratiemap op te slaan. Standaard kunt u de configuratiemap hier vinden:
Als u de configuratiemap wilt zoeken, gebruikt u fl.configDirectory of fl.configURI, zoals in het volgende voorbeeld: // store directory to a variable var configDir = fl.configDirectory; // display directory in the Output panel fl.trace(fl.configDirectory); In de configuratiemap kunnen de volgende mappen scripts bevatten die u in de ontwerpomgeving kunt gebruiken: Behaviors (om gedrag in de gebruikersinterface te ondersteunen); Commands (voor scripts die in het menu Opdrachten verschijnen); JavaScript (voor scripts die door Script Assist worden gebruikt om de besturingselementen voor gebruikersinterfaces te vullen); Tools (voor uitbreidbare gereedschappen in het deelvenster Gereedschappen) en WindowSWF (voor deelvensters die in het menu Windows worden weergegeven). In dit document worden de scripts beschreven die worden gebruikt voor opdrachten en gereedschappen. Als u een script in de map Commands bewerkt, is het nieuwe script direct beschikbaar in Flash. Als u een script voor een uitbreidbaar gereedschap bewerkt, sluit u Flash en start u het opnieuw, of gebruikt u de opdracht fl.reloadTools() Als u echter een script hebt gebruikt om een uitbreidbaar gereedschap aan het deelvenster Gereedschappen toe te voegen en udat script vervolgens bewerkt , moet u het gereedschap van het deelvenster verwijderen en weer toevoegen, of Flash afsluiten en opnieuw opstarten. Het gewijzigde gereedschap is dan beschikbaar. U kunt opdracht- en gereedschapsbestanden op twee locaties opslaan, zodat deze in de ontwerpomgeving te gebruiken zijn.
Als een JSFL-bestand andere bestanden heeft die erbij horen, zoals XML-bestanden, slaat u deze in dezelfde map op als het JSFL-bestand. Scripts uitvoerenU kunt scripts op verschillende manieren uitvoeren. In dit gedeelte worden de meest gebruikte manieren beschreven. Een script uitvoeren dat u nu bekijkt of bewerkt:
Met deze optie kunt u een script uitvoeren voordat u het hebt opgeslagen. Met deze optie kunt u ook een script uitvoeren als er geen FLA-bestanden geopend zijn. Ga als volgt te werk om een script uit te voeren dat in de opdrachtenmap is:
Ga als volgt te werk om een opdrachtscript uit te voeren dat niet in de opdrachtenmap is:
Een gereedschap aan het deelvenster Gereedschappen toevoegen dat is geïmplementeerd in een JSFL-bestand:
U kunt afzonderlijke JavaScript API-opdrachten aan ActionScript-bestanden toevoegen met behulp van de functie MMExecute(), die wordt beschreven in de Naslaggids voor ActionScript 3.0 en ActionScript 3.0-componenten. De functie MMExecute() heeft echter alleen effect wanneer deze wordt gebruikt in de context van een aangepast element van de gebruikersinterface, zoals een component Eigenschapcontrole of een SWF-deelvenster in de ontwerpomgeving. JavaScript API-opdrachten hebben geen effect in Flash Player of buiten de ontwerpomgeving, ook niet wanneer deze vanuit ActionScript worden aangeroepen. Een opdracht geven vanuit een ActionScript-script:
Een script uitvoeren vanaf de opdrachtregel in Windows:
Een script uitvoeren vanuit de “Terminal”-toepassing op de Macintosh:
|