Dnes se podíváme opět na několik vizuálních komponent. Nejprve si ukážeme jednoduchou simulaci semaforu a druhá komponenta nám zase poslouží k vytváření animací.
AMHTrafficLBMP a AMHTrafficLVecStd
Jedná se o dvě velice jednoduché vizuální komponenty, které simulují semafor. Jejich autorem je Adrian M. Hanslik. Máte na výběr mezi komponentou, která zobrazí semafor jako posloupnost jednotlivých obrázků ve formátu BMP – tedy každý stav semaforu má vlastní obrázek a mezi nimi komponenta přepíná. To má výhodu v tom, že můžete použít teoreticky libovolné, a tedy i vámi vytvořené obrázky. Nevýhodou však je, že takový semafor má pouze jeden jediný rozměr, který je dán právě použitými obrázky.
Tento problém řeší druhá komponenta, která jednotlivé stavy semaforu kreslí sama jako vektorovou grafiku, a tak je rozměr libovolný. Vizuálně má však tento semaforek o něco horší kvalitu než obrázky uložené v BMP, a proto se musíte rozhodnout, která varianta je pro vás použitelnější.
www |
verze: 1.0 |
Delphi: 1-6 |
C++ Builder: ? |
TAnimated
I druhá dnešní komponenta bude vizuální. Jejím autorem je L. David Baldwin, a jak již samotný název napovídá, bude mít něco společného s animací. Oč se tedy jedná konkrétně?
Představte si například, že chcete animovat nějaký efekt – například postupně se rozpadající nápis. S použitím této komponenty se vám práce o něco usnadní, i když stejně zůstane hlavní dřina na vás. Celá věc totiž funguje tak, že si nejprve nakreslíte jednotlivé fáze daného efektu políčko po políčku jako na filmu. Každý takový obrázek musí mít stejné rozměry a pochopitelně čím více jich vytvoříte, tím plynulejší animace bude. Všechna tato políčka výsledného "filmu" poté musíte uložit do jednoho BMP souboru pěkně vedle sebe, takže výsledný obrázek nakonec skutečně připomíná film. Šířka takového obrázku bude násobkem šířky jednotlivých políček a jejich počtu, takže to může vypadat jako docela dlouhá nudle. Tím ale vaše práce končí a o všechno ostatní se postará již komponenta.
Tento obrázek tedy načtete do komponenty a můžete začít animovat. K tomu slouží několik vlastností a metod – teď si je v krátkosti popíšeme:
Frame: Vlastnost, která udává právě aktuální frame (tedy políčko) vaší animace. Můžete jej libovolně měnit (pochopitelně v mezích délky vaší animace), a to jak v době běhu aplikace, tak během návrhu.
FrameCount: Udává, kolik políček celkem vaše animace má.
Interval: Tato položka určuje časovou prodlevu mezi dvěma políčky v milisekundách. Pokud zde nastavíte nulovou hodnotu, říkáte tím komponentě, že si budete políčka měnit sami prostřednictvím vlastnosti Frame.
Loop: Jak napovídá název, jedná se o logickou proměnnou, která určuje, zda bude animace přehrávána stále dokola, nebo se ukončí po zobrazení posledního políčka.
Play: Opět logická proměnná, jejímž nastavením na True vlastně spustíte celou animaci.
Reverse: A ještě jedna logická proměnná, která tentokrát určuje, zda bude animace přehrávána normálně či pozpátku.
TransparentColor: Velmi užitečná vlastnost, pomocí které můžete nastavit průhlednou barvu, a tak vaše animace může vypadat opravdu hezky bez nějakých rušivých podkladů.
Kromě těchto vlastností má komponenta i událost OnChangeFrame, která je vyvolána při změně framu. Toho lze využít například (jak se uvádí v nápovědě) k synchronizaci animace se zvuky. Příslušný zvuk se tak spustí přesně při zobrazení daného framu.
A to je vlastně vše. Netvrdím, že pomocí této komponenty vytvoříte nějaké úžasné animace, ale obsahuje vše potřebné pro jednoduchou práci a výsledný efekt bude spíš záviset na vašich uměleckých schopnostech při tvorbě jednotlivých políček animace. Pokud si však dáte tu práci a celé dílko navíc vhodně ozvučíte, jistě se nebudete muset za svůj výtvor stydět.
Komponenta je dodávána společně s ukázkovým projektem, takže některé základní postupy se můžete naučit přímo od autora. Zajímavé je však to, že na domovské stránce autora, která je uvedena jak v popisu komponenty tak v nápovědě, jsem komponentu nenašel. Nevím, jestli se jedná o natolik starý projekt, že se autor soustředil již na jiné věci, a nebo jen neumím hledat, ale každopádně uvedu jak odkaz na stránku autora (kde najdete mimochodem další zajímavé komponenty), tak odkaz pro download.
www, download |
verze: 1.02 |
Delphi: ? (testováno bez problému na verzi 4) |
C++ Builder: ? |