Flash-ActionScript - 3. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Flash-ActionScript - 3. lekceFlash-ActionScript - 3. lekce

 

Flash-ActionScript - 3. lekce

Google       zatím neprovedena       7. 8. 2005       25 539×

Obsah dnešního dílu se bude týkat hlavně položení základu ActionScriptu - adresování, proměnné. Pravidla psaní kódu, která byste měli dodržovat vychází v dodatku k 2. lekci.

Reklama
Reklama

Proměnné

S proměnnými jsme se již setkali v předchozím díle u Textu, tam se nám vytvořila automaticky a uchovávala nám hodnotu textového pole. Zjednodušeně je proměnná místo v paměti, které si pojmenujeme a pomocí toho tam pak ukádáme hodnoty. Ve srovnání s jinými programovacími jazyky je deklarování proměnné v ActionScriptu jednoduchá věc. Deklaruje se při prvním použití:
jméno proměnné = hodnota

promenna = 20;
promenna2 = "Nějaký text.";
V klasické proměnné můžeme uchovávat několik typů hodnot:
NázevPopisUkázka
řetězec (string)Text, může obsahovat jakékoliv znaky. Je ohraničený " " nebo ' ' text = "Nějaký text 123"
číslo (number)číslo od 5e-324 do 1.79E+308x = 15.23
booleannabývá pouze hodnot true - pravda (zapnuto), nebo false - nepravda (vypnuto)zapnuto = true
nenalezeno - undefinedTuto hodnotu vracejí většinou funkce, pokud objekt neexistuje.neexistuje = undefined
nullNeboli nic, prázdná hodnotanic =null


Teď tady ještě rozeberu pár drobností k řetězcům:

Řetězec

V řetězcích uchováváme jakýkoliv text, říká se jim řetězce, protože je tvoří řetěz po sobě jdoucích jednotlivých znaků. Jak je napsáno v tabulce, samotný text je ohraničen uvozovkami, ale co když chceme použít i v textu uvozovky? K tomu můžeme použít dva způsoby:


text1 = ' Teď tady můžu používat "uvozovky" '	
    //tohle je první způsob
text2 = " Teď tady můžu používat \"uvozovky\" "	
    //stejný výsledek, jako první způsob


Pokud dáme před znak zpětné lomítko \, nádledující znak se použije speciálně, v předešlém případě ignorováním uvozovky jako ohraničení v řetězci. Můžete použit následující:
\nějaký znak - použije ho v textu
\r - další řádek
\t - tabulátor
poslední dva se projeví až pri tisknutí

Aritmetické operace

S čísly jdou provádět aritmetické operace, které znáte ze školy - např. dělení, sčítání atd. Základní operátory jsou tyto:
+	sčítání
-	odčítání
*	násobení
/	dělení
%	modulo - zbytek při dělení
=	přiřazení
Jako v matematice má násobení a dělení přednost před sčítáním a odčítáním, je možné používat závorky:
Příklad:


6 * 6			
10 + 5 * 2
(2+1) * 3  // Závorka má nejvyšší prioritu, 
           // proto se nejprve vyhodnotí 2+1
           // a až potom * 3


Operace sama o sobě nám k ničemu není, využijime ji v kombinaci s proměnnými. Výsledek uložíme do proměnné přiřazením. Nemusíme ale používate jenom čísla, operace se dají dělat i s proměnnými.


x = 1+1;
i = x + 5  //i se rovná hodnota x (2) + 5 = 7
i = i + 1;  //i se zvětší o jedna
retezec = "Slo" + "vo";	//řetězce můžeme skládat 


Abychom nemuseli při přičtení a odečtení jedničky psát x = x + 1, existuje zkrácený zápis:
celý zápis	zkrácený
x = x + 6	x += 6
x = x - 6	 x -=6
x = x / 6	 x /= 6
x = x * 6	x *= 6
x = x + 1	x++
x = x - 1	 x--

Adresování

Teď si tady trochu rozšíříme znalosti o Symbolech z minulého dílu. Jak víte, instance může obsahovat další instanci atd. Každá instance má vlastní jméno, přes které k ní můžeme přistupovat. Jméno instance se nastavuje na panelu properties v políčku Instance name.



Všechny Symboly jsou objekty, dejme tomu, že máme objekt "dveře", který se nachází v "pokoji". Objekt "dveře" se skládá z dalších objeků : "dřevo, klika".... Kdybychom chtěli vyjádřit kliku, musí napsat pokoj.dveře.klika. Objekt "dveře" je rodič (parent) "kliky", tak jako je "pokoj" rodič "dveří". Ve Flashi jsou objekty Symboly. Časová osa a tedy nejvyšší objekt se jmenuje _root. Na následujícím obrázku jde vidět struktura dokumentu dite_1. Nachází se v MovieClipu MovieClip_1:




// v dite_1
onClipEvent(load){
   x = 5;
}
// v MovieClip_1 
onClipEvent(load){
   trace(x)   //undefined, ve vlastním jmenném prostoru 
     // nenalezeno
   trace(_root.MovieClip_2.dite_1.x)	//vypíše 5
}



Každý objekt má vlastní jmenný prostor, ve kterém se nachází proměnné, instance atd. Proto pokud se proměnná/Symbol nenachází v aktuální Symbolu, musíme přistupovat přes jeho adresu.

this

This je reference na aktuální instanci Symbolu, ve které se nachází prováděný kód.


//v dite_1
onClipEvent(load){
	trace(this);  // vypíše "Level0.MovieClip_2.dite_1"
}


_parent

Reference na rodiče (tj. instance o jednu úroveň výše) aktuální instance.


//v dite_1 
onClipEvent(load) {
       trace(_parent);  //vytiskne "Level0.MovieClip_2"
       _parent.promena = 11;
}


with

Tento přikaz vám ulehčí práci, pokud chcete přistupovat přes adresování vícekrát k jednomu objeku.


with(_root.mujclip){
       promena = "Text";
       x = 16;
       y = 1+1;
}
//stejné jako:
_root.mujclip.promena = "Text";
_root.mujclip.x = 16;
_root.mujclip.y = 1+1


Pozor - jinak je tomu u Buttonu, u kterého automaticky přistupujete k rodiči. Takže v buttonu stačí napsat hodnota_textu, bere se to jako byste napsali _parent.hodnota_textu, což je, když ho máte na hlavní časové ose _root.hodnota_textu. Takhle je to jenom u buttonu, u MovieClipu musíte napsat celé _root.hodnota_textu.

Vlastnosti

Každá instance má své vlastnosti, jako otočení, zkosení, ale třeba i pozice. K těm můžem přistupovat přes ActionScript. Tady uvedu pár užitečných vlastností MovieClipu, ke kterým můžete přistupovat stejně jako k proměnným, s tím rozdílem, že je nedeklarujete.


VlastnostPopis
_xx pozice tj. vzdálenost od levého okraje v pixelech
_yy pozice tj. vzdálenost od hornního okraje animace v pixelech
_namejméno instance
_parentrodič
_heightvýška v px
_widthdélka v px
_rotationOtočení ve stupních
_alphaprůhlednost 0-neviditelné,100-neprůhledné


Teď se dostáváme k užitečnějším věcem:


//Při stisknutí klávesy se otočí o 20°
onClipEvent(keyDown){
     this._rotation += 20;
}
//po kliknutí se přesune na souřadnice 200,200 a zprůhlední se
on(release){
    _x = 200;
    _y = 200;
    _alpha = 50;
}


Jak jsem řekl, s vlastnostmi lze pracovat jako s proměnnými, takže je můžeme sčítat, zobrazovat... a pomocí adresování měnit vlastnosti jiných.


onClipEvent(load){
     //vytiskne svoje jméno:
     trace("Moje jméno je " + _name)
     //instanci se jménem jinysymbol přejmenuje
     // podle svého jména, ale přidá na konec 2
     _root.jinysymbol._name = this._name + "2";	
}


Závěrem

Pracování s vlastnostmi je opravdu užitečné a souvisí s objektově orientovaným programováním OOP, se kterým se seznámíme v příštích lekcích. Pro ty, co něčemu nerozuměli, nebo se chtějí na něco zeptat (nevadí, že to je blbost), napište mi to do poradny, na email, nebo na ICQ a já vám odpovím.
ÚKOL
V úkolu už budu hodnotit i věci, které jsem uvedl v dodatku k druhé lekci. K samotnému úkolu: udělejte program, kde bude uprostřed jeden MovieClip, a 2 tlačítka. Když se klikne na jedno, MovieClip se otočí doleva, když na druhé doprava. Samozřejmě můžete to vylepšit, může měnit pozici, po kliknutí na něco jiného... To nechám na vás. (Pro ty co neví, bude muset používat adresování a vlastnosti.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Mezi největší záliby patří programování v Pythonu, PHP či Flashi - ActionScriptu.

Nové články

Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý