Preloader

K čemu preloader slouží:

Pokud umisťujete nějaký Flashový produkt na internet, měl by být co možná nejmenší, aby se nestahoval dlouho. Ale ne vždy to jde. Právě proto byste měli použít preloader, který zabrání tomu, aby se animace spustila ještě než se celá načte. Flashová animace totiž nemusí být načtená celá, aby se mohla rozjet. Jenomže pokud ještě není celá v paměti, dříve nebo později se začne sekat a trhat. Takže doporučuji preloader používat.

Příprava:

Vytvořte nový movie clip, který pojmenujte preloader. Zde udělejte jakoukoliv animaci, která bude dlouhá přesně sto snímků. Pokud chcete klasiku, narýsujte Line toolem čáru, na prvním snímku bude mít nulovou šířku a na stém framu třeba 250. Souřadnice na obou keyframech dejte X:0 Y:0.

Do druhé vrstvy narýsujte stejně dlouhou čáru s jinou barvou a opět dejte souřadnice X:0, Y:0. Tuto vrstvu dejte jako spodní. Animaci na prvním snímku zastopkujte příkazem stop();.

Vložte tento MC do hlavní scény. Pod tento MC poté vytvořte dynamické textové pole, které pojmenujte "stahnuto". Vložte druhý keyframe na druhý snímek hlavní časové osy, kde naimportujte nějaký větší obrázek, který se bude déle načítat. Zastopkujte hlavní časovou osu na druhém snímku příkazem stop();

Skriptování:

K instanci "stahnuto" dejte tento skript:
onClipEvent (enterFrame) {
  if (_root.getBytesLoaded() >= _root.getBytesTotal()) {
    _root.gotoAndPlay(2);
  } else {
  stazeno=Math.floor((_root.getBytesLoaded()/_root.getBytesTotal())*100);
  this.gotoAndStop(stazeno);
  _root.stahnuto.text=stazeno+"%";
  }
}

Vše se bude odehrávat každý frame. If na druhém řádku porovnává již nahrané data s celkovou velikostí animace. Pokud se nahraná data rovnají velikosti animace (nebo jsou vyšší - pro jistotu, protože flash nemusí počítat přesně), přesune hlavní časovou osu na snímek dva, kde máte vložený obrázek.

Jestliže je podmínka false (tj. již načtená data ještě nejsou tak velká jako je celková velikost souboru), přiřadí se proměnné stazeno zaokrouhlená hodnota podílu načtených dat a celkové velikosti, to celé vynásobené stem, čímž získáte procentuální podíl načtených dat. Na dalším řádku pošlete tento MC na snímek "stazeno" (čímž se vytvoří relativně plynulý pohyb) a do dynamického pole necháte vypsat stav načítání (stazeno).

Ještě jedna poznámka nakonec. Pokud budete ten skript spouštět z disku, tak vám nebude fungovat příliš efektivně, protože z disku se požadovaná fotografie natáhne rychle. Buďto musíte *.swf nahrát na internet nebo po spuštění animace použít View → Show Streaming. Tato funkce simuluje právě rychlost načítání dat. Samotnou rychlost si můžete upravit v Debug.

prohlédnout
stáhnout zdroják
další příklad - Plamínek

hlavní stránka # o tento web se stará Lukáš Havrlant # lukas.havrlant@gmail.com