Flash Help
Flash
ActionScript
Příklady





Webmaster

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


W3C Validita

      HTML 4.0 validní




FAQ

Frequently asked questions


Pokud máte nějaký problém nebo nápad, stačí, když mi napíšete mail (hozikm@seznam.cz), nebo použijete formulář vlevo.


Q:
Kde můžu sehnat ten hranatý font co máte použitý v logu stránky?


A:
Při návrhu těchto stránek jsem hledal font na popisky, který je nenápadny a jednoduchý... Jak to tak vidím, nepovedlo se :)
Budiž.. Když vám ten font připadá tak sexy, tak si poslužte.


Q:
Jak udělám 3D objekt?


A:
Trojrozměrné objekty nejdou ve Flashi nakreslit přímo. Objekt je nutné vytvořit pomocí ActionScriptu. Programování takovýchto objektů je velmi náročné a proto se používají programy, které dokáží s 3D objekty manipulovat a které kód vygenerují. Například Swift3D nebo Vectra3D a spoustu dalších.


Q:
Jak mám vytvořit ve Flashi formulář podle HTML formuláře (se zachovanou funkčností).


A:
Tak tedy, nejprve HTML předloha, třeba tato:

<form action="http://www.server.cz/skript.php" method="post">
   <input type="hidden" name="uzivatel" value="165879">
   <input type="text" name="subject" value="dotaz">
   <textarea name="zprava">sem napište, co máte na srdci...</textarea>
   <input type="submit">
</form>

A teď jak to udělat ve Flashi:

  • skryté pole (hidden) v HTML nejsou vidět a nejdou editovat. Jsou ekvivalentní k Flashovým proměnným. Proto tedy tyto pole nahradíme globálními proměnnými, které můžeme vložit do prvního snímku.
    uzivatel = 165879;
    
  • kolonka (text) je editovatelná a proto ji nahradíme Input textem "Single Line" a do pole "Var" napíšeme jméno proměnné. V našem případě "subject"
  • textová oblast (textarea) je také editovatelná a navíc dovoluje zadat víceřádkový vstup - nahradíme ji tedy Input textem "Multiline" a do pole "Var" napíšeme "zprava"
  • nakonec máme odesílací tlačítko (submit). To ve Flashi nahradíme klasickým tlačítkem (button), kterému definujeme:
    on (release) {
       getURL("http://www.server.cz/skript.php", "", "POST");
    }
    

Předpokládám, že alespoň trochu ovládáte HTML. Pokud ne, navštivte www.jakpsatweb.cz, kde je vše velmi podrobně vysvětleno.
 


Q:
Jaký je příkaz pro stažení souboru?


A:
Tento dotaz je zcela irelevantní. Ve Flashi, stejně jako v HTML, nelze definovat, co se má otevřít a co stáhnout na disk. Pokud tedy použijeme příkaz:

getURL("http://www.flash-help.wz.cz/stranka.html") 
...otevře se nám HTML stránka v okně prohlížeče. Pokud však nalinkujeme soubor s příponou, kterou má prohlížeč nastavenu jako nespustitelnou:
getURL("http://www.flash-help.wz.cz/soubor.zip")
...zobrazí se žádost o stažení souboru.

Q:
Jak mám načíst proměnnou z externího souboru a pak ji do něj zpátky uložit?


A:
Tyto dotazy se poslední dobou hodně množí v mé e-mailové schránce, tak tedy:

  • Načtení
    pro načtení proměnné použijeme následující příkaz:
    loadVariables("soubor.txt", "movieclip", )
    
    - soubor.txt .....zdojový soubor
    - movieclip .....tzv. target - je to cíl, kam se natáhnou proměnné. Většinou tato volba slouží ke kontrole, jestli je načítaní dat ukončené. Instanci MovieClipu "movieclip" pak definujeme třeba toto:
    onClipEvent (data) {
        _root.Play();
    }
    

    Takto je zaručené, že animace bude pokračovat v přehrávání až po úspěšném natažení všech proměnných (přirozeně musí být animace zastavena pomocí příkazu Stop())

    Důležité! - soubor musí být umístěn ve stejné subdoméně, jako animace (bezpečnostní opatření)

  • Uložení
    Samotný Flash nemá povolen jakýkoliv zápis dat do souborů (podobně jako JavaScript). Zápis dat proto musíme svěřit nějakému serverovému (pracuje na serveru) skriptu - např. PHP

    V samotné animaci můžeme použít následující příkaz:
    getURL("skript.php", "", "POST");
    
    Soubor skript.php bude vypadat následovně:
    <?
       $fp = fopen("soubor.txt", "w");
       fwrite($fp, "nazev_promenne=$nazev_promenne");
       fclose($fp);
    ?>
    
    Nakonec připomenu, že server musí mít nainstalovaný PHP interpreter
    (např.: www.webzdarma.cz)


Q:
Jak udělám odkaz na e-mail (aktivní e-mail)?

 

A:
Stejně jako v HTML:

getURL("mailto:hozikm@seznam.cz");

Q:
Ve Flashi mi nefunguje čeština u některých fontů, přitom v ostatních aplikacích (Word) je to v pohodě.


A:
Flash má problém se zobrazením správné diakritiky u tzv. OpenType fontů (Verdana, Tahoma, v novějších Windowsech i Arial a Times New Roman). Verze MX již podporuje Unicode UTF-8 a slibovala i bezvadnou podporu národních znakových sad - nestalo se. Je tedy nutná úprava souboru win.ini resp. registrů:

  • Windows 95/98/98SE/ME
    - je nutná změna v souboru c:\windows\win.ini
    - stačí přidat do sekce [FontSubstitutes] následující příkazy:
       Times New Roman CE,0=Times New Roman,238
    

    atd. pro další fonty…


  • Windows XP
    - tento systém již soubor win.ini nepoužívá, je tedy nutná změna registrů
    - nastavení je možné buď pomocí programu regedit, nebo pomocí editačního souboru (koncovka REG)
    - otevřete si poznámkový blok (notepad) a do něj napište následující příkazy:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
    CurrentVersion\FontSubstitutes]
    "Times New Roman CE,0"="Times New Roman,238"
    "Verdana CE,0"="Verdana,238"
    
    …atd. pro každý font, který používáte.
    - nakonec uložte soubor s koncovkou *.REG a spusťte, a na stupidní dotaz systému, jestli jste si jist, odpovězte "Ano"

Mimochodem tento postup funguje rovněž v programu CorelDraw, který má stejnou slabost jako Flash.

Bouchejte šampaňským! - ve verzi MX2004 předchozí postupy nejsou potřeba!!


Q:
Mám velký problém při posílání proměnných z Flashe do PHP scriptu. Místo znaků s háčky a čárkami se mi objevují nějaké paznaky. Přitom ve Flashi 5 je to bez problému.

 

A:
Měl jsem podobný problém s češtinou ve Flashi MX. Je to způsobeno tím, že Flash MX začal používat kódování Unicode-UTF 8 a to někdy dělá problémy, zejména při komunikaci s aplikacemi, které UTF-8 neovládají (např. PHP). Stačí vložit někde na začátek animace tento příkaz: system.useCodepage = true.


Q:
Jak velkou FrameRate mám používat?

 

A:
To záleží na povaze animace. Implicitní nastavení je 12fps. Obecně platí, že pro hodně pohyblivou animaci se hodí něco mezi 16 až 25fps - větší framerate už je zbytečná. Naopak pro převážně statickou animaci (menu, textové pole, formuláře), kde se využívá spíše barevných a odstínových transformací, stačí i míň. Mějte však na paměti, že především starší počítače mohou mít s 18 snímky za sekundu problémy. Poněkud odlišnou skupinu tvoří animace, ve kterých se používají akce typu Drag (uchopení) a DuplicateMovieClip (duplikování). V těchto animacích je kvůli nutnosti rychlé zpětné vazby potřeba zvednout framerate až na astronomických 50 - 70 fps, nebo použít funkci updateAfterEvent().
Pamatujte na to, že nejvíc počítač zatěžují průhledné objekty (alpha) - nejhůř, když se jich několik překrývá.


Q:
Jak otevřu pomocí příkazu GetURL stránku v novém okně nebo případně v určitém rámu?

 

A:
Pro tyto účely existuje u příkazu GetURL roletka s názvem "Window"

  • _self = stejný frame
  • _blank = nové okno
  • _parent = frame o úroveň výš
  • _top = nejvyšší úroveň (celé okno)

Pokud zaškrtnete "Expression", můžete napsat přímo název rámu, kde se má volaná stránka zobrazit.

getURL("http://www.flash-help.wz.cz", "_blank");






Nahoru

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