Archiv pro 28. November 2007

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


Kalendář

November 2007
M T W T F S S
« Oct   Dec »
 1234
567891011
12131415161718
19202122232425
2627282930  

Články podle měsíců

Kategorie

Locations of visitors to this page