Začínáme s Flash MX 2004 – 21. díl – MP3 přehrávač, první část

Zatím jsme se v našem seriálu nezmínili o možnostech práce se zvukem. Dnešním dílem se začneme podrobněji věnovat funkcím, které nám Flash při práci se zvuky nabízí.

Zvuky ve Flashi

Coby to bylo za animace, kdybychom do nich nemohli začlenit hudební doprovod. Ve Flashi máme hned několik možností, jak pracovat se zvukem. První možností je přímý import zvuku do knihovny symbolů (pomocí File – Import – Import to Library). Z knihovny pak můžeme zvuky libovolně přetahovat do jednotlivých snímků scény a na panelu vlastností příslušného snímku jim měníme zvolené parametry.

My se ale zaměříme na další možnost, kterou je externí načítání a přehrávání zvuků ve formátu mp3. Jiný, než mp3 formát nám Flash neumožňuje externě načítat, ale zato zde máme možnost přehrávání již částečně staženého souboru (streaming).

Jak na mp3 přehrávač?

Jak jsem v titulku uvedl, budeme se dnes snažit vytvořit velmi jednoduchý mp3 přehrávač se základním ovládáním. Vytvoříme si MC, do kterého umístíme tlačítka pro přecházení mezi jednotlivými skladbami, tlačítko pro pauzu, zastavení a opětovné spuštění hudby. Dále do „přehrávače“ vložíme jednoduchý preloader, který nás bude informovat o stavu načtení aktuálního souboru.

K těmto objektům připíšeme několik řádků skriptu a máme první přehrávač hotov!

Objekty přehrávače

Otevřeme si nový dokument a vytvoříme si nový MC, který pojmenujeme „přehrávač“.

Abychom se nezdržovali s tvorbou tlačítek, využijeme již připravená, která najdeme v okně „Buttons“ (Windows – Other Panels – Common Libraries – Buttons).

Můžeme použít „gelová“ tlačítka ze skupiny „Playback“.

Vybereme tlačítka a umístíme je na plochu MC „přehrávač“.

Nad tlačítky nakreslíme obdélník, který bude sloužit jako indikátor stavu načtení jednotlivých souborů.

Klikneme pravým tlačítkem myši na výplň obdélníku a převedeme jej na MC, který pojmenujeme „preloadbar“. Nesmíme zapomenout umístit registrační bod (střed objektu) do levého horního rohu.

Bod je v levé části proto, že budeme měnit velikost tohoto objektu podle načtených procent a chceme, aby se nám objekt roztahoval směrem doprava. Objekt nezapomeneme pojmenovat na panelu vlastností - „preloadbar“.

Šipkou (Selection Tool) vybereme celý obdélník i s okrajem a převedeme jej na MC, který nazveme „preloadstatus“. Opět nezapomeneme na panelu vlastností objekt pojmenovat „preloadstatus“.

Tímto máme objekty hotové a můžeme se věnovat AS. Otevřeme si panel akcí prvního snímku MC „přehrávač“ a vložíme do něj následující kód:

//pole skladeb
skladby = new Array();
skladby[0] = "01.mp3";
skladby[1] = "02.mp3";
skladba = 0;
//nastavení kolik sekund se musí načíst do bufferu, aby se začal soubor přehrávat
_soundbuftime = 10;

Pro jednoduchost si vytvoříme pole skladeb, které obsahuje cesty k mp3 souborům, toto pole může být jakkoliv dlouhé, podle počtu skladeb, které chceme přehrávat. Pokračujeme tímto kódem:

//funkce pro přehrání skladby
startMusic = function (music) {
  song = new Sound();
  song.loadSound(music, true);
  pozice = 0;
  paused = false;
};

Uvedená funkce provede načtení požadovaného souboru. Všimneme si parametru „true“ v příkazu „loadSound“. Ten určuje, že se bude soubor přehrávat ihned po načtení několika sekund, které jsme nastavili pomocí parametru „_soundbuftime“. Pokud tento parametr neurčíme, bude se defaultně začínat od 5 sekund načteného souboru.

Dále pokračujeme několika ovládacími funkcemi:

//funkce pro pauzu přehrávání
pauseMusic = function () {
  if (paused) {
    song.start(pozice, 1);
    paused = false;
  } else {
    pozice = song.position;
    pozice = pozice/1000;
    song.stop();
    paused = true;
  }
};
//funkce pro zastavení přehrávání
stopMusic = function () {
  pozice = 0;
  song.stop();
};
//funkce pro pokračování v přehrávání
playMusic = function () {
  song.start(pozice, 1);
  paused = false;
};
// přechod na další skladbu
nextMusic = function () {
  skladba++;
  if (skladba>=skladby.length) {
    skladba = 0;
  }
  startMusic(skladby[skladba]);
};
//skok na předchozí skladbu
befMusic = function () {
  skladba--;
  if (skladba<=-1) {
    skladba = skladby.length-1;
  }
  startMusic(skladby[skladba]);
};
//začneme přehrávat první skladbu
startMusic(skladby[skladba]);

Po sepsání kódu přiřadíme ovládacím tlačítkům příslušné funkce:

Posledním objektem, kterému přiřadíme akci je „preloadstatus“. Klikneme tedy na něj, otevřeme panel akcí a vepíšeme následující řádky:

onClipEvent (load) {
  preloadbar._xscale = 0;
  this._visible = false;
}
onClipEvent (enterFrame) {
  if (this._parent.song != undefined) {
    celkem = this._parent.song.getBytesTotal();
    nahrano = this._parent.song.getBytesLoaded();
    this._visible = true;
    procNahrano = nahrano/(celkem/100);
    preloadbar._xscale = procNahrano;
    if (celkem == nahrano) {
      this._visible = false;
      preloadbar._xscale = 0;
    } else {
      this._visible = true;
    }
  }
}

Zde testujeme existenci objektu „song“ a následně vyhodnocujeme stav jeho načtení, podle kterého měníme velikost obdélníku, objektu „preloadbar“.

Po dopsání uvedeného skriptu máme hotovo, stačí jen otevřít knihovnu symbolů, přetáhnout objekt „přehrávač“ na scénu a můžeme testovat.

Samozřejmě, že se jedná o velmi jednoduchý příklad, který by si zasloužil další vylepšení. Proto se v příštím díle zaměříme na zpracování a zobrazení informací, které nám nabízejí ID3 tagy mp3 skladeb.

Náhled dnešní ukázky je k dispozici zde.

Zdrojový soubor ukázka ke stažení zde.

Diskuze (10) Další článek: Ke stažení: nové verze Skype a Nera

Témata článku: , , , , , , , , , , , , , , , , , , , ,