1 / 41

Počítačová grafika 02

Počítačová grafika 02. Aplikace výpočetní techniky Mgr. Milan Randák. Umístění scriptů. vzhledem k evoluci systému (Adobe Flash CS2) se skripty zásadně umísťují do snímků časové osy ovládací prvky na ploše (tlačítka) umisťujeme do samostatné vrstvy

hafwen
Download Presentation

Počítačová grafika 02

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Počítačová grafika 02 Aplikace výpočetní techniky Mgr. Milan Randák

  2. Umístění scriptů • vzhledem k evoluci systému (Adobe Flash CS2) se skripty zásadně umísťují do snímků časové osy • ovládací prvky na ploše (tlačítka) umisťujeme do samostatné vrstvy • scripty nejlépe umisťujeme do časové osy

  3. Umístění scriptů • ovládací prvky pojmenujeme (dole v Property inspektoru) • scripty jsou zakončeny středníkem • vetší úseky kódu (funkce) se oddělují složenými závorkami

  4. struktura scriptu: vzad.onRelease = function () po uvolnění tlačítka s názvem „vzad“ se provede funkce nextFrame() – přechod na další snímek prevFrame() – přechod na předchozí snímek gotoAndStop (10) – přejde a zastaví se na snímku 10 script na ovládání časové osy

  5. script na ovládání časové osy • gotoAndStop (‚konec‘) – přejde na snímek pojmenovaný v Property inspektoru ‚konec‘ (u pojmenovaného snímku se objeví na časové ose praporek)

  6. stavy tlačítka, scripty pro časovou osu

  7. vlastnosti MovieClipů • všechny vlastnosti, které jsme nastavovali v Property inspektoru, pomocí panelu Transform a Align lze nastavit pomocí scriptů

  8. vlastnosti MovieClipů • jedná se především o tyto vlastnosti – velikost, rotace, pozice x a y souřadnice, x-škála a y-škála (v procentech), průhlednost

  9. vlastnosti MovieClipů • pojmenujeme MovieClip na ploše (v Property inspektoru) a zadáváme vlastnosti pomocí scriptů • můžeme dynamicky a interaktivně ovlivňovat prezentace apod. • pomocí tlačítek např. můžeme posouvat objekty, rotovat, měnit průhlednost

  10. vlastnosti MovieClipů

  11. Zpracování událostí • Předpokládejme, žechcemevytvořittlačítko Enter - napříkladuživatelněco napíše do vstupního pole, podokončeníklepnenatlačítko Enter, a pak se text zobrazí ve výstupním pol.

  12. Zpracování událostí • Co potřebujeme, je nějakýzpůsob, jakzjistit, žeuživatelkliknulnatlačítkoa nějakýzpůsobjakošetřit co dělat, když se totostalo…

  13. ActionScript a události • KódjazykaActionScript je proveden, jakmiledojde k události: například, kdy je načtenfilmovýklip, kdyžvstoupilklíčovýsnímeknačasovéosenebokdyžuživatelklepnenatlačítko.

  14. ActionScript a události • Událost můžebýtspuštěnauživatelemnebo v systému. Uživateléklikajínatlačítkamyši a tisknou klávesy; systémspustíudálosti, pokudjsousplněnyurčitépodmínkynebodokončeny určité procesy (např. soubor SWF senačte, časováosadosáhneurčitéhosnímku…).

  15. ActionScript a události • Dojde-li k události, musíme napsatobslužnourutinuudálosti(eventhandler), která bude reagovatnaudálostiakcí.

  16. ActionScript a události • Připsaníkódupro zpracováníudálostí, existujítřidůležitéprvky, kteréchceteidentifikovat: • události • zdrojudálostí • odezva

  17. ActionScript a události Zdrojudálosti: • kterýobjekt je ten který vyvolaludálost? • Napříkladkteré tlačítko bylo stisknuto, nebokterýobjekt Loader načítá obrázek? • Zdrojudálosti je známýtakéjakocíludálosti, protože je to objekt, na který je zaměřen Flash Player (ve kterém událost vlastně nastává).

  18. ActionScript a události Událost: • co je ta věc, která se stane, na kterouchcetereagovat? • To je důležitéstanovit, protožemnohoobjektůvyvolává současněněkolikudálostí. Odpověď: • jakékrokychceteprovádětkdyž k událostidojde?

  19. ActionScript a události • Kdykolibudete psát kód pro zpracováníudálostí, budeobsahovattytotřiprvky a kódbudemít tuto základnístrukturu (prvkytučnýmpísmemjsouzástupnésymboly, kterézměníte pro váškonkrétnípřípad.) function eventResponse(eventObject:EventType):void { // zde budou příkazy pro odezvu na událost. } eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);

  20. ActionScript a události • Zaprvémusímedefinovatfunkci, což je způsob, jakurčit, žechceteakceprovést v reakcinaudálost. • Dálezavoláme metoduaddEventListener() zdrojovéhoobjektu, v podstatě „napojení" funkcezadanéudálostitak, žekdyž k událostidojde, jsouprováděnypříkazy funkce.

  21. ActionScript a události • Funkceposkytujezpůsob, jakseskupit akce podjednímnázvem, který je jakobyzástupce k prováděníakcí.

  22. ActionScript a události • Kdyžchcetevytvořitfunkci pro zpracováníudálostí, musítezvolitnázev pro funkci (v tomtopřípadě je pojmenovanáeventResponse), a je nutnézadattakéjedenparametr (eventObject). • Specifikováníparametrufunkce je jakodeklarováníproměnné, takžemusíterovněžuvéstdatovýtypparametru.

  23. ActionScript a události • Prokaždouudálost je definována třída a datovýtyp, kterýzadátejakoparametrfunkce,a je vždy spojen s konkrétníudálostí, na kterouchcetereagovat. • Nakonec mezilevou a pravousloženouzávorku ({...}), zapišteinstrukce, kterémápočítačprovést, když k událostidojde.

  24. ActionScript a události • Jakmilezapíšetefunkcizpracováníudálostí, musítesdělitobjektuzdrojeudálosti (objekt, na kterém se událoststane – napříkladtlačítko), žemázavolat funkci určenou k této události

  25. ActionScript a události • To provedetezavolánímmetodyaddEventListener() tohotoobjektu (všechnyobjekty, kterémajíudálostimajítakémetoduaddEventListener()).

  26. ActionScript a události • MetodaaddEventListener() přebírádvaparametry: • názevurčitéudálosti, na kterouchcetereagovat. • názevfunkceodezvynaudálost.

  27. Popis procesuzpracováníudálosti • Co se stane, kdyžvytvoříteposluchačeudálosti? Podívejme se navytvořenífunkceposluchače, která se vyvolá při klepnutínaobjektnazvanýmyButton. • Takto by tentokódskutečněfungovatpokud je spuštěn v přehrávači Flash Player: function eventResponse(event:MouseEvent):void { //Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse);

  28. Popis procesuzpracováníudálosti • Když se soubor SWF načte, přehrávač Flash Player dávánavědomískutečnost, žeexistujefunkcepojmenovanáeventResponse(). Function eventResponse (event: MouseEvent):void { //actions performed in response to the event go here. } myButton.addEventListener(MouseEvent.CLICK, eventResponse);

  29. Popis procesuzpracováníudálosti • Přehrávač Flash Player pakspustíkód (konkrétně, řádkykódu, kterénejsouve funkci). V tomtopřípadě je to pouzejedenřádekkódu: zavolánímetodyaddEventListener() zdrojovéhoobjektuudálosti (pojmenovanýmyButton) a procházíeventResponsejakoparametr. Function eventResponse (event: MouseEvent):void { // Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse); myButton listeners: function1() function2()

  30. Popis procesuzpracováníudálosti • VnitřněmáobjektmyButtonseznamfunkcí, kterénaslouchajíjehoudálostem, takžekdyž je zavolánametodaaddEventListener(), myButtonuložífunkcieventResponse() do seznamuposluchačůudálostí. Function eventResponse (event: MouseEvent):void { // Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse); myButton listeners: function1() function2() eventResponse()

  31. Popis procesuzpracováníudálosti • V určitémokamžikuuživatelklepnenaobjektmyButton, událost click (identifikovánajakoMouseEvent.CLICK v kódu). V tom okamžikuse stane následující …

  32. Popis procesuzpracováníudálosti Přehrávač Flash Player vytvoříobjekt, instance třídypřidružené k tétoudálosti (v tomtopříkladuMouseEvent).

  33. Popis procesuzpracováníudálosti Pro mnohéudálosti to bude instance třídy Event; pro událostimyši to budeMouseEvent instance; a pro jinéudálosti to bude instance třídy, spojená s danouudálostí.

  34. Popis procesuzpracováníudálosti Tentoobjekt, který je vytvořen se označujejakoobjektudálosti, a obsahujeinformace o události, která se stala: jakýtypudálosti je to, kde se to stalo a dalšíspecifickéinformace, jsou-li k dispozici.

  35. Popis procesuzpracováníudálosti Function eventResponse (event: MouseEvent):void { // Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse); eventObject target:myButton type:mouseEvent.CLICK … myButton listeners: function1() function2() eventResponse()

  36. Popis procesuzpracováníudálosti Přehrávač Flash Player pakvyhledáposluchačeudálostíuloženév objektumyButton.

  37. Popis procesuzpracováníudálosti Projde tytofunkcejednupodruhé pomocívoláníkaždéfunkce a předáobjektudálostifunkcijakoparametr.

  38. Popis procesuzpracováníudálosti Vzhledem k tomu, žefunkceeventResponse() je jedním z posluchačůmyButton, jakosoučásttohotoprocesu Flash Player také zavoláfunkcieventResponse().

  39. Popis procesuzpracováníudálosti Function eventResponse (event: MouseEvent):void { // Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse); eventObject target:myButton type:mouseEvent.CLICK … myButton listeners: function1() function2() eventResponse()

  40. Popis procesuzpracováníudálosti • Kdyžje zavolánafunkceeventResponse(), kód v tétofunkci se spustí, takžejsouprováděnyspecifikovanéakce. Function eventResponse (event: MouseEvent):void { // Akce prováděné při zavolání funkce. } myButton.addEventListener(MouseEvent.CLICK, eventResponse); eventObject target:myButton type:mouseEvent.CLICK … myButton listeners: function1() function2() eventResponse()

More Related