Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)



Samankaltaiset tiedostot
Harjoitus 2: Oppijan aktivointi ( )

Harjoitus 2: Raahaus, satunnaisuus ja taulukot ( )!

Harjoitus 1: Perusteet, navigointi ja tekstinsyöttö ( )!

Flash ActionScript osa 4

Ohjelmoinnin perusteet Y Python

C# Windows ohjelmointi perusopas

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

JUnit ja EasyMock (TilaustenKäsittely)

Python-ohjelmointi Harjoitus 2

Olio-ohjelmointi Javalla

Alkuun HTML5 peliohjelmoinnissa

7. Näytölle tulostaminen 7.1

Harjoitus 4: HTML5 piirtoalusta ( )!

Ohjelmoinnin perusteet Y Python

Harjoitustyö: virtuaalikone

1 Tehtävän kuvaus ja analysointi

Ohjelmointi 2 / 2010 Välikoe / 26.3

Web Services tietokantaohjelmoinnin perusteet

Listarakenne (ArrayList-luokka)

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Metodien tekeminen Javalla

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

ITKP102 Ohjelmointi 1 (6 op)

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Harjoitus 3 (viikko 39)

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Mikä yhteyssuhde on?

Testivetoinen ohjelmistokehitys

Java-kielen perusteita

Ohjelmoinnin perusteet Y Python

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Interaktiivinen tarinankerronta

17. Javan omat luokat 17.1

ITKP102 Ohjelmointi 1 (6 op)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Olio-ohjelmointi Syntaksikokoelma

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Sisältö. 22. Taulukot. Yleistä. Yleistä

Java-kielen perusteita

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Ohjelmoinnin peruskurssi Y1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Luokan sisällä on lista

Ohjelmoinnin perusteet, 1. välikoe

Rinnakkaisohjelmointi, Syksy 2006

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Tietorakenteet (syksy 2013)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Jypelin käyttöohjeet» Ruutukentän luominen

Ohjelmoinnin perusteet Y Python

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Tutoriaaliläsnäoloista

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Ohjelmoinnin perusteet, kurssikoe

EDMODO. -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO

Harjoitus 1 (viikko 44)

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

8. Näppäimistöltä lukeminen 8.1

Taulukot. Jukka Harju, Jukka Juslin

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

Harjoitustyö (TKO_2023)

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

1. Omat operaatiot 1.1

Racket ohjelmointia II. Tiina Partanen 2015

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ohjelmoinnin jatkokurssi, kurssikoe

Periytyminen (inheritance)

Ohjelmoinnin perusteet Y Python

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

8. Näppäimistöltä lukeminen 8.1

Ohjelmoinnin perusteet Y Python

Sisältö. 2. Taulukot. Yleistä. Yleistä

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmoinnin perusteet Y Python

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmoinnin perusteet, syksy 2006

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Rajapinta (interface)

Transkriptio:

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla esitellään Flashin toimintoja ja tehdään harjoituksia. Kunakin kertana on kaksi harjoitusryhmää, joissa kaikissa käsitellään sama sisältö. Harjoitusryhmät järjestetään kello 10.15 12 ja 12.15 14 mikroluokassa Pinni B1083. Harjoitusryhmiin saa saapua vapaasti ei ennakkoilmoittautumista. Flash-harjoituksien tiedotussivu on osoitteessa: http://www.uta.fi/sis/tie/tao/flash.html Tehtävät julkaistaan etukäteen webissä, mutta ne käydään läpi yhteisesti Flash-harjoituksissa perjantaisin. Toisin kuin laitoksen kurssien viikkoharjoituksissa normaalisti, tehtäviä ei tarvitse tehdä etukäteen. Tehtävät ovat luonteeltaan sellaisia, että niihin löytyy helposti apua ja lisätietoja webistä. Hakukoneen avulla on helppo löytää ainakin englanninkielisiä ohjesivuja, joilla käsitellään Flashia. Kolmannen harjoituskerran aiheita ovat Flash-luokat ja -komponenttiarkkitehtuuri. Harjoituksissa käsitellään lisää oppijan aktivointia: monivalintatehtävät ja satunnaisuuden ohjelmointi aktivoiviin toimintoihin. Flash-luokat ActionScript 2.0:sta lähtien ohjelmoija on voinut käyttää oliopohjaista lähestymismallia skriptien luonnissa. Luokat toimivat pohjana uudelle komponenttiarkkitehtuurille ja tähän mennessä Flash-harjoituksissa onkin jo käytetty huomaamattomasti useita luokkia (MovieClip, String, Number jne.). Luokkien tekeminen voi helpottaa harjoitustyön hallittavuutta ja muutettavuutta. Tässä on yksinkertainen Flash-luokka: package { import x.y.z; public class OmaLuokka { private var _count:number; public function OmaLuokka() { _count = 0; public function dosomething(str:string) { trace( str ); public function get count( ):Number { return _count; public function set count(nmbr:number) { _count = nmbr; public function increase():void { _count += 1; public function decrease():void { _count -= 1; Tietokoneavusteinen opetus 2016 Joel Luukka (Alkup. dok. Juha Kari, Lauri Immonen) 1 / 5

Luokan tiedostonimen tulee olla sama kuin luokan nimi + ".as", eli tässä tapauksessa luokka olisi tallennettava nimellä OmaLuokka.as. Luokkia käytetään skripteissä seuraavasti: Import OmaLuokka; var oma:omaluokka = new OmaLuokka(); Flash-komponenttiarkkitehtuuri Komponentit ovat esimerkiksi valmiita elementtejä graafisen käyttöliittymän tekemiseen (UI components). Käyttäjät voivat luoda komponentteja itse ja myös jakaa niitä muiden käyttöön. Tällaisia komponentteja löytyy mm. Adoben www-sivuilta. Komponentit ovat usein MovieClip-tyyppisiä luokkia, joiden parametreja, ulkoasua ja käyttäytymistä voidaan muokata. Komponentti on visuaalisen määritelmän ja luokan yhdistelmä. Näistä komponenteista luodaan ilmentymiä, kun niitä käytetään Flash-ohjelmassa. Komponenttien ilmentymiä käytetään pitkälti samalla tavoin kuin muitankin kirjaston symbolien ilmentymiä. 0. Ohjelman käyttämä ActionScript versio Tarkista, että käytät ohjelmassasi ActionScriptin versiota 3.0. Asetus löytyy File Publish Settings -asetuksista (tai Properties-ikkunasta valinta Publish: Settings ). 1. Monivalintatehtävä radiopainikkeilla Tehdään monivalintatehtävä, jossa käyttäjä voi valita vain yhden vastausvaihtoehdon. Tällöin käytetään radiopainikkeita (RadioButton). 1. Luo kysymys teksti-työkalulla. Aseta tekstin tyypiksi Static Text. 2. Avaa komponentti-ikkuna (Window Components). 3. Raahaa näyttämölle kolme radiopainiketta (kysymyksen vastausvaihtoehdot). 4. Nimeä painikkeet eri nimillä (radio1, radio2, radio3) ja aseta kaikkien parametri GroupName samannimiseksi (usein näin on jo oletuksena). Tällöin painikkeet muodostavat ryhmän, jonka jäsenistä vain yksi voi olla kerrallaan valittuna. 5. Lisää komponenteista myös uusi painike (Button) ja aseta siihen teksti Tarkista. 6. Nimeä tämä painike (tarkistapainike). 7. Luo vielä toinen tekstikenttä (Dynamic Text) ja anna instanssinimeksi palaute1. 8. Tee aikajanalle uusi kerros (Layer) ja anna sille nimeksi koodi. Usein on selkeämpää sijoittaa kaikki koodi omalle layerille. Tietokoneavusteinen opetus 2016 Joel Luukka (Alkup. dok. Juha Kari, Lauri Immonen) 2 / 5

9. Kirjoita ensimmäiseen kehykseen seuraava skripti: stop(); tarkistapainike.addeventlistener("click", tarkistavalinnat); function tarkistavalinnat(event) { if (radio2.selected == true) { palaute1.text = "Hyvä"; else { palaute1.text = "Ei ole. Yritä uudestaan."; Tarkista-painikkeeseen siis liitettiin tapahtumakuuntelija (EventListener), joka reagoi tapahtumaan click suorittamalla tapahtumankäsittelyfunktion tarkistavalinnat. Voit palauttaa muistiin tapahtumankäsittelyn edellisen harjoituskerran tehtäväpaperista. 2. Monivalintatehtävä valintaruuduilla Tehdään toinen monivalinta, jossa voi olla useita oikeita valintaruutuja (CheckBox). 1. Tee uusi Scene. 2. Lisää navigointinapit Sceneille, jotta pääset testaamaan myös Scene 2:n toimintaa. Vaihtoehtoisesti voit käyttää Control-valikon Test Scene -toimintoa. 3. Raahaa uuden Scenen näyttämölle esim. kolme valintaruutua yksi jokaista vastausvaihtoehtoa varten. 4. Nimeä ne eri nimillä (esim. valinta1, valinta2, valinta3 ) 5. Tee uusi staattinen tekstikenttä kysymykselle. 6. Tee palautteelle uusi dynaaminen tekstikenttä ja anna sille nimeksi palaute2. 7. Tee uusi tarkistuspainike. 8. Kirjoita tapahtumankuuntelija ja liitä se kuuntelemaan painikkeen tapahtumia (oikeat vastaukset ovat tässä esimerkkifunktiossa valinta2 ja valinta3): function tarkistavalinnat2(evt) { if (valinta2.selected == true && valinta3.selected == true && valinta1.selected == false) { palaute2.text = "Hyvä, juuri näin."; else if ( (valinta2.selected valinta3.selected) && valinta1.selected == false) { palaute2.text = "Yksi oikein, toinen puuttuu vielä."; else { palaute2.text = "Yritäpä uudestaan."; Kuten huomataan, valintaruutujen kanssa jokaisen arvo on tarkistettava erikseen, jotta nähdään, vastasiko käyttäjä oikein (rastit kaikissa halutuissa ruuduissa, muissa ei rasteja). Tietokoneavusteinen opetus 2016 Joel Luukka (Alkup. dok. Juha Kari, Lauri Immonen) 3 / 5

3. Satunnaisuuden ohjelmointi Satunnaisuuden ohjelmointia tarvitaan moneen erilaiseen tarkoitukseen käyttäjää aktivoivissa Flash-sovelluksissa. Esimerkiksi useita peräkkäisiä kysymyksiä esittävän tietovisasovelluksen olisi hyvä esittää kysymykset satunnaisessa järjestyksessä, jotta sovelluksen jokainen suorituskerta ei olisi samanlainen. Satunnaislukuja puoliavoimelta väliltä [0, 1[ saadaan Math.random()-metodin avulla. Kun tämä satunnaisluku kerrotaan x:llä, saadaan luku puoliavoimelta väliltä [0, x[. Lukujen arvontaa varten voidaan kirjoittaa oma funktio: function arvosatunnaisluku(max:number) { var n = Math.random() * max; return n; Huomaa, että arvosatunnaisluku()-funktio palauttaa liukuluvun, joka voidaan tarvittaessa pyöristää kokonaisluvuksi Math.round()-funktiolla. Jos luku halutaan sijoittaa tekstikenttään, se täytyy vielä muuttaa merkkijonoksi. Toteutetaan seuraavaksi Flash-esitys, joka arpoo tekstikenttään satunnaisen kokonaisluvun, kun käyttäjä klikkaa painiketta. Sovella aiempia taitojasi. 1. Luo uusi Flash-esitys. 2. Luo näyttämölle staattinen teksti Arvotaan satunnaisluku. 3. Luo näyttämölle tyhjä dynaaminen tekstikenttä ja anna sille instanssinimi. 4. Raahaa valmis Common Libraries -kirjaston painike omaan kirjastoon. 5. Luo oman kirjaston painikkeesta instanssi raahaamalla se näyttämölle. 6. Anna näyttämöllä olevalle painikkeelle instanssinimi. 7. Avaa käsittelemäsi kerroksen koodinäkymä (Actions) ja kirjoita koodiin ylempänä kuvattu arvosatunnaisluku()-funktio. 8. Kirjoita samaan koodinäkymään uusiluku()-tapahtumankäsittelyfunktio: function uusiluku(event) { var liukuluku = arvosatunnaisluku(10); var kokonaisluku = Math.round(liukuluku); satunnaisluku.text = String(kokonaisluku); 9. Lisää samaan koodinäkymään rivi, joka kytkee click -tapahtuman käsittelyfunktioksi uusiluku()-funktion: arvontapainike.addeventlistener("click", uusiluku); 10. Kokeile Flash-esitystä (Ctrl+Enter). Tietokoneavusteinen opetus 2016 Joel Luukka (Alkup. dok. Juha Kari, Lauri Immonen) 4 / 5

4. Sekalaisia komentoja & vinkkejä trace(lause) Tulostaa output-ikkunaan lauseen sisällön, mikä voi olla tekstiä, muuttujien arvoja tai näiden yhdistelmää. Tämä on todella kätevä komento virheiden etsinnässä sekä ohjelman toiminnan selvittämisessä Kehysten merkintä Voit antaa jokaiselle avainkehykselle nimen, jota voi käyttää esimerkiksi navigoinnin apuna. gotoandplay() ja gotoandstop() Hyppää tiettyyn kehykseen ja vaihtoehtoisesti jatkaa toistoa tai pysähtyy. 5. Buttons-kirjasto gotoandplay(42); Hyppää kehykseen 42. gotoandstop(512, "Scene 2"); Hyppää Scene 2:n kehykseen 512. gotoandplay("lab1"); Hyppää merkittyyn kohtaan lab1. Flashistä löytyy valikoima valmiita painikkeita, jotka voivat olla hyödyllisiä harjoitustyötä tehdessä. Window Common Libraries Buttons. 6. Lisää luokista ja satunnaisuuden ohjelmoinnista Lue Flash-harjoitussivujen lisämateriaalit Perustietoa luokista ja Tietovisa. Avaa tietovisaesimerkki Adobe Flashissa ja tutustu esimerkin sisältämään ActionScript-koodiin. Lisämateriaali julkaistaan Flash-harjoitussivuilla. Tietokoneavusteinen opetus 2016 Joel Luukka (Alkup. dok. Juha Kari, Lauri Immonen) 5 / 5