Flash Help
Flash
ActionScript
P°φklady





Webmaster

      Martin Hozφk
      hozikm@seznam.cz
      ICQ: 323756613


W3C Validita

      HTML 4.0 validnφ




╪φzenφ animace

Seznßmenφ s Actionscriptem

Animace lze vytvß°et zp∙sobem popsan²m v p°edchozφch kapitolßch, ale v²sledek je nem∞nn² a stßl². Actionscript dovoluje p°idat do animacφ interaktivitu a zm∞nit ji t°eba na p°ehlednΘ menu, webovou strßnku, zßbavnou hru, nebo v animovan² formulß°.

ActionScript je odvozen od JavaScriptu. Jeliko₧ je ale Flash animace autonomnφ objekt zobrazovan² pomocφ Plug-inu, je nutnΘ poΦφtat s tφm, ₧e nebudou fungovat objekty jako Document nebo Window. DalÜφ d∙le₧itß vlastnost ActionScriptu je, ₧e je case-unsensitive (na velikosti pφsmen v nßzvech p°φkaz∙ tedy nezßle₧φ).




Skript (seznam p°φkaz∙) je mo₧no ve Flashi zacφlit bu∩ na:

  • klφΦov² snφmek v ΦasovΘ ose (i na prßzdn²)

    KlφΦov² snφmek s p°φkazem

    Poznßte ho podle malΘho pφsmene a ve snφmku
    - p°φkazy jsou vykonßny v moment∞ zobrazenφ snφmku

  • objekt:
    • tlaΦφtko
    • movie clip

    - zde jsou p°φkazy vykonßny po urΦitΘ udßlosti (viz tabulka nφ₧e)



Skript m∙₧ete snφmku (objektu) zadat tak, ₧e ho vyberete a zmßΦknete [F9], nebo kliknete prav²m tl. myÜi a v nabφdce vyberete "Actions".

Objevφ se okno "Actions"



Okno "Actions"



Okno "Actions" umφ pracovat ve dvou zßkladnφch re₧imech: Normal a Expert

Zatφmco v m≤du Normal se hodnoty p°φkaz∙ urΦujφ pomocφ p°ehledn²ch formulß°∙, v Expert m≤du musφte vÜe psßt ruΦn∞. Proto bych doporuΦil mΘn∞ zkuÜen²m u₧ivatel∙m ponechat "Normal".

M≤d zadßvßnφ p°φkaz∙

P°φkaz vlo₧φte jeho vybrßnφm v seznamu vlevo a p°eta₧enφm (nebo dvojklikem) do okna vpravo.



P°φkazy definovanΘ snφmku se provedou po zobrazenφ snφmku v po°adφ, v jakΘm jsou pod sebou. To je samoz°ejm∞ velmi zjednoduÜen∞ °eΦeno (existujφ r∙znΘ podmφnky a smyΦky, kterΘ ovliv≥ujφ v jakΘm po°adφ a zda v∙bec budou p°φkazy vykonßny, ale o tom a₧ pozd∞ji).

Pokud je p°φkaz definovßn tlaΦφtku nebo movieclipu provedou se p°φkazy po urΦitΘ udßlosti, kterou m∙₧eme urΦit:



  • TlaΦφtko - udßlosti

    Press zmßΦknutφ levΘho tl. myÜi
    Release puÜt∞nφ levΘho tl. myÜi
    Release Outside puÜt∞nφ tl. mimo instanci
    Key Press zmßΦknutφ klßvesy
    Roll Over p°ejetφ kurzorem dovnit°
    Roll Out p°ejetφ ven
    Drag Over ta₧enφ dovnit°
    Drag Out ta₧enφ ven

    cel² k≤d by pak mohl vypadat t°eba takto:

    on (press) {
        gotoAndPlay(1);
    }
    

    Tento zßpis znamenß, ₧e po kliknutφ nad tlaΦφtkem se provedou akce uvnit° slo₧en²ch zßvorek - v naÜem p°φpad∞ - "b∞₧ na snφmek Φ. 1".



  • MovieClip - udßlosti

    Load po naΦtenφ nebo vygenerovßnφ MC
    Unload po odstran∞nφ MC z ΦasovΘ osy
    Enter Frame akce jsou vykonßny v ka₧dΘm snφmku MC
    Mouse Move pohnutφ kurzorem myÜi (kdekoliv v animaci)
    Mouse Down stisk levΘho tl. myÜi (kdekoliv v animaci)
    Mouse Up uvoln∞nφ levΘho tl. myÜi (kdekoliv v animaci)
    Key Down stisk klßvesy
    Key Up uvoln∞nφ klßvesy
    Data obdr₧enφ ·daj∙ z LoadVariables a LoadMovie



Zßkladnφ p°φkazy

Pro zaΦßtek byste m∞li ovlßdat tyto velmi d∙le₧itΘ p°φkazy:



  • GoTo - b∞₧ na
    tento p°φkaz slou₧φ k p°echodu na jin² snφmek (nebo scΘnu) a pokraΦovat v p°ehrßvßnφ, p°φpadn∞ zastavit (GotoAndStop). Snad jen podotknu, ₧e v roletovΘm menu "Type" lze zvolit specifikaci cφle jako Φφslo snφmku, jeho popis, nßsledujφcφ nebo p°edchozφ snφmek, nebo hodnotu prom∞nnΘ.
    gotoAndPlay("Scene 1", 12);
    
  • Play & Stop
    Slou₧φ ke spuÜt∞nφ nebo zastavenφ animace.
    Bez parametr∙
    play();
    stop();
    
  • GetURL
    Otev°e HTML strßnku (nebo soubor). M∙₧ete nastavit ve kterΘm frame se mß otev°φt a jestli se majφ odesφlat hodnoty prom∞nn²ch (GET, POST)
    getURL("www.flash-help.wz.cz", "_blank", "POST");
    


Zßkladnφ operßtory

  • AritmetickΘ
     
    p°i°azenφ hodnoty = a = 5    ("a" bude 5)
    sΦφtßnφ (spojenφ °et∞zc∙) + 10 + 5 = a   ("a" bude 15)
    odΦφtßnφ - 10 - 5 = a   ("a" bude 5)
    nßsobenφ * 10 * 5 = a   ("a" bude 50)
    d∞lenφ / 10 / 5 = a   ("a" bude 2)
    zbytek po d∞lenφ % 12 % 5 = a   ("a" bude 2)
    zßvorky () 10 * (5 + 8) = a   ("a" bude 130)
    inkrement (zv²Üenφ o 1) ++ a = 5;   a++   ("a" bude 6)   tento operßtor je ekvivalentnφ k zßpisu
a = a + 1
      -> post-inkrementace a = 5; b = a++  ("b" bude 5; "a" bude 6)  Operßtor vrßti hodnotu "a" a pak provede inkrementaci
      -> pre-inkrementace a = 5; b = ++a ("a" i "b" bude 6)   Operßtor nejprve inkrementuje "a" a pak vrßtφ jejφ (novou) hodotu
    dekrement (snφ₧enφ o 1) -- a = 5;   a--   ("a" bude 4)   tento operßtor je ekvivalentnφ k zßpisu
a = a - 1
      -> post-dekrementace a = 5; b = a--  ("b" bude 5; "a" bude 4)   Operßtor vrßti hodnotu "a" a pak provede dekrementaci
      -> pre-dekrementace a = 5; b = --a  ("a" i "b" bude 4)   Operßtor nejprve dekrementuje "a" a pak vrßtφ jejφ (novou) hodotu
    p°iΦtenφ += a = 5;   a+=3   ("a" bude 8)   Ekvivalentnφ k zßpisu
a = a + 3
    odeΦtenφ -= a = 5;   a-=3   ("a" bude 2)   Ekvivalentnφ k zßpisu
a = a - 3
    vynßsobenφ *= a = 5;   a*=3   ("a" bude 15)   Ekvivalentnφ k zßpisu
a = a * 3
    pod∞lenφ /= a = 5;   a/=3    ("a" bude 1,6)   Ekvivalentnφ k zßpisu
a = a / 3

  • Srovnßvacφ - vracφ TRUE/FALSE (pravda/nepravda)

    menÜφ < a = 5; b = 6;    a < b   (true)
    v∞tÜφ > a = 5; b = 6;    a > b   (false)
    menÜφ nebo roven <= a = 5; b = 6;    a <= b   (true)
    v∞tÜφ nebo roven >= a = 5; b = 6;    a >= b   (false)
    rovnost == a = 3; b = 3;    a == b  (true)
    striktnφ rovnost === a = 3; b = "3"  a === b   (false!)   Vracφ TRUE pouze kdy₧ je rovna jak hodnota, tak i typ prom∞nnΘ
    nerovnost != a = 5; b = 6;   a != b   (true)
    striktnφ nerovnost !== a = 3; b = "3"  a !== b   (true!)

  • LogickΘ

    a zßrove≥ (AND) && a = 5; b = 6;   a != b && a<b (true)
    nebo (OR) || a = 5; b = 6;   a != b || a>b (true)
    negace (NOT) ! a = 5;      !(a == 5)   (false)


Adresovßnφ p°φkaz∙

N∞kterΘ p°φkazy (nap°. GoTo, Play, atd...) a vÜechny prom∞nnΘ se vztahujφ jen k vlastnφ ΦasovΘ ose.

K adresovßnφ do jinΘ ΦasovΘ osy (v MovieClipu) je nutnΘ pou₧φt tzv. dot syntaxi (dot = teΦka)

pokud tedy budu chtφt z hlavnφ ΦasovΘ osy definovat prom∞nnou s nßzvem "pozdrav" v movie clipu pojmenovanΘm "prvni" bude zßpis vypadat takto:

 prvni.pozdrav = "ahoj";

Tento zßpis je relativnφ. Takto definovanß prom∞nnß by fungovala i kdyby se celß situace odehrßvala uvnit° jinΘho movieclipu (namφsto na hlavnφ ΦasovΘ ose)

Podobn²m zp∙sobem lze definovat prom∞nnou "pozdrav" z moveclipu "prvni" tak aby platil na hlavnφ ΦasovΘ ose:

_parent.pozdrav = "ahoj";

Alias "_parent" znamenß "rodiΦ" neboli "o ·rove≥ v²Ü".
Pozn.: V relativnφ definici existuje jeÜt∞ jeden alias - "this", kter² znamenß "tento". V podstat∞ nenφ nutnΘ ho pou₧φt, proto₧e p°φkazy s nedefinovanou cestou se implicitn∞ vztahujφ ke svΘ ose.

 

Druhß mo₧nost jak definovat cestu je absolutnφ. Je v₧dy nutnΘ pou₧φt alias "_root" (root=ko°en)

_root.prvni.pozdrav = "ahoj";

Tento zßpis bude odkazovat na stejnou pozici a¥ u₧ bude definovßn odkudkoliv.

Pro pohodlnΘ definovßnφ cesty slou₧φ tlaΦφtko se symbolem terΦe:

Vlo₧enφ cφle

 

D∙le₧itΘ!

Abychom mohli jakkoliv scriptov∞ ovliv≥ovat instanci MovieClipu musφme ji pojmenovat. JmΘno instance je nezßvislΘ na jmΘnu symbolu.

Pojmenovßnφ instance

Pokud bychom cht∞li definovat velkΘ mno₧stvφ p°φkaz∙ adresovan²ch do jednoho MovieClipu, byl by to asi p∞kn² zßhul. UrΦit²m usnadn∞nφm je p°φkaz with()

with (_root.prvni.druhy){
    a = 20;
    b = 150;
    c = 150;
}

Je totΘ₧ jako:
_root.prvni.druhy.a = 20;
_root.prvni.druhy.b = 150;
_root.prvni.druhy.c = 150;


Nahoru

Copyright ⌐ Martin Hozφk - All rights reserved.
Flash are registered trademark of Macromedia Inc.