Autor | Zpráva | ||
---|---|---|---|
tukann Profil |
#1 · Zasláno: 28. 1. 2009, 23:06:49 · Upravil/a: tukann
Ahoj, poradí mi někdo jakožto člověku AS neznalému jak v následujícím kódu docílit toho, aby se název písně když je delší než šířka políčka posouval neustále a ne pouze po najetí myší nad název? Děkuji velice za případné řešení! V akci k vidění zde:http://strekovskehudebnileto.cz/pokus/
var zvuky:Array = new Array(); // Pole cest k mp3 souborům var zvukyNazev:Array = new Array(); // Pole názvů skladeb var maxPocet:Number; // Pocet skladeb var pozice:Number = 0; // Neuložená pozice času přehrávaní var pozice2:Number = 0; // Uložená pozice času přehrávaní var a:Number = 0; // Číslo určující právě přehrávanou skladbu var zvuk:Sound = new Sound(); var typ:Number; // Typ formátu zobrazovaného času var noPlay:Boolean = true; // Má-li se hrát od začátku nebo od určité části var barva:Color = new Color(playlist_mc.kryti_mc.barva_mc); // Barva schéma přehrávače playlist_mc.kryti_mc.barva_mc._visible = false; // Externí data, podle kterých se přehrávač nastaví var kokie:SharedObject = SharedObject.getLocal("mp3player"); if (kokie.data.played == undefined) { kokie.data.played = "stop"; } if (kokie.data.cas == undefined) { kokie.data.cas = new Number(0); } if (kokie.data.pisen == undefined) { kokie.data.pisen = new Number(0); } if (kokie.data.nazev == undefined) { kokie.data.nazev = ""; } if (kokie.data.typ == undefined) { kokie.data.typ = new Number(1); typ = 1; } else { typ = kokie.data.typ; } if (kokie.data.skladbaTxt == undefined) { kokie.data.skladbaTxt = true; } if (kokie.data.played == "play") { a = kokie.data.pisen; pozice2 = kokie.data.cas; } // Když se nahrává skladba a má se spustit od určitého času (voláno v "_root.onEnterFrame") function nahrano() { if (kokie.data.played == "play") { var loading:Number = (zvuk.getBytesLoaded() / zvuk.getBytesTotal()) * 100; if (loading > ((pozice2 * 1000) / zvuk.duration * loading) ) { pause_btn._visible = true; play_btn._visible = false; zvuk.start(pozice2, 0); delete nahrano; } } } // Získání seznamu hudby z "pisne.xml" var externiData:XML = new XML(); externiData.ignoreWhite = true; externiData.onLoad = function() { var barvicka = "0x" + externiData.firstChild.attributes.barvaPozadi; // Nastavení barvy pozadi if (externiData.firstChild.attributes.barvaPozadi != undefined) { barva.setRGB(barvicka); } playlist_mc.kryti_mc.barva_mc._visible = true; var maxPocet:Number = externiData.firstChild.childNodes.length; // Počet písniček _root.maxPocet = maxPocet; for(var j:Number = 0; j < maxPocet; ++j) { var jmeno:String = externiData.firstChild.childNodes[j].attributes.URL; zvuky[j] = jmeno; // Pole cest k písním var nazev:String = externiData.firstChild.childNodes[j].firstChild.nodeValue; zvukyNazev[j] = nazev; // Pole názvu písní if (kokie.data.nazev == zvukyNazev[j]) { // Když minulá poslední píseň existuje noPlay = false; a = j; } } var mezera:Number = 16.5; for(var i:Number = 0; i < maxPocet; ++i) { // Vytvožní seznamu v playlistu var jmenoPol:String = "polozka" + i + "_mc"; playlist_mc.list_mc.attachMovie("polozka", jmenoPol, i); playlist_mc.list_mc[jmenoPol]._y = i * mezera; playlist_mc.list_mc[jmenoPol].poradi_txt.text = i + 1; playlist_mc.list_mc[jmenoPol].nazev_txt.text = zvukyNazev[i]; playlist_mc.list_mc[jmenoPol].poradi = i; playlist_mc.list_mc[jmenoPol].onRelease = vyber; playlist_mc.list_mc[jmenoPol].onRollOver = mysNad; playlist_mc.list_mc[jmenoPol].onRollOut = mysPryc; playlist_mc.list_mc[jmenoPol].onMouseMove = zakryti; } if (noPlay) { // Když minulá poslední píseň neexistuje, tak hrát od první skladby delete nahrano; a = 0; pozice2 = 0; } zvuk.loadSound(zvuky[a], true); zvuk.stop(); skladba_txt.text = zvukyNazev[a]; kokie.data.nazev = zvukyNazev[a]; posun(); konec = (playlist_mc.list_mc._y - playlist_mc.list_mc._height + playlist_mc.podklad_mc._height); sirkaZobrazeni(); } externiData.load("pisne.xml"); // Funkce pro kliknutí na skladbu v playlistu function vyber() { if (!playlist_mc.kryti_mc.hitTest(_xmouse, _ymouse, true)) { for (var k:Number = 0; k < maxPocet; ++k) { var jmenoPol:String = "polozka" + k + "_mc"; playlist_mc.list_mc[jmenoPol].gotoAndStop(1); } a = this.poradi; this.gotoAndStop(2); zvuk.stop(); zvuk.start(); zvuk.loadSound(zvuky[a], true); zvuk.setVolume(hlasitost); skladba_txt.text = zvukyNazev[a]; kokie.data.nazev = zvukyNazev[a]; pause_btn._visible = true; play_btn._visible = false; kokie.data.played = "play"; } } // Když je text delší než kolonka, tak text posouvat var intervalPosTextu:Number; var posTextuTed:Boolean = false; function posouvaniTextu(co) { var str:String = eval(co).nazev_txt.text; var delka:Number = eval(co).nazev_txt.length; eval(co).nazev_txt.text = str.substring(1, delka); if (eval(co).nazev_txt.textWidth <= 95) { clearInterval(intervalPosTextu); } } // Funkce pro najetí kurzoru nad skladbu v playlistu function mysNad() { if (this._currentframe != 2) { this.gotoAndStop(3); } if (this.nazev_txt.textWidth > 95) { intervalPosTextu = setInterval(posouvaniTextu, 100, this); posTextuTed = true; } } // Funkce, když se sjede s kurzorem pryč function mysPryc() { if (this._currentframe != 2) { this.gotoAndStop(1); } if (posTextuTed) { this.nazev_txt.text = zvukyNazev[this.poradi]; clearInterval(intervalPosTextu); posTextuTed = false; } } // Zvýraznění aktuání přehrávané skladby function posun() { for (var k:Number = 0; k < maxPocet; ++k) { var jmenoPol:String = "polozka" + k + "_mc"; playlist_mc.list_mc[jmenoPol].gotoAndStop(1); } var jmeno:String = "polozka" + a + "_mc"; playlist_mc.list_mc[jmeno].gotoAndStop(2); } // Posunutí playlistu var posunutiListu:Number = 0; var smerSamo:String; var okSamo:Boolean = false; var jmenoSkladby:String; function posunListu() { jmenoSkladby = "polozka" + a + "_mc"; if (playlist_mc.list_mc[jmenoSkladby]._y + posunutiListu < 0) { smerSamo = "up"; okSamo = true; } if (playlist_mc.list_mc[jmenoSkladby]._y + posunutiListu > playlist_mc.podklad_mc._height - 20) { smerSamo = "down"; okSamo = true; } } // Mizení handKurzoru, když neni kurzor přímo na playlistu function zakryti() { if (this.hitTest(_xmouse, _ymouse, true) && playlist_mc.kryti_mc.hitTest(_xmouse, _ymouse, true)) { this.useHandCursor = false; } else { this.useHandCursor = true; } } // Funkce zobrazování času function cas() { // Aktuální čas ted = Math.round(zvuk.position / 1000); if (isNaN(ted)) { ted = 0; } minuty = Math.floor(ted / 60); sekundy = ted - (minuty * 60); if (sekundy < 10) { sekundy = "0" + sekundy; } // Celkový čas celek = Math.round(zvuk.duration / 1000); if (isNaN(celek)) { celek = 0; } minutyC = Math.floor(celek / 60); sekundyC = celek - (minutyC * 60); if (sekundyC < 10) { sekundyC = "0" + sekundyC; } // Čas pozpátku X = celek - ted; minutyX = Math.floor(X / 60); sekundyX = X - (minutyX * 60); if (sekundyX < 10) { sekundyX = "0" + sekundyX; } // Formátování času podle typu if (typ == 1) { var cas = minuty + ":" + sekundy + " / " + minutyC + ":" + sekundyC; } else if (typ == 2) { var cas = "-" + minutyX + ":" + sekundyX + " / " + minutyC + ":" + sekundyC; } else if (typ == 3) { var cas = "-" + minutyX + ":" + sekundyX; } else if (typ == 4) { var cas = minuty + ":" + sekundy; } else if (typ == 5) { var cas = minutyC + ":" + sekundyC; } else if (typ == 6) { var cas = ""; } return cas; } // Posouvání textu aktuální skladby, když je předlouhý var intervalZobrazeni:Number; var zobrazeniTed:Boolean = false; function posouvaniTextuZobrazeni() { var str:String = skladba_txt.text; var delka:Number = skladba_txt.length; skladba_txt.text = str.substring(1, delka); if (skladba_txt.textWidth <= 110 - cas_txt.textWidth) { clearInterval(intervalZobrazeni); } } // Měnění velikosti textového pole aktuální skladby function sirkaZobrazeni() { skladba_txt._width = (typ != 6) ? 115 - cas_txt.textWidth : 123; } // Měnění formátu zobrazení času casTxt_mc.onPress = function() { typ++; if (typ > 6) typ = 1; kokie.data.typ = typ; }; // Nastavení, zda-li má být zobrazována aktuální skladba skladba_txt._visible = kokie.data.skladbaTxt; skladbaTxt_mc.onPress = function() { skladba_txt._visible = !skladba_txt._visible; kokie.data.skladbaTxt = skladba_txt._visible; }; // Posouvání času, když není celý zobrazený skladbaTxt_mc.onRollOver = function() { if (skladba_txt.textWidth > 110 - cas_txt.textWidth) { intervalZobrazeni = setInterval(posouvaniTextuZobrazeni, 100); zobrazeniTed = true; } }; skladbaTxt_mc.onRollOut = function() { if (zobrazeniTed) { skladba_txt.text = zvukyNazev |
||
FlashManiac Profil |
#2 · Zasláno: 29. 1. 2009, 14:09:07
melo by se jednat o udalosti v tech poslednich radcich
skladbaTxt_mc.onRollOver = function() { if (skladba_txt.textWidth > 110 - cas_txt.textWidth) { intervalZobrazeni = setInterval(posouvaniTextuZobrazeni, 100); zobrazeniTed = true; } }; skladbaTxt_mc.onRollOut = function() { if (zobrazeniTed) { skladba_txt.text = zvukyNazev zde oddelat ty udalosti onRoll a vlozit to tak, aby se to nasavovalo pri kazde zmene pisnicky |
||
tukann Profil |
#3 · Zasláno: 29. 1. 2009, 18:30:02
„onRollOut “
Díky moc, jdu si s tím hrát, netuším totiž co vložit aby došlo k "nasávání" při změně písničky...jinak co jsem na to koukal, myslel jsem, že jde o "// Posouvání času, když není celý zobrazený " na druhou stranu mi bylo divný co víc může být v čase audia než max hodiny, minuty a vteřiny...ke všemu ještě ten script pokračuje: // Posouvání času, když není celý zobrazený skladbaTxt_mc.onRollOver = function() { if (skladba_txt.textWidth > 110 - cas_txt.textWidth) { intervalZobrazeni = setInterval(posouvaniTextuZobrazeni, 100); zobrazeniTed = true; } }; skladbaTxt_mc.onRollOut = function() { if (zobrazeniTed) { skladba_txt.text = zvukyNazev[a]; clearInterval(intervalZobrazeni); zobrazeniTed = false; } }; // Zobrazování časového průběhu var prejezd:Boolean = false; var maxOsa:Number = 115; osa_mc.onPress = function () { prejezd = true this.onEnterFrame = function() { cas_mc._xscale = Math.max(0, Math.min(100, (_root._xmouse - 17) / maxOsa * loading_mc._xscale)); } }; function osaRelease() { prejezd = false; klik = (_root._xmouse - 17) / maxOsa * 100; pozice = ((klik / 100) * zvuk.duration) / 1000; zvuk.stop(); zvuk.start(pozice, 1); pause_btn._visible = true; play_btn._visible = false; kokie.data.played = "play"; delete this.onEnterFrame; } osa_mc.onRelease = osaRelease; osa_mc.onReleaseOutside = osaRelease; play_btn.onRelease = function() { zvuk.start(pozice, 1); pause_btn._visible = true; play_btn._visible = false; kokie.data.played = "play"; }; pause_btn.onRelease = function() { pozice = zvuk.position / 1000; zvuk.stop(); pause_btn._visible = false; play_btn._visible = true; kokie.data.played = "pause"; }; stop_btn.onRelease = function() { pozice = 0; zvuk.stop(); zvuk.start(pozice, 1); zvuk.stop(); pause_btn._visible = false; play_btn._visible = true; kokie.data.played = "stop"; }; function dopDoz() { // Pro "doz_btn" a "dop_btn" zvuk.stop(); zvuk.start(); zvuk.loadSound(zvuky[a], true); zvuk.setVolume(hlasitost); skladba_txt.text = zvukyNazev[a]; kokie.data.nazev = zvukyNazev[a]; pause_btn._visible = true; play_btn._visible = false; kokie.data.played = "play"; posun(); posunListu(); } doz_btn.onRelease = function() { if (a == 0) { a = zvuky.length - 1; } else { a -= 1; } dopDoz(); }; dop_btn.onRelease = function() { if (a == (zvuky.length - 1)) { a = 0; } else { a += 1; } dopDoz(); }; // Když dohraje aktuální skladba, tak hrát další zvuk.onSoundComplete = function() { if (++a < maxPocet) { // nic :) } else { a = 0; } zvuk.stop(); zvuk.start(); zvuk.loadSound(zvuky[a], true); zvuk.setVolume(hlasitost); skladba_txt.text = zvukyNazev[a]; kokie.data.nazev = zvukyNazev[a]; posun(); posunListu(); }; _root.onEnterFrame = function () { // Nahrávání skladby nahrano(); // Když uživatel mění časový průběh if (!prejezd) { cas_mc._xscale = Math.max(0, Math.min(100, (zvuk.position / zvuk.duration * loading_mc._xscale))); } maxOsa = loading_mc._xscale / 100 * 115; osa_mc._xscale = loading_mc._xscale; loading_mc._xscale = (zvuk.getBytesLoaded() / zvuk.getBytesTotal()) * 100; // Rolování playlistu rolovani(); // Zobrazování času cas_txt.text = cas(); sirkaZobrazeni(); // Ukládání času a pořadí písně kokie.data.cas = zvuk.position / 1000; kokie.data.pisen = a; } // Fuknce pro rolování var smer:String; // Směr pohybu playlistu var ok:Boolean = false; // Jesli je povoleno posouvat playlist var zacatek:Number = playlist_mc.list_mc._y; var konec:Number; var b:Number = 16.5; // O kolik posunout function rolovani() { if (ok) { okSamo = false; if (smer == "up") { if (playlist_mc.list_mc._y < zacatek) { playlist_mc.list_mc._y += b; posunutiListu += b; } } if (smer == "down") { if (playlist_mc.list_mc._y > konec) { playlist_mc.list_mc._y -= b; posunutiListu -= b; } } } else if (okSamo) { if (playlist_mc.list_mc[jmenoSkladby]._y + posunutiListu > 20 && playlist_mc.list_mc[jmenoSkladby]._y + posunutiListu < 55) { okSamo = false; } if (smerSamo == "up") { if (playlist_mc.list_mc._y < zacatek) { playlist_mc.list_mc._y += b; posunutiListu += b; } } else if (smerSamo == "down") { if (playlist_mc.list_mc._y > konec) { playlist_mc.list_mc._y -= b; posunutiListu -= b; } } } } playlist_mc.nahoru_btn.onPress = function() { smer = "up"; ok = true; }; playlist_mc.nahoru_btn.onRelease = function() { ok = false; }; playlist_mc.dolu_btn.onPress = function() { smer = "down"; ok = true; }; playlist_mc.dolu_btn.onRelease = function() { ok = false; }; // Hlasitost var hlasitost:Number = 100; var posunutiVolume:Boolean = false; volume_mc.klik_mc.onPress = function() { posunutiVolume = true; this.onEnterFrame = function() { if (posunutiVolume) { hlasitost = this._xmouse / (volume_mc.klik_mc._width) * 100; hlasitost = Math.max(0, Math.min(100, hlasitost)); volume_mc.posun_mc._xscale = hlasitost; zvuk.setVolume(hlasitost); } } }; volume_mc.klik_mc.onRelease = function() { posunutiVolume = false; }; volume_mc.klik_mc.onReleaseOutside = function() { posunutiVolume = false; }; Každopádně ještě jednou díky za každou radu! |
||
Časová prodleva: 15 let
|
0