Články z kategorie 'Flash'

Rozměry objektů ve Flashi

V dnešním článku bych chtěl upozornit na pár špeků, které se týkají práce s objekty ve Flashi – přesněji s nastavováním jejich rozměrů.

Když jsme se rozhodli v Gopasu přejít při vytváření e-learningu z platformy Macromedia Director na Adobe Flash tak trochu jsme tušili, že to nebude uplně jednoduchá cesta. Museli jsme řešit spousty špeků, které často nemají řešení, ke kterému se dá dospět nějakou rozumnou úvahou. Kromě práce s textfieldy je lahůdkou práce s objekty.

V našich e-learningových lekcích často používáme shapy – přesněji řečeno objekty vytvoření pomocí Rectangle tool. Pomocí JSFL si vytvoříme knihovní prvek s danými vlastnostmi (barva výplně, barva a šířka okraje) a ten pak umísťujeme do stage – měníme pouze umístění a rozměry instance.

Předevčírem jsem v našem interním buglistu našel od vývojářů tuto poznámku – Shapy jsou umístěny o několik pixelů mimo, jsou menší. Po ověření jejich tvrzení jsem začal hledat chybu ve svém kódu…ale bez výsledku. Vyzkoušel jsem několik způsobů pro vytváření instancí shapů ve stagi, ale výsledek byl stále stejný – špatné rozměry. Shapy se zobrazovaly menší – a to i o několik desítek pixelů. Google taky nepomohl, ale pak jsem po několika hodinách laborování našel řešení – shapy je nutné udělat hodně velké. Šířka i výška knihovního prvku musí být větší než šířka i výška instance na stagi. Pak jsou rozměry v pořádku. Flash umí správně rozměry pouze zmenšovat.

Na obrázku vidíte instance tří různých knihovních prvků, kterým je pomocí ActionScript nastavena stejná velikost – výška 90 pixelů, šířka 800 pixelů. Skutečnost je ovšem jiná – správné rozměry má pouze třetí objekt. Zdrojový soubor – freaky-flash-shape.fla (FLA, 25 KB).

Závěr

Samostatná kapitola je práce s JSFL – tam se Flash vykazuje odlišné chování ve Windows XP a ve Vistách. Zajímavým oříškem je též detekce zmáčknutých kláves – lze přidat posluchače pro detekci stračených kláves. Problém nastane při kombinaci Windows Vista + Internet Explorer 7 – kombinace kláves CTRL+A(C, V, X, Z…) do Flashe neprojde – resp. nedojde k události onKeyDown. Naštěstí i tohle jde různými workaroundy řešit – ale o tom někdy příště.

Flash je úžasná hračka, ale dokáže taky pěkně potrápit – nebýt nápadu se zvětšením rozměrům knihovních prvků lámu si s tím hlavu ještě teď.

Celý článek 3 komentářů 28. November 2007

Další krůček - Macromedia Flash 8 Exam

minulém článku jsem psal, že se se připravuji na další zkoušku – byla jí Macromedia Flash 8 Exam.

Musím přiznat, že složení této zkoušky pro mě bylo o dost snažší než v případě té sunovské. Dokazuje to i skóre 97% (1 chybná odpověď).

Flashem pracuji v Gopasu asi dva roky. Používáme ho jako běhové prostředí pro e-learningové kurzy.

Moje plány do nejbližší budoucnosti

V poslední době jsem prodělal několik pohovorů (např. ve firmách Hewlett-Packard nebo Avedya a zjistil jsem, že firmy mají zájem o lidi, kteří jsou seznámeni s pokročilejšími technologiemi z rodiny J2EE. Mluvím například o JMS a EJB. Takže moje self studium se bude ubírat tímto směrem.

Pomalu se začnu připravovat na zkoušku Sun Certified Web Component Developer for the Java 2 Platform, která se mi zdá podle přehledu požadavků velmi zajímavá.

A nakonec musím zmínit Maven. Tento buildovací nástroj se těší v posledních týdnech mezi českými javisty velkému zájmu (CZJUG – hvězdy září v Září, Co bych rád slyšel v září na CZJUG, Pozvánka: Maven – praktické nasazení a také e-mailová konference na konference@ja­va.cz).

Celý článek 7 komentářů 24. August 2007

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

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

Celý článek Přidat komentář 9. May 2007

Vývoj flashových aplikací v Eclipse IDE

Jednou z firem, pro které pracuju, je i společnost zabývající se e-learningem. Naše e-learningové kurzy jsme vyvíjeli pomocí Macromedia Directoru. Asi před rokem jsme se rozhodli, že přejdeme na Flash. V článku najdete návod na instalaci potřebných pluginů a dalších utilit pro vývoj flashových aplikací v Eclipse IDE.

Celý článek 1 komentář 1. January 2007


Kalendář

November 2024
M T W T F S S
« Jan    
 123
45678910
11121314151617
18192021222324
252627282930  

Články podle měsíců

Kategorie

Locations of visitors to this page