Magické JSFL - rychlé seznámení s rozšířením Flash IDE

9. May 2007

Dnešní článek bude pro ty, kdo programují v ActionScriptu a speciálně pak použíjí rozšíření flashe JSFL.

Co je JSFL

JSFL je rozšížení Macromedia Flashe, pomocí kterého píše můžete psát skripty, jejichž spuštěním se vykonávají operace přimo ve Flash IDE – tedy ne při runtimu SWF souborů, ale při jejich vývoji. API JSFL umožňuje vytvářet soubory podobně jako kdybyste je tvořili přímo ve Flash IDE.

Malý výčet možností JSFL:

  • možnost importovat objekty do knihovny
  • možnost vytvářet movieclipy (lze používat i naimportované objekty z knihovny)
  • lze stavět celou timelinu (přidávat framy i vrstvy)
  • do stage lze vkládat objekty z knihovny a nastavovat jim vlastnosti (lze vkládat i komponenty)
  • sestavené soubory lze exportovat
  • přidávat vlastní tlačítka do toolboxu

Z uvedených usecasů vyplývá, že lze například jednoduše spuštěním JSFL skriptu vytvořit SWF soubor, ve kterém budou naimportovány vaše fotografie a například i použity vaše komponenty.

Pokud máte například data v XML a chcete je převést do FLA souboru nebo dokonce přímo do SWF stačí vám napsat XML to JSFL convertor a o převod JSFL do SWF se již postará Flash IDE. Proces, který jsem teď popsal je velmi podobný tomu jak pracují JasperReports – zde je na začátku jrxml soubor, který se převede na předkompilovaný jasper soubor. Processingem jasper souboru (a nastavením modelu) dostaneme výsledný soubor – například PDF.

Nový soubor není nutné vytvářet od nuly. Můžete si otevřit už připravený template (s naimportovanými objekty knihovně) a pouze je částí nových dat doplnit.

Možnosti spouštění JSFL kódu

Existuje několik možností jak spouštět JSFL API.

Spuštění JSFL souboru

Můžete si napsat soubor, který obsahuje JSFL kód a uložit jej s koncovkou jsfl. Soubory s touto koncovkou jsou asociování s Flash IDE, takže když na něj poklepete ve vašem oblíbeném file manageru dojde k jejich spuštění.

Přímé zavolání JSFL kódu z ActionScriptu

Kdo čte pozorně narazil teď na věc které ho zarazila – mluvil jsem o tom, že JSFL má své místo během authoringu a ne při runtimu SWF souboru. Flash IDE umožňuje spouštět vlastní commandy – SWF soubory, které jsou umístěny ve speciálním adresáři. V případě Windows XP je to C:\Documents and Settings\USER_NA­ME\Local Settings\Data aplikací\Macro­media\Flash 8\en\Configura­tion\WindowSWF.

var numLibItems = MMExecute("fl.getDocumentDOM().library.items.length");
var message = numLibItems + " items in library";
MMExecute('fl.trace("' + message + '");');

Volání JSFL funkcí z ActionScriptu

Můžete si napsat knihovní JSFL funkce do jsfl souboru a pak je volat přímo z ActionScriptu.

Malá ukázka: Volání JSFL souboru přímo z ActionScript kódu

var result = MMExecute("fl.runScript("file:///C|/testScript.jsfl", "foo", "world");
");
var message = numLibItems + " items in library";
MMExecute('fl.trace("' + message + '");');

Volaná metoda v JSFL souboru:

function foo(str) {
    return "Hello " + str;
}

Pokud vynecháte název funkce a její parametry spustí se celý JSFL soubor.

V případě druhé i třetí možnost je použita funkce MMExecute. V případě embednutého volání JSFL kódu z ActionScriptu jste však velmi svázaní. Je to pomalé a nepřehledné. Switchuje se mezi dvěma kontexty. Volání metod uložených v exerních JSFL má tu výhodu, že je lze upravovat bez nutnosti znovu kompilovat SWF soubor, ze kterého jsou volány.

Ještě bych zmínil jednu nevýhodu – jako parametry JSFL funkcí můžete používat jenom primitives – čísla, řetězce a proměnné typu bool. Pokud chcete poslat něco složitějšího musíte si sami naimplementovat serializaci.

Funkce MMExecute vrací návratovou hodnotu volané funkce – ale opět pouze její „string representation“.

Nakonec ještě jedna důležitá maličkost – pro spouštění jsfl souborů musíte mít nainstalované Flash IDE.

Závěr

JSFL je mocný nástroj – umožňuje pomocí API přistupovat k Flash IDE. V současnosti spouštíme JSFL skripty, které mají přes 150 000 řádků a jejich provádění trvá více jak 20 minut (na nejvýkonnějších strojích). Výsledkem je SWF soubor, na který už nemusí lidská ruka sáhnout a který by klasickou (ruční) cestou trval desítky hodin.

Odkazy

Článek patří do kategorie: Flash

Přidat komentář

Povinné

Povinné, skryté

Security Image Povinné
Opište text z obrázku

Povolené HTML značky:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Odkazovat na tento článek  |  Přihlásit se k odběru těchto komentářů přes RSS Feed


Kalendář

August 2017
M T W T F S S
« Jan    
 123456
78910111213
14151617181920
21222324252627
28293031  

Poslední články

Locations of visitors to this page