|
|
Látogatók száma eddig: 121305 | |
| |
Lapletöltések száma: 173370 |
|
|
Ma 2010. Szeptember 8.
szerda van. A mai névnaposok:
Mária, Adrienn.
Boldog névnapot!
|
|
|
Blogon található anyagok: |
|
| Témák száma: |
12 téma |
|
| Leírások száma: |
68 leírás |
|
| Példák száma: |
136 példa |
|
| Oldalak száma: |
145 oldal |
|
|
|
11 Több hang betöltése ( külső osztály verzió )
Olvasva: 2636 alkalommal.
|
|
A tartalommal és a bloggal kapcsolatos hozzászólásokat leírhatod, az Swf.hu oldalon erre a célra kialakított fórumtémában. Cím : Ducky AS3 blog. A fórum használatához Swf.hu regisztráció szükséges.
|
A Töltéskijelző megoldások csoportban Hangfájl betöltése címen található egy leírás, hogy külső hangfájlt hogyan lehet betölteni, lejátszani és a töltés folyamatát kijelezni. Most nézzük meg azt, hogy hogyan lehet több hangfájlt betölteni egy moziba, például egy Mp3 lejátszó alkalmazás keretein belül. Mivel itt több összetevő is van az alap moziban, így az alap forrás letölthető ITT. A Flash mozi a lenti képen látható paraméterekkel készült. A Properties panelen a Document class mezőben adjuk meg a TobbHangBetoltese osztályt.
A mozin belül már el vannak készítve a szükséges MovieClip-ek (mc) és el vannak helyezve a megfelelő rétegeken. Az instance neveket is megadtuk. A működő verzió megtekinthető a lenti példában.
Flash Lejátszó Hiányosság!
Az oldal Flash tartalmainak megtekintéséhez Flash 9-es lejátszó szükséges.
Az ön gépén található Flash lejátszó régebbi verzió.
Kérjük, hogy a lenti logóra kattintva frissítse a lejátszóját.

Most pedig készítsük el a vezérlő AS kódot, amelyet az FLA fájlal azonos mappába mentsünk el TobbHangBetoltese.as néven. Ez megegyezik az osztály nevével.
/* TobbHangBetoltese.as */
//
package {
// szükséges csomag
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
// TobbHangBetoltese osztály
public class TobbHangBetoltese extends Sprite {
// tulajdonságok
private var hangTarolo:Sound;
private var hangCsatorna:SoundChannel;
private var zenefajlCime:URLRequest;
private var stopPozicio:int;
private var playerEnged:Boolean;
// konstruktor
public function TobbHangBetoltese () {
stopPozicio = 0;
hangCsatorna = new SoundChannel();
panelMozi.visible = false;
loaderMozi.visible = false;
playerEnged = false;
esemenyekKiosztasa ();
}
// eseménykiosztó metódus
private function esemenyekKiosztasa ():void {
panelMozi.playGomb.addEventListener ( MouseEvent.CLICK, playEsemeny );
panelMozi.pauseGomb.addEventListener ( MouseEvent.CLICK, pauseEsemeny );
panelMozi.stopGomb.addEventListener ( MouseEvent.CLICK, stopEsemeny );
for (var i:int = 0; i < 3; i++) {
var acGb:MovieClip = getChildByName( "zeneGomb" + i ) as MovieClip;
acGb.stop ();
acGb.buttonMode = true;
acGb.zeneNeve = "SoundLoop" + i + ".mp3";
acGb.addEventListener ( MouseEvent.ROLL_OVER, zenegombOver );
acGb.addEventListener ( MouseEvent.ROLL_OUT, zenegombOut );
acGb.addEventListener ( MouseEvent.CLICK, zenetoltInditas );
}
}
// zenegomb ROLL_OVER metódus
private function zenegombOver ( eData:MouseEvent ):void {
eData.target.gotoAndStop ( 2 );
}
// zenegomb ROLL_OUT metódus
private function zenegombOut ( eData:MouseEvent ):void {
eData.target.gotoAndStop ( 1 );
}
// letöltés indítás metódus
private function zenetoltInditas ( eData:MouseEvent ):void {
panelMozi.visible = false;
loaderMozi.visible = true;
playerEnged = false;
hangCsatorna.stop ();
hangTarolo = new Sound();
hangTarolo.addEventListener ( Event.COMPLETE, toltesKeszen);
hangTarolo.addEventListener ( ProgressEvent.PROGRESS, toltesFolyamatban );
loaderMozi.visible = true;
zenefajlCime = new URLRequest( eData.target.zeneNeve );
hangTarolo.load ( zenefajlCime );
}
// letöltés készen metódus
private function toltesKeszen ( eData:Event ):void {
loaderMozi.visible = false;
panelMozi.visible = true;
panelMozi.animMozi.gotoAndStop ( 2 );
hangCsatorna = eData.target.play( stopPozicio );
hangTarolo.removeEventListener ( Event.COMPLETE, toltesKeszen);
hangTarolo.removeEventListener ( ProgressEvent.PROGRESS, toltesFolyamatban );
}
// letöltés folyamatban metódus
private function toltesFolyamatban ( eData:ProgressEvent ):void {
var toltesAdat:Number = eData.bytesLoaded / eData.bytesTotal;
loaderMozi.csikMozi.scaleX = toltesAdat;
loaderMozi.kiirText.text = Math.round( toltesAdat * 100 ) + " %";
}
// play gomb CLICK metódus
private function playEsemeny ( eData:MouseEvent ):void {
if ( playerEnged ) {
zeneElinditas ();
if ( stopPozicio == 0 ) {
panelMozi.animMozi.gotoAndStop ( 2 );
} else {
panelMozi.animMozi.belMozi.play ();
}
}
}
// pause gomb CLICK metódus
private function pauseEsemeny ( eData:MouseEvent ):void {
if ( !playerEnged ) {
stopPozicio = hangCsatorna.position;
panelMozi.animMozi.belMozi.stop ();
zeneLeallitas ();
}
}
// stop gomb CLICK metódus
private function stopEsemeny ( eData:MouseEvent ):void {
if ( !playerEnged ) {
stopPozicio = 0;
panelMozi.animMozi.gotoAndStop ( 1 );
zeneLeallitas ();
}
}
// zene indító metódus
private function zeneElinditas ():void {
hangCsatorna = hangTarolo.play( stopPozicio );
playerEnged = false;
hangCsatorna.addEventListener ( Event.SOUND_COMPLETE, zenevegeEsemeny );
}
// zene leállító metódus
private function zeneLeallitas ():void {
hangCsatorna.stop ();
playerEnged = true;
hangCsatorna.removeEventListener ( Event.SOUND_COMPLETE, zenevegeEsemeny );
}
// zene vége, újrakezdés metódus
private function zenevegeEsemeny ( aData:Event ):void {
stopPozicio = 0;
hangCsatorna = hangTarolo.play( stopPozicio );
hangCsatorna.addEventListener ( Event.SOUND_COMPLETE, zenevegeEsemeny );
}
}// osztály vége
}// csomag vége
//
Ha a több fájl betöltését kombináljuk a lejátszás kijelzésével és a spektrum analízissel, akkor máris kapunk egy komplett Mp3 lejátszót. Ha precízek akarunk lenni, akkor pl. az XML csoportban tanultakat felhasználva készíthetünk egy XML tárolót, amiben eltároljuk a zenéket, címeket, stb. és a player abból fog táplálkozni. A forrás letölthető ITT.
|
|