PROJEKT 4. Elektronické haiku s trochou zábavy s mixováním zvuku. Aria Danika. společně s Chrisem Normanem, autorem Geishy



Podobné dokumenty
KAPITOLA 3. Následujícími způsoby může uživatel interaktivně ovládat animaci: Hraní a zastavování animace

X-Sign Basic Uživatelská příručka

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

Základní úlohy: vytvoření dokumentu...13

Metodika pro učitele

Office podrobný průvodce. Tomáš Šimek

Obsah. Úvodem 9 Komu je kniha určena 9 Co v knize najdete 9

Uživatelská příručka systému pro administrátory obcí a manuál pro správce portálu

Dálkové ovládání HP Mobile Remote Control (pouze u vybraných modelů) Uživatelská příručka

Kapitola 1: Úvodní strana PARTICLER

Uživatelská příručka

Sestavy dlaždic. Příprava dlaždic pro definici sestavy

Přechod z Google Apps na Office 365 pro firmy

VYTVÁŘENÍ A POUŽITÍ VZDĚLÁVACÍCH MODULŮ

Scéna> Layer1>(název např: modre). Pouze první snímek poskládat pět hvězdiček z knihovny hvezda1

Obsah. 1.1 Úvod do práce s autorským nástrojem ProAuthor 4

Univerzální program k výpočtu denního osvětlení dle ČSN

CADKON/TZB verze

Manuál programu HPSim

Program MediaLib. Program MediaLib slouží pro automatické skládání reklamních spotů do delších smyček.

Automatický přenos dat z terminálů BM-Finger

Ovladač Fiery Driver pro systém Mac OS

MLE2 a MLE8. Datalogery událostí

MS Wodrd pro pokročilé

UŽIVATELSKÁ PŘÍRUČKA INSTRUKTORE

Dálkové ovládání HP Mobile Remote Control (pouze u vybraných modelů) Uživatelská příručka

Word podrobný průvodce. Tomáš Šimek

Výukový materiál pro projekt Elektronická školička POWERPOINT

Plně hybridní videorekordér

Standardně máme zapnutý panel nástrojů Formátování a Standardní.

Uživatelský návod fotorámeček Bluetech 10,2

Objednávky OBX. Objednávkový systém určený k instalaci na PC u zákazníka pro tvorbu offline objednávek zboží

Co je nového v SolidWorks Enterprise PDM 2009

Okno Editoru nabízí v panelu nástrojů

Funkce Chytrý dotyk. verze 1.4. A-61629_cs

Bezpečnostní upozornění: Při používání elektrického zařízení dodržujte prosím následující zásady. Před použitím: Popis částí zařízení:

10. Editor databází dotazy a relace

1. ZKOPÍROVÁNÍ VZOROVÉHO GOOGLE

MS WINDOWS UŽIVATELÉ

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu

Další servery s elektronickým obsahem

Jestliže vše proběhlo tak, jak mělo, měl by výsledný materiál vypadat nějak takto:

ENÍ (ZALOŽENÍ) PREZENTACE...

Po nastudování této kapitoly byste měli být schopni:

Obsah. Úvod Co je KORG KONTROL Editor?... 2 Požadavky na systém... 2 Instalace... 3

MS PowerPoint Každá prezentace by se měla skládat ze tří klíčových částí: 1. Obsah

1 Stiskněte. Zapnutí zdroje zvuku. Zapnutí zdroje zvuku. Vypnutí režimu zvuku. Displej obrazovky ovládání zvuku

TouchPad a klávesnice

Budík se skrytou kamerou s nočním viděním

ZoomText 10.1 pro Windows. Dodatek k uživatelské příručce

Point of View TAB-P731N- Android 4.0 Tablet PC. Čeština. Obsah

Česká verze. Instalace hardwaru. Instalace ve Windows XP a Vista

WC004 - Nightvision Chatcam. Důležité! Nainstalujte ovladač před tím, než připojíte Sweex Nightvision Chatcam!

Macromedia Flash 8. Druhy animace: Snímek po snímku. F5 vložit snímek (insert frame) F6 vložit klíčový snímek (insert key frame)

NÁVOD K POUŽITÍ SET-TOP-BOXU ARRIS VIP 1113

Řízení spotřeby Uživatelská příručka

OBSAH. ÚVOD... 5 Advance Steel... 5 Nápověda INSTALACE... 7 Systémové požadavky... 7 Spuštění instalace... 7 SPUŠTĚNÍ ADVANCE STEELU...

INSTALAČNÍ MANUÁL pro aplikaci ihc-mirf

Děkujeme vám, že jste si zakoupili přístroj The Little Black Box. Níže uvedené rady by vám měly pomoci s jeho instalací.

WC053 - Foldable Hi-Def 1.3M Trackcam USB 2.0

Manuál k aplikaci WANAS

Napájení. Číslo dokumentu: V této příručce je popsán způsob napájení počítače. B ezen 2006

Ukázka knihy z internetového knihkupectví

Napájení. Uživatelská příručka

Technologie počítačových sítí 5. cvičení

POPIS PROSTŘEDÍ PROGRAMU GIMP 2. Barvy 2. Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6. Změna velikosti fotografie 6

Uživatelský manuál Radekce-Online.cz

Praktická cvičení Power Point

Pokročilé schopnosti OOP

Technické údaje Baterie: 2x AAA baterie, R03, UM4 Dosah: max. 7 m Není určeno pro 400 khz zařízení

Filr 2.0 Uživatelská příručka k aplikaci Filr Web. Únor 2016

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ

TECHNICKÉ PREZENTACE

Pokročilé uţivatelské školení

Generování výkresové dokumentace. Autodesk INVENTOR. Ing. Richard Strnka, 2012

Jak začít s osobním zvukovým systémem PSS

Tabulkové processory MS Excel (OpenOffice Calc)

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

František Hudek. červen ročník

OBSAH. ÚVOD...5 O Advance CADu...5 Kde nalézt informace...5 Použitím Online nápovědy...5. INSTALACE...6 Systémové požadavky...6 Začátek instalace...

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

Tvorba video-návodu k chemickému pokusu

TVORBA WEBOVÝCH STRÁNEK

Kontrola pravopisných chyb. Kontrola pravopisu Kontrola gramatiky Nastavení jazyka dokumentu Tezaurus Překlad textu

NAČÍTÁNÍ A OVLÁDÁNÍ OBSAHU FLASH

Uživatelská příručka k webové kameře HP Elite Autofocus

Uživatelská příručka pro Účetní / Vedoucí finanční účtárny. Projekt DMS modul Faktury

Obsah. Obsah balení. Hlavní funkce. Prvky a funkce. Základní ovládání. Uživatelské prostředí Obrazovka přehrávání Moje hudba Nastavení

Příklad bezprostředně navazuje na předchozí příklad č. 17. Bez zvládnutí příkladu č. 17 není možné pokračovat

Tvorba geometrického modelu a modelové sítě.

Alfa CD. Instalace. Nepřehlédněte! Co najdete v této příručce. Obsah. Vložte instalační CD a vyčkejte automatického spuštění úvodního

NÁVOD jak na webinář přes WizIQ

Uživatelská příručka pro program

Uživatelský manuál. A3600 DL ( Data Download)

Obsah. Začínáme Viditelné součásti programu Simulace. WOP Menu CNC řízení. CNC Programy. Exec. Grafické okno. Strojní panel. 3D Model.

českém Úvod Obsah krabice Specifikace Požadavky na systém SWEEX.COM IP002 Sweex USB Internet Phone

3 Formuláře a sestavy Příklad 2 Access 2010

1 Naši truhláři = tradice i budoucnost, CZ.1.07/1.1.34/

Helios RED a Internetový obchod

Návod na připojení do WiFi sítě eduroam Microsoft Windows 7

Transkript:

PROJEKT 4 Elektronické haiku s trochou zábavy s mixováním zvuku Aria Danika společně s Chrisem Normanem, autorem Geishy Aria Danika je interaktivní designérka a vývojářka, senior moderátorka ve Flashkit.com a členka Hypermedia Research Centre v Londýně. Moje rané zážitky a fascinace zvukovými hračkami a generováním hudby původ myšlenky na vytváření hudby pomocí interaktivního návrhu rozhraní sahá až k mému studiu na Hypermedia Research Centre v Londýně. Toto nadšení mi zůstalo dodnes a dovedlo mě k tomu, že jsem vytvořila několik sérií hravých zvukových aplikací ve Flashi a Directoru. Žánr hudebních hraček se rozvíjel díky zkušenostem designérů a tvůrců video her, kteří se pokoušeli docílit interaktivního zvukového zážitku. Dokázali to tak, že vytvořili jednoduché rozhraní, které umožňuje uživateli manipulovat se zvukem, vytvářet rytmy a vniknout do hravé tvorby hudební kompozice. V knize Noise: A Political Economy of Music, University of Minnesota Pr., 1985, autor Jacques Attali předpovídal zlom v kulturní spotřebě hudby, přechod od poslouchání (konzumování) nahrávek směrem k vlastní kompozici. S rozvojem technologií se interaktivní hudba nepochybně bude rozvíjet od statických představení do nových forem, estetiky a společných víceuživatelských zkušeností.

Funguje to následovně: V tomto projektu je rozhraní tvořeno mřížkou, která se vymezuje políčka (objekty), které jsou uloženy v Library a ovládány pomocí skriptu. Uživatel může aktivovat zvuky, přehrát a několikrát opakovat vybraný hudební záznam a upravit si hlasitost během přehrávání. Základ vašeho klipu bude mít dvě základní části. První z nich představuje poměrně obsáhlý kód, který se spustí hned jakmile se animace načte, inicializuje veškeré vlastnosti vašeho nástroje a vykreslí vizuální soubory na plochu. Druhá část má na starosti uživatelské rozhraní, přehrává zvuky a pracuje s přehrávací hlavou a nastavením hlasitosti. Tady jsou základní kroky tohoto projektu: 1. Vytvoření základní mřížky za použití ActionScriptu. 2. Tvorba dynamického mixovacího rozhraní a jeho umístění do středu plochy. 3. Dynamické propojení zvuků s rozhraním z knihovny pomocí odkazů na ID propojení. 4. Použití událostí animace (onpress()), jejích metod (crateemptymovieclip()) a metod objektu Sound (start()) k vytvoření interaktivního prostředí a ovladačů rozhraní, jako je přehrávací hlava a Sound Volume pro ovládání hlasitosti. Pro animaci mixující zvuk vytvoříme rozhraní a doplníme je o interaktivitu. Výsledkem je interaktivně se tvořící a neustále se měnící hudební skladba.

54 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku Příprava k práci Pro tento projekt budete muset udělat následující: 1. Stáhněte a rozbalte si 04.zip na váš pevný disk vašeho počítače. 2. Otevřete soundtoy_final.swf a podívejte se, jak bude výsledný projekt fungovat. Až skončíte, zavřete jej. grafiku hry jako geisha na pozadí (background), vycházející slunce (risingsun) a text haiku (text). Poznámka: Některé z nejlepších mixážních hraček nabízejí takovou abstrakci a jsou vybaveny natolik intuitivním rozhraním, že mohou být užívány bez instrukcí, což uživatele navnadí víc než holá technika, která by přebírala vizuální metafory z toho, co už uživatel zná (jako mixážní pulty, jukebox nebo přehrávač). Vytvoření základní mřížky Než začnete přidávat ovládání zvuku, musíte vytvořit různé prvky rozhraní, které vám umožní spolupracovat s touto hudební hrou. Začneme vytvořením mřížky: šachovnice několika políček (buněk), které zastupují zvuky, které máte uložené v knihovně (Library). Poznámka: Abyste vytvořili tento projekt tak flexibilní, jak to jenom bude možné, budete muset budovat všechno (kromě statických obrázků) dynamicky. Toto vám umožní přidat více zvuků nebo změnit vzhled nástroje a aplikovat je velmi jednoduše na celý klip. 1. Začneme deklarací všech proměnných. Otevřete soubor soundtoy_ start.fla z adresáře 04, který jste si zkopírovali na svůj harddisk během přípravné práce. Časová osa hlavního klipu má následující vrstvy: background, text, risingsun a script. Vrstvu script budete používat k uložení akcí. Spodní tři vrstvy obsahují veškerou statickou 2. Klikněte na vrstvu script a otevřete panel Actions. 3. K deklaraci proměnných přidejte do snímku 1 tento skript. Pokud se vám nechce kód psát, můžete ho převzít ze souboru 04-01.txt ze složky 04\Code listings. Výpis 4.1 onload = function(){ //konstanty _global.rows = 4; _global.columns = 5;

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 55 _global.boxwidth = 100; _global.boxheight = 40; _global.defaultboxalpha = 30; _global.speed = 5; //proměnné var x,y :Number = 0; var soundnum :Number = 0; Následující obrázek je ukázkou, jak by váš kód měl v tomto okamžiku vypadat. Máte tu rozepsané inicializační funkce, abyste mohli váš projekt budovat dynamicky. Pokud je spojíte s metodou onload animace, můžete si být jisti, že se konstrukce provede v prvním snímku souboru s příponou.swf a postup je pro uživatele transparentní. Následně vložíte proměnné, které definují parametry mřížky jako šířku, výšku, hodnotu průhlednosti alpha a rychlost pohybu přehrávací hlavy. Uvědomte si, že tyto hodnoty jsou konstantní a nemohou být měněny. _global.rows = 4; _global.columns = 5; _global.boxwidth = 100; _global.boxheight = 40; _global.defaultboxalpha = 30; _global.speed = 5; Díky definování těchto proměnných jako globální, budou tyto hodnoty přístupné každé časové ose ve vaší animaci a nemusíte používat volání s uvedením cesty typu _root nebo _parent. var x,y :Number = 0; var soundnum :Number = 0; Tyto tři proměnné jsou definovány jako typ Number, který zabrání, aby mohly být naplněny jiným typem hodnot (pokud by se tak stalo, oznámí se chyba). 4. Svou práci si uložte. Poznámka: Můžete také zkontrolovat syntax vašeho skriptu na této ploše, jak následně vidíte na přiloženém vzoru, abyste se ujistili, že tam nejsou chyby. Stačí kliknout na tlačítko Check Syntax v panelu Actions. Je to vhodná zkouška vašeho movie a kontrola kódu během rozvíjejícího se procesu.

56 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku Tvorba mixovacího rozhraní Pokud máte definované parametry mřížky (šířka, výška, počet sloupců a řádků), můžete nyní mřížku pomocí ActionScriptu vytvořit. K tomu potřebujete připojit instance boxmc, který je předpřipraven v Library, umístit je a vyrovnat na ploše. Dále je zapotřebí přiřadit animaci boxmc identifikátor propojení (Linkage ID) tak, abyste se k tomuto objektu dostali pomocí ActionScriptu. 1. Otevřete knihovnu Library (Ctrl+L). 2. Označte animaci boxmc. Klikněte pravým tlačítkem a vyberte příkaz Linkage. 3. V okně Linkage Properties zvolte Export for ActionScript. Identifikátor boxmc se vloží automaticky.

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 57 Klikněte na tlačítko OK a okno Linkage Properties se zavře. 4. Klikněte na první snímek vrstvy script a vložte následující skript hned za proměnnou soundnum a před uzavírací složenou závorku : Výpis 4.2 //vytvoření mřížky createemptymovieclip("moviegrid", 1); //nastavení hlasitosti moviegrid.soundvolume = 100; moviegrid.gridcolumncount = 0; //přidání jednotlivých políček //nastavení šířky a výšky for(x=0;x<rows;x++) { for(y=0;y<columns;y++) { var boxname:string = "boxmc"+x+"_"+y; moviegrid.attachmovie("boxmc",boxname,10*x+y); moviegrid[boxname]._width = BOXWIDTH; moviegrid[boxname]._height = BOXHEIGHT; moviegrid[boxname]._x = moviegrid[boxname]. width * y; moviegrid[boxname]._y = moviegrid[boxname]. height * x; moviegrid[boxname].boxlight._alpha = DEFAULTBOXALPHA; Následující obrázek ukazuje, jak by měl v tomto okamžiku váš kód vypadat. Tady jste si vytvořili kontejner animace se jménem moviegrid, takže teď můžete lépe určovat, kde se vaše dynamicky generovaná mřížka má na ploše objevit. Dále jsme nastavili počáteční hlasitost soundvolume na 100 a počáteční hodnotu počtu sloupců mřížky gridcolumncount na 0. Vložený cyklus nastaví vaši mřížku dynamicky, funguje nějak podobně jako psací stroj. Přidá nové políčko k pravé straně předchozí buňky, dokud nedosáhne počtu definovanému proměnnou COLUMNS (byla nastavena již dříve), a pak se přesune na další řadu a bude pokračovat, dokud nebude celá mřížka zkonstruována.

58 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 5. Vyzkoušejte základ své animace pomocí Ctrl+Enter. Mřížka je zatím vyrovnána k levému hornímu rohu animace, což není zrovna ideální, ale zatím s tím nic neuděláme. Dříve, než se pustíme do umisťování, přidáme ještě zvuky. 6. Svou práci si určitě uložte. Přidávání zvuků Teď, když máme vytvořenou mřížku, můžete přidat zvuky (všech 20 hodnot) z knihovny do každé buňky vytvořené mřížky. Předtím než začnete psát (nebo kopírovat) kód, je potřeba každému zvuku přidělit identifikátor propojení Linkage ID. 1. Otevřete adresář sounds v Library. 2. Zvolte první položku ARIA_S1.MP3. 3. Kliknutím pravého tlačítka otevřete kontextovou nabídku a zvolte příkaz Linkage. 4. V okně Linkage Properties vyberte Export pro ActionScript. 5. Do pole Identifier napište: sound0.

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 59 6. Kroky 3 5 opakujte pro zbývajících 19 zvuků v knihovně, přičemž ARIA_S2.MP3 má identifikátor sound1, ARIA_S3.MP3 má identifikátor sound2 a tak dále. 7. Zvolte vrstvu script (hlavní animace). Klikněte na snímek 1. 8. Hned za kód moviegrid a před poslední vložte tento kód: Výpis 4.3 //přidání zvuků moviegrid[boxname].sound = new Sound(); moviegrid[boxname].soundnum = soundnum; moviegrid[boxname].sound.attachsound("sound"+ soundnum); soundnum++; Vaše akce pro tento snímek budou nyní vypadat takto: onload = function(){ //konstanty _global.rows = 4; _global.columns = 5; _global.boxwidth = 100; _global.boxheight = 40; _global.defaultboxalpha = 30; _global.speed = 5; //proměnné var x,y :Number = 0; var soundnum :Number = 0; //vytvoření mřížky createemptymovieclip( moviegrid, 1); //nastavení hlasitosti moviegrid.soundvolume = 100; moviegrid.gridcolumncount = 0; //přidání políček a nastavení jejich šířky a výšky for(x=0;x<rows;x++) { for(y=0;y<columns;y++) { var boxname:string = boxmc +x+ _ +y; moviegrid.attachmovie( boxmc,boxname,10*x+y); moviegrid[boxname]._width = BOXWIDTH; moviegrid[boxname]._height = BOXHEIGHT; moviegrid[boxname]._x = moviegrid[boxname]._width * y; moviegrid[boxname]._y = moviegrid[boxname]._height * x; moviegrid[boxname].boxlight._alpha = DEFAULTBOXALPHA; //přidání zvuků moviegrid[boxname].sound = new Sound(); moviegrid[boxname].soundnum = soundnum; moviegrid[boxname].sound.attachsound( sound + soundnum); soundnum++; V každém průchodu cyklem bude vytvořena instance boxmc animačního klipu (z knihovny animace) jako jeden z prvků mřížky moviegrid, umístěna na plochu a bude jí dáno jméno symbolu a označení podle její řady a sloupce. Poté, co bude instance políčka umístěna na ploše, vložíte do něj nový zvukový objekt ( sound) a pomocí metody attachsound() mu přiřadíte jeden ze zvuků z knihovny. (Tyto zvuky jsme v předchozím pojmenovali sound0 sound19.) Když používáte objekty sound, nemusíte přetahovat zvuky z knihovny na plochu a můžete využít metody a vlastnosti objektu sound k manipulaci s vašimi zvuky.

60 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku projekt si vytvoříte vlastní klip přehrávací hlavy, tlačítko PLAY/STOP, a ovladač hlasitosti. Než začnete připravovat každý z těchto prvků, budete potřebovat přidat nějaké akce do boxmc, které by dokázaly přehrát přiřazený zvuk a adekvátně přizpůsobit transparentnost (vlastnost _alpha) jednotlivých buněk mřížky. 1. Klikněte dvojitě na klip boxmc v Library, abyste se dostali do editovacího módu symbolu. Instance symbolu BoxMC má přiřazeno jméno boxlight (pokud byste chtěli využívat rad tlačítko Show Code Hint bylo by třeba použít název s koncovkou _mc). Nakonec zvětšíte o 1 proměnnou soundnum (kterou jsme inicializovali na začátku skriptu a která slouží jako čítač zvuků), takže zvuky se přidávají v pořadí dle čísel. Zvuky budou do mřížky vloženy dle následujícího schematu: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 9. Svou práci si uložte. Skriptování hudebních políček Nyní se můžete soustředit na přidávání prvků rozhraní, které uživateli umožní zacházet se zvukovými políčky a mixovat zvuky. Pro tento 2. Ve vrstvě script klikněte na snímek 1. 3. Vložte tento kratičký skript: Výpis 4.4 var activated:boolean = false; boxlight._alpha = 0;

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 61 Skript nastaví proměnnou activated na false a vlastnost _alpha klipu boxlight na 0 (úplná průhlednost). Proměnná activated je definována jako booleovský (logický) typ. 4. Za poslední příkaz skriptu vložte následující kód: Výpis 4.5 onrelease = function () { if(activated==false){ activated = true; boxlight._alpha = DEFAULTBOXALPHA; if(_parent.playbutton.isplaying == false) { sound.start(); else { sound.stop("sound"+soundnum); activated = false; boxlight._alpha = 0; Funkce onrelease() nastavuje vlastnosti klipu boxmc, když je aktivován (pokud na něm uživatel klikne), i když aktivován není (activated = false). Jakmile uživatel klikne na políčko, pak se průhlednost _alpha klipu boxlight nastaví na DEFAULTBOXALPHA (který má hodnotu 30) a zvuk začne hrát. Pokud má proměnná activated hodnotu true, pak se provede příkaz sound.stop( sound +soundnum) to umožňuje uživateli kdykoliv během přehrávání kliknout na již aktivní okénko a zvuk tím vypnout. V pátém kroku dokončíte kód pro boxmc skriptováním poslední části, kterou je postupné zprůhledňování blednutí políčka snižování hodnoty _alpha. 5. Za tyto tři řádky boxlight._alpha = 0; přidejte následující kód: Výpis 4.6 onenterframe = function() { if(activated == true && boxlight._alpha > DEFAULTBOXALPHA) { boxlight._alpha--; Funkce onenterframe() způsobuje blednutí barvy políčka pokud jsou splněny dvě podmínky: activated == true AND boxligt._alpha > DEFAULTBOXALPHA tedy: pokud je políčko aktivní a současně průhlednost _alpha má hodnotu vyšší než DEFAULTBOXALPHA (tj. 30). 6. Svou práci si uložte. Skriptování přehrávací hlavy Tak jak jste si předtím v této kapitole vytvořili dynamickou mřížku (část Tvorba rozhraní Mixer), opět použijete ActionScript k dynamickému připojení hrací hlavy (playhead) tak, že bude vždy umístěna ve vztahu k proměně definované velikosti mřížky.

62 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku Začnete s movie clipem playhead, který se skládá z horní šipky (grafika), střední lišty (movie clip bar) a spodní šipky (movie clip knob). Vytvoření správného rozměru lišty tak, aby odpovídala mřížce, je skutečnou výzvou. Dosáhnete toho tak, že budete měnit velikost lišty na výšku kontejneru moivegrid a spodní šipku umístíte pod ni. 1. Dvojitě klikněte na movie clip playhead v knihovně a vstupte do editačního módu symbolu. 6. Jděte zpět do hlavní časové osy, klepněte na snímek 1 vrstvy script. 7. Za tyto tři řádky soundnum++; vložte skript: Výpis 4.7 //vytvořeni Playhead a umístěni na ploše moviegrid.attachmovie("playhead","playhead",10000); moviegrid.playhead.bar._height = moviegrid._height; moviegrid.playhead.knob._y = moviegrid._height; moviegrid.playhead._x -= BOXWIDTH/COLUMNS; Tento skript kontroluje výšku movie clipu moviegrid a podle hodnoty přizpůsobuje movie clip bar a umísťuje knob na spodek moviegrid. 8. Svou práci si uložte. 2. Na ploše klikněte na klip knob. Pomocí panelu vlastností (Properties) mu přidělte název instance knob. 3. Na ploše klikněte na movie clip bar. Přidělte mu jméno instance bar. 4. Klikněte pravým tlačítkem na movie clip playhead v knihovně a zvolte Linkage. 5. Označte volbu Export for ActionScript. Identifikační jméno playhead se vloží automaticky. Skriptování tlačítek PLAY a STOP Abyste mohli playhead spustit, potřebujete k ní mít jako uživatel přístup. K tomu slouží tlačítko PLAY/STOP. Pro tlačítko použijete jediný objekt a zapíšete pro něj skript tak, aby tlačítko mělo několikerou funkčnost. K tomu budete muset udělat následující: Vypnout všechny hrající zvuky a pak přehrát sekvenci. Umožnit hrací hlavě pohyb. Vypnout všechny zvuky. Přestavit hrací hlavu do její původní pozice.

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 63 Poznámka: Místo toho, abyste vytvářeli dvě tlačítka Stop a Play, použijete dvousnímkový movie clip nazvaný playbutton. Ten vám umožní dynamicky spojit a umístit movie clip na plochu z knihovny pomocí metody attachmovie(). 1. V knihovně zvolte movie clip playbutton. Pravým kliknutím zvolte Linkage. 2. V panelu Linkage Properties zvolte Export for ActionScript. Název movie clipu, playbutton, je automaticky vložen jako identifikátor propojení. 3. Dvojitě klikněte na movie clip playbutton, čímž pro tento movie clip otevřete editovací mód. Časová osa tohoto movie clipu má tři vrstvy: buton, stop a scprit. Vrstva stop obsahuje movie clip stopsymbol, který je navrchu tlačítka. Pokud je stopsymbol viditelný (visibility = true), pak je tlačítko tlačítkem Stop. Pokud stopsymbol viditelný není (visibitity = false), tlačítko se stává tlačítkem Play. 4. Jděte zpátky do snímku 1 vrstvy script a přidejte kód, který je uveden jako Výpis 4.8. Své akce si uložíte právě do vrstvy script.

64 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku Výpis 4.8 var z:number = 0; //skript pro tlačítko stopsymbol._visible = false; isplaying = false; Tady si nastavíte proměnnou z na 0, oborem této proměnné je tento movie clip. Pak nastavíte proměnnou isplaying na false, ta sděluje movie, zda bylo nebo nebylo zmáčknuto tlačítko Play, a dále nastavíte viditelnost (_visible) stopsymbol na false. 5. Za poslední příkaz předchozího skriptu vložte následující kód: Výpis 4.9 //přesun hlavy function moveplayhead() { if(isplaying == true) { if(_parent.playhead._x < BOXWIDTH*COLUMNS) { _parent.playhead._x += SPEED; else { _parent.playhead._x = 0; _parent.gridcolumncount = 0; Funkce moveplayhead() ovládá pohyby přehrávací hlavy po ose X. První podmínka se vztahuje k tomu, když isplaying == true. Pokud tato podmínka platí, může se přehrávací hlava pohybovat doprava s tím, že přírůstek, o který se posune, je definován proměnnou speed. Pokud je hodnota podmínky false, dojde ke skoku zpět do vyčkávací pozice, vlevo od moviegrid. Přehrávací hlava se bude pohybovat tak dlouho, dokud _x hodnota její pozice bude menší než BOXWIDTH*COLUMNS (úplně vpravo v rohu mřížky). Jinak (else) bude přehrávací hlava resetována do původní pozice (playhead_x = 0). 6. Tento kód přidejte k funkci moveplayhead(): Výpis 4.10 //kontrola pozice, přehrání zvuku a zesvětlení buněk if(math.floor(_parent.playhead._x/boxwidth) == _parent.gridcolumncount) { if(_parent.gridcolumncount < COLUMNS) { trace(_parent.gridcolumncount); for(z=0;z<rows;z++) { var boxname:string = "boxmc"+z+"_"+ _parent.gridcolumncount; if(_parent[boxname].activated == true) { _parent[boxname].sound.setvolume(_parent. soundvolume); _parent[boxname].sound.start(); _parent[boxname].boxlight._alpha = 100; //zvětši hodnotu gridcolumncount o 1 _parent.gridcolumncount++; Tento kód přiřazuje boxmc +z+ _ +_parent.gridcolumncount proměnné boxname, což vede jednak k jednoduššímu volání a také umožní Flash playeru vyhodnocovat výraz hodnotu pouze

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 65 jednou. Tady skript kontroluje pozici přehrávací hlavy a jestliže je parent[boxname].activated == true, pak se spustí zvuky, nastaví se hlasitost na hodnotu _parent.soundvolume (která byla definována v hlavní časové ose) a nastaví vlastnost _alpha v boxlight na 100. 7. Dále vložte následující skript: Výpis 4.11 onrelease = function() { stopallsounds(); if (isplaying==false) { moviegrid.playhead._x=0; isplaying = true; stopsymbol._visible = true; playsounds = setinterval (moveplayhead, 60); else { isplaying = false; stopsymbol._visible = false; clearinterval(playsounds); _parent.playhead._x = 0-BOXWIDTH/COLUMNS; _parent.gridcolumncount = 0; Pokud je tlačítko zmáčknuto, všem zvukům je dán příkaz stop, protože přehrávání zvuků bude nyní závislé na přehrávací hlavě. Jestliže hlava není zrovna v pohybu (isplaying==false), stačí zmáčknou tlačítko a hlava skočí na začátek mřížky, čímž naznačí, že je aktivní, a spustí se její pohyb. Nastavení vlastnosti _visible objektu stopsymbol je pro uživatele znamením, že když podruhé zmáčknou tlačítko, přehrávání se zastaví. Aby se časová osa mohla pohybovat nezávisle na snímkové frekvenci klipu, využívá se funkce setinterval ta volá právě vytvořenou funkci moveplayhead() každých 60 milisekund (nebo-li asi 16krát za sekundu). Zvýšením této hodnoty se bude hlava pohybovat pomaleji. Toto volání setinterval je přiřazeno proměnné (playsounds), a může tedy být zastaveno, pokud uživatel zmáčkne tlačítko stop ( clearinterval(playsounds)); jinak pořád poběží dál. Pokud uživatel znovu zmáčknul tlačítko, stopsymbol se zneviditelní, hlava skočí zpátky do své odpočívací pozice a funkčnost tlačítka playbutton se vrátí k nastavení play. Hodnota gridcolumncount bude také vrácena na hodnotu 0, protože se hlava už nepohybuje. Současně se provede i umístění tlačítka playbutton na plochu a jeho zarovnání. 8. Vraťte se na hlavní časovou osu (Scene 1). Ve vrstvě script klikněte na snímek 1. 9. Za příkaz moviegrid.playhead._x -= BOXWIDTH/COLUMNS vložte následující skript: Výpis 4.12 //vytvoření a umístění tlačítka moviegrid.attachmovie("playbutton","playbutton", 20000); moviegrid.playbutton._x = moviegrid._width - (BOXWIDTH+movieGrid.playButton._width/2); moviegrid.playbutton._y = moviegrid._height + BOXHEIGHT; Tady umístíte playbutton dynamicky na plochu přidáním instance movie clipu playbutton k movie klipu moviegrid a nastavíte jeho umístění pomocí vlastnosti _x a _y podle velikosti moviegrid:

66 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku playbutton._x = moviegrid._width - (BOXWIDTH+movieGrid. playbutton._width/2) a playbutton._y = moviegrid._height + BOXHEIGHT 10. Svou práci si uložte. Přidání ovladače pro kontrolu hlasitosti Ovladač táhlo pro kontrolu hlasitosti je posledním prvkem rozhraní, který umožní uživateli lepší ovládání objektů zvuku a jejich příslušenství. Pro dynamické umístění této animace na plochu použijeme ActionScript, ale předtím jej musíte sestavit. 1. Klikněte pravým tlačítkem na movie clip volumeslider v knihovně. Zvolte Linkage. 2. V panelu Linkage Properties zvolte Export for ActionScript. Identifikátor pro Linkage ID volumeslider je vložen automaticky. 3. Jděte na vrstvu script. Klikněte na snímek 1. 4. Do panelu Actions vložte následující skript: Výpis 4.13 var btnloc:number = 0; //pokud je kulička stisknuta, umožňuje taženi ve //vodorovném směru volume_btn.onpress = function() { volume_btn.startdrag(true,0,0,300,0); //je-li kulička uvolněna, ukončí se taženi //a nastaví se odpovídající hlasitost zvuku volume_btn.onrelease = volume_btn.onreleaseoutside = function() { volume_btn.stopdrag(); btnloc = Math.floor(volume_btn._x/3); _parent.soundvolume = btnloc; for(x=0;x<rows;x++) { for(y=0;y<columns;y++) { _parent["boxmc"+x+"_"+y].sound. setvolume(btnloc); Za prvé jste si definovali jméno proměnné btnloc (typ Number). Tato lokální proměnná je vytvořena pro zachování pozice kuličky tlačítka volume_btn na liště volumeslider. volume_btn.onpress je metoda tlačítka, kterou uživatel uvede do chodu zmáčknutím tlačítka, které vypadá jako dřevěná kulička. startdrag je metoda tlačítka, které se předává 5 parametrů: - true, který říká funkci, že přetahování bude omezeno (lepší, než aby mohl uživatel přetahovat tlačítko kamkoli na plochu)

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 67 - a další čtyři hodnoty definující toto omezení (left, top, right a bottom, tedy omezení zleva, shora, zprava a zdola). left a right jsou okraje lišty táhla. onrelease a onreleaseoutside jsou dvě další metody tlačítka, které jsou vnořeny, protože by měly mít stejnou funkčnost, když bude tlačítko uvolněno. Metoda stopdrag() zastaví tlačítko a proměnné btnloc bude přiřazena aktuální pozice tlačítka na liště děleno třemi (lišta je 300 pixelů dlouhá a vy chcete hodnotu hlasitosti mezi 0 a 100). Hodnota soundvolume bude nastaven na nově zadanou hodnotu a pak se v cyklu nastaví hlasitost každého okénka mřížky pomocí metody setvolume objektu sound. 5. Vraťte se do hlavního klipu (Scene 1). Klikněte na snímek 1 (ve vrstvě skript) a vložte tento skript, čímž umístíte ovladač hlasitosti na plochu: Výpis 4.14 //vytvoření a umístění ovladače hlasitosti moviegrid.attachmovie("volumeslider","volumeslider", 30000); moviegrid.volumeslider._x = BOXWIDTH - (BOXWIDTH/ COLUMNS)/COLUMNS; moviegrid.volumeslider._y -= BOXHEIGHT/2; Všechno dáme dohromady Jakmile máte všechny elementy spolu v instanci moviegrid, můžete celek vyrovnat ve svém movie na střed. 1. Klikněte na snímek 1 (vrstvy script) v hlavní animaci. 2. Za předchozí skript vložte následující: Výpis 4.15 //umistěni všech prvků moviegrid._x = ((Stage.width/2) - (moviegrid._width/2))+(boxwidth/columns)/columns; moviegrid._y = ((Stage.height/2) - (moviegrid._height/2))+boxheight/2; Tady jste si nastavili souřadnice vlastnosti _x a _y instance moviegrid tak, že je nyní vycentrovaná. Uvedené hodnoty flexibilně závisejí na rozměrech mřížky (na jejím počtu sloupců, columns, i řádků, rows). Obrázek na následující stránce vám ukazuje, jak v tomto místě vypadá celý skript. Tady přidáváte instanci movie clipu volumeslider k animaci moviegrid a zarovnáváte ji ke středu horního okraje instance moviegrid. 6. Svou práci si uložte.

68 PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 3. Vyzkoušejte klip a spusťte nějaké zvuky; klikněte na okénko a poté znovu, abyste volbu zrušili. Jestliže jste s vaším nastavením spokojeni, klikněte na tlačítko Play a vychutnejte si svou kompozici. 4. Svou práci si uložte.

PROJEKT 4: Elektronické haiku s trochou zábavy s mixováním zvuku 69 Nyní zkuste toto Doteď jste si vytvořili pěkný kus kódu, který se spustí, jakmile se klip stáhne, inicializuje vlastnosti veškerých součástí vašeho nástroje a zobrazí jeho vizuální podobu. Také jste se naučili ovládat uživatelské rozhraní a přehrávat zvuky. Tady vám nabízím další nápady jak zužitkovat dovednosti, které jste právě získali, i jiným způsobem: Když budou vaše zvukové hračky složitější a budete užívat více zvukových cyklů, hodilo by se vám použít preloader, nebo optimalizovat cykly tak, abyste zmenšili velikost souboru. Můžete také experimentovat s použitím metod v objektu Sound, jako jsou getbytestotal() a getbytesloaded() k načtení vašich zvuků odděleně od zbytku animace. Můžete také nahrát zvuky z externího zdroje (pomocí metody loadsound() z objektu Sound). Umožní vám to jednak upravovat a aktualizovat MP3 ukázky zvuků mimo tvůrčí prostředí Flashe, a také značně snížit počáteční velikost vaší animace. Vytvořte si rozhraní, které umožní uživateli vstup z více než jednoho přehrávače. Každý přehrávač může mít přístup do mřížky, která přehrává jednotlivé sekvence, a účastní se tak s ostatními přehrávači na kompozici komplexního společného hudebního představení.