Werken met de JavaScript-API



Met 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 maken

U 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.

Opdrachten van het deelvenster Historie naar het klembord kopiëren:

  1. Selecteer een of meer opdrachten in het deelvenster Historie.

  2. Ga als volgt te werk:

    • Klik op de knop Kopiëren.

    • Selecteer Stappen kopiëren in het deelvenstermenu.

JavaScript-opdrachten weergeven in het deelvenster Historie:

  • Selecteer Weergave > JavaScript in deelvenster in het deelvenstermenu.

JSFL-bestanden opslaan

U 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:

  • Windows® Vista™:

    opstartstation\Gebruikers\gebruikersnaam\Local Settings\Application Data\Adobe\Flash CS4\taal\Configuration\

  • Windows XP:

    opstartstation \Documents and Settings\ gebruikersnaam \Local Settings\Application Data\Adobe\Flash CS4\ taal \Configuration\

  • Mac OS® X:

    Macintosh HD/Users/ gebruikersnaam /Library/Application Support/Adobe/Flash CS4/ taal /Configuration/

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.

  • Voor scripts die als opties in het menu Opdrachten verschijnen, moet u het JSFL-bestand opslaan in de opdrachtenmap op de volgende locatie:

    Besturingssysteem.

    Locatie

    Windows Vista

    opstartstation\Gebruikers\gebruikersnaam\Local Settings\Application Data\Adobe\Flash CS4\taal\Configuration\Commands

    Windows XP

    opstartstation\Documents and Settings\gebruiker\Local Settings\Application Data\Adobe\Flash CS4\taal\Configuration\Commands

    Mac OS X

    Macintosh HD/Users/gebruikersnaam/Library/Application Support/Adobe/Flash CS4/taal/Configuration/Commands

  • Voor scripts die als uitbreidbare gereedschappen in het deelvenster Gereedschappen verschijnen, moet u het JSFL-bestand opslaan in de map Tools op de volgende locatie:

    Besturingssysteem.

    Locatie

    Windows Vista

    opstartstation\Gebruikers\gebruikersnaam\Local Settings\Application Data\Adobe\Flash CS4\taal\Configuration\Tools

    Windows XP

    opstartstation\Documents and Settings\gebruiker\Local Settings\Application Data\Adobe\Flash CS4\taal\Configuration\Tools

    Mac OS X

    Macintosh HD/Users/gebruikersnaam/Library/Application Support/Adobe/Flash CS4/taal/Configuration/Tools

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 uitvoeren

U kunt scripts op verschillende manieren uitvoeren. In dit gedeelte worden de meest gebruikte manieren beschreven.

Een script uitvoeren dat u nu bekijkt of bewerkt:

  • Klik met de rechtermuisknop (de knop Command op de Macintosh) en kies Script uitvoeren.

  • Klik op het pictogram Script uitvoeren op de werkbalk van het scriptvenster.

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:

  • Selecteer in de ontwerpomgeving Opdrachten > Scriptnaam.

  • Gebruik een sneltoets die u aan het script hebt toegewezen. Als u een sneltoets wilt toewijzen, gebruikt u Bewerken > Sneltoetsen en selecteert u Opdrachten menu Tekenen in het pop-upmenu Opdrachten. Vouw het knooppunt Commands in de menustructuur uit om een lijst met beschikbare scripts te zien.

Ga als volgt te werk om een opdrachtscript uit te voeren dat niet in de opdrachtenmap is:

  • Selecteer in de ontwerpomgeving Opdrachten > Opdracht uitvoeren en selecteer het script dat u wilt uitvoeren.

  • Gebruik vanuit het script de opdracht fl.runScript().

  • Dubbelklik in het bestandssysteem op het scriptbestand.

Een gereedschap aan het deelvenster Gereedschappen toevoegen dat is geïmplementeerd in een JSFL-bestand:

  1. Kopieer het JSFL-bestand voor het gereedschap en eventuele andere bijbehorende bestanden naar de map Tools (zie JSFL-bestanden opslaan).

  2. Selecteer Bewerken > Deelvenster Gereedschappen aanpassen (Windows) of Flash > Deelvenster Gereedschappen aanpassen (Macintosh).

  3. Voeg het gereedschap toe aan de lijst met beschikbare gereedschappen.

  4. Klik op OK.

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:

  • Gebruik de volgende syntaxis (u kunt verschillende opdrachten in één tekenreeks samenvoegen):

    MMExecute(Javascript command string);

    U kunt een script ook uitvoeren vanaf de opdrachtregel.

Een script uitvoeren vanaf de opdrachtregel in Windows:

  • Gebruik de volgende syntaxis (voeg waar nodig padinformatie toe):

    "flash.exe" myTestFile.jsfl

Een script uitvoeren vanuit de “Terminal”-toepassing op de Macintosh:

  • Gebruik de volgende syntaxis (voeg waar nodig padinformatie toe):

    osascript -e 'tell application "flash" to open alias "Mac OS X:Users:user:myTestFile.jsfl" '

    De opdracht osascript kan ook AppleScript uitvoeren in een bestand. U kunt bijvoorbeeld de volgende tekst in een bestand met de naam myScript opnemen:

    tell application "flash" 
    open alias "Mac OS X:Users:user:myTestFile.jsfl" 
    end tell

    Vervolgens kunt u deze opdracht gebruiken om het script uit te voeren:

    osascript myScript