MP3 PREHRAVAC S EKVALIZEROM A XML ZOZNAMOM as3 , xml |
Táto prvá časť actionscriptu načíta všetky pesničky z xml zoznamu spolu s ich názvami a menami autorov. Je dôležité aby
názvy pesničiek presne sedeli so samotnými názvami mp3 súborov , zatial čo mená autorov môžu byť ľubovolné. Každá z týchto pesničiek je pridaná do list komponentu a je označená číslom, názvom a menom autora a je automaticky vybraná prvá skladba v poradí.
Teraz označte druhý frame a naň vložte tento script:
songURL = new URLRequest("mp3_files/" + trackToPlay + ".mp3");
Táto časť načíta novú pesničku potom ako je označená v list komponente. Teraz vyberte posledný prázdny frame a vložte poslednú čast actionscriptu.
stop(); var snd:Sound = new Sound(); var channel:SoundChannel; var context:SoundLoaderContext = new SoundLoaderContext(5000, true); snd.load(songURL, context); channel = snd.play(pausePosition); list.addEventListener(Event.CHANGE, itemClick); function itemClick (event:Event):void { channel.stop(); // stop play Rtext.status_txt.text = "Now Playing: " + event.target.selectedItem.label + ".mp3"; trackToPlay = event.target.selectedItem.songString; Rtext.gotoAndPlay(1); gotoAndPlay(2); } stop_btn.addEventListener(MouseEvent.CLICK, stopPlayer); function stopPlayer (event:MouseEvent):void { channel.stop(); Rtext.gotoAndStop(240); } channel.addEventListener(Event.SOUND_COMPLETE, onCompletePlayback); function onCompletePlayback (event:Event):void { newTrack(); } function newTrack():void { if (list.selectedItem.songNum == i) { channel.stop(); var selectFirst = new Array (0,0); list.selectedIndices = selectFirst; list.scrollToIndex(0); trackToPlay = list.selectedItem.songString; Rtext.status_txt.text = "Now Playing: " + list.selectedItem.label + ".mp3"; gotoAndPlay(2); } else { channel.stop(); var sn:uint = list.selectedItem.songNum; var selectNext = new Array (sn,sn); list.selectedIndices = selectNext; list.scrollToIndex(sn); trackToPlay = list.selectedItem.songString; Rtext.status_txt.text = "Now Playing: " + list.selectedItem.label + ".mp3"; gotoAndPlay(2); } pausePosition = 0; } addEventListener(Event.ENTER_FRAME, onEnterFrame); function onEnterFrame(event:Event):void { eqBarLeft1.gotoAndStop (Math.round(channel.leftPeak * 10) ); eqBarRight1.gotoAndStop (Math.round(channel.rightPeak * 8) ); eqBarLeft2.gotoAndStop (Math.round(channel.leftPeak * 7) ); eqBarRight2.gotoAndStop (Math.round(channel.rightPeak * 7) ); eqBarLeft3.gotoAndStop (Math.round(channel.leftPeak * 8) ); eqBarRight3.gotoAndStop (Math.round(channel.rightPeak * 10) ); }
Riadky 3-7 definujú nový sound objekt a priradia ho k novému zvukovému kanálu. Riadky 9-17 vytvoria event listener funkciu. Ak sa klikne na niektorú z pesničiek v liste,
tá zmení práve hrajúcu pesničku na novú ktorá bola práve označená. Riadky 20-24 su funkcia pre stop tlačidlo. Zastaví práve hrajúci zvuk a posunie Rtext movieclip na prázdny frame.
Na riadkoch 28-51 je funkcia ktorá kontroluje či už pesnička dohrala a načíta novú, v poradí nasledujúcu skladbu a tiež zmení bežiaci text. Posledná časť scriptu rozpohybuje stĺpce ekvalizéra podľa
výšok v pravom a ľavom zvukovom kanále. Poslednou časťou ktorú potrebujeme je xml zoznam. Ako som už spomenul názvy skladieb musia súhlasiť s mp3 súbormi v mp3_files zložke. Mená skladateľov / interpretov sú nepovinné.
Tento xml kód reprezentuje jednu skladbu v liste. Kopírovaním riadkov 4-7 medzi xml tagmi možno pridávať ďalšie pesničky do zoznamu. Jednoducho vytvorte nový xml súbor
a vložte doň tento kód. V prípade potreby všetky vyžadované súbory sú na stiahnutie v zdrojovom súbore vrátane xml,*.fla a aj mp3 pesničiek.
|