Re: Flash

0 views
Skip to first unread message

Sándor Szlovák

unread,
Jun 6, 2011, 9:13:53 AM6/6/11
to szamalk20...@googlegroups.com
Kedves Edit!

Köszönöm szépen a könyveket!

Szia:
Sanyi



Ujhelyi László

unread,
Jun 12, 2011, 10:33:58 AM6/12/11
to szamalk2010webprog
Segítség az mp3 lejátszó flash beadandóhoz:

1. váltás a zeneszámok között:
A zenék tárolása "zeneszamok" tömbben.

var zeneszamok:Array = new Array("1.mp3", "2.mp3", "3.mp3", "4.mp3");
elem = 0;
hang.loadSound(zeneszamok[elem],false); // betölti az első számot, de
nem indul automatikusan(!)

Az "elem" változóval adjuk meg, hogy a tömb hanyadik eleméről van szó.
Figyelni kell rá, hogy az "elem" értéke ne legyen nullánál kisebb és a
tömb hosszánál kisebb legyen.

Gombok lenyomásához lehet kötni a zeneszámok közti váltást.

kovetkezo_btn.onRelease = function() {
// Következő zeneszám betöltésea listából
if (elem<zeneszamok.length) {
hang.stop(); // Aktuális zene leállítása
elem++;
hang.loadSound(zeneszamok[elem],false);
pozicio = 0;
}
};

elozo_btn.onRelease = function() {
// Előző zeneszám betöltése a listából
if (elem>0) {
hang.stop();
elem--;
hang.loadSound(zeneszamok[elem],false);
pozicio = 0;
}
};
--------------------------------------------------------------------------
2. Hangerő beállítása:

hangero=hang.getVolume(); // hangerő értékének lekérdezése
hang.setVolume(hangero); // a hangerő értékének beállítása


Figyelni kell, rá, ha a "hangero" változó egyre kisebb negatív értéket
vesz fel, egyre hangosabban fog szólni. Ezért célszerű a hangerő
minimumának nullát adni, és célszerű a hangerő maximális értékét is
megadni, ami fölé nem mehet. Zene betöltésekor a hangerő értéke 100!
A hangerő értéke legegyszerűbben egy szövegdobozban (Dynamic Text)
adható meg. A hangerő szabályozás legegyszerűbben két gomb
segítségével adható meg ("hangeronoveles" gomb, "hangerocsokkentes"
gomb). Hangerő változtatására 1-es, 2-es, 5-ös, 10-es, 20-as közöket
javaslok. Ekkor a nulla érték alá kivonásokkal nem tud jutni biztosan
a kivonásokkal a program(!)

hangeronoveles_btn.onRealease = function() {
if (hang.getVolume()<=300) {
hangero=hang.getVolume()+20;
hang.setVolume(hangero);
hangerosseg.text = hangero;
}
}

hangeroncsokkentes_btn.onRealease = function() {
if (hang.getVolume()>0) {
hangero=hang.getVolume()-20;
hang.setVolume(hangero);
hangerosseg.text = hangero;
}
}

-----------------------------------------------------------------------
3. Zene adatainak kiíratása, legyegyszerűbben egy/több szövegdobozba
(Dynamic Text) tehető meg. Amennyiben egy szövegdoboz használunk,
akkor a kiírandó adatokat össze kell fűznünk. A "\n" szolgál arra,
hogy összefűzés esetén az azt követő dolog új sorba kerüljön.

hang.onID3 = function() {
zeneadatai.text = "Előadó: "+hang.id3.artist+"\n"+" Album címe:
"+hang.id3.album+"\n"+" Szám címe: "+hang.id3.songname;
};

----------------------------------------------------------------------
4. A pillanatnyi idő és a teljes idő kiíratása.

A szám teljes idejének kiíratásához a "hang.duration" értékre van
szükség. Ez viszont akárhonnan nem érhető el a programban!!! Ezt az
értéket az "onLoad" eseménynél kell egy változóba tenni, és a változót
később már használni tudjuk. A millisecundumban megadott értéket
szeretnénk perc:secundum formában megjeleníteni. ezért először
másodpercbe kell átírni, azaz osztani kell 1000-rel. Majd meg kell
nézni, hogy az így kapott értékben hányszor van meg a 60, annyi perc
és 60-nal osztva mennyi a maradék, annyi másodperc. A "Math.floor"
lefelé kerekíti az értéket. Ha a "Math.round" -ot használnák, akkor az
30s-nál váltana ez utóbbi esetben a kerekítés szabályinak megfelelően
alakítja egésszé!!!

hang.onLoad = function() {
ido=Math.round(hang.duration/1000);
perc=Math.floor(idotartam/60);
masodperc=idotartam%60;
idotratam=perc+":"+masodperc;
}
hangerosseg.text = hang.getVolume(); // Hangerő kezdeti értékének
megjelenítése
};

Pillanatnyi idő kiszámítása hasonlóan történik, csak ahhoz a
"hang.position" értéket kell felhasználni. Megjelenítéshez megint csak
egy szövegdobozt (Dynamic Text) kell használni. Folyamatos
megjelenítéshez az "onEnter" eseményhez célszerű kapcsolni.
Szépséghibája, ha a másodperc vagy a perc egyjegyű, akkor a kijelzőn
egy számjegyjelenik meg nem a meg szokott 00:00/00:00 megjelenítésben.
Például: 4:3/5:8 (04:03/05:08 helyett).
Másik szépséghibája, ha lenyomjuk a stop gombot nem vált át 00:00 -ra,
hanem mint a pause-nál a legutolsó érték marad látható. Ennek oka az,
hogy amikor kiadjuk a hang.stop() utasítást, a zenét meállítja, de a
pozíció értéke marad a leállítás pillanatbeli. Természetesen ha
megnyomjuk a "play" gombot, akkor az elejéről indítja a lejátszást, és
az a kijelzőn is látzsani fog.

onEnterFrame = function () {
ido=Math.round(hang.position/1000);
perc=Math.floor(idotartam/60);
masodperc=idotartam%60;
idokijelzo.text=perc+":"+masodperc+"/"+idotartam;
}

---------------------------------------------------------------------
5.
Előre és visszatekerés kódja szintén az "onEnterFrame" eseményhez
kerül. A visszatekerés majdnem pontosan ugyanúgy történik, mint az
órán megoldott előre tekerés. A különbség annyi, hogy be kell vezetni
egy "hátra" logikai változót az "előre" logikai típusú változó
mintájára. És természetesen a pozició értékét csökkenteni kell. Kell
csinálni gombot a gyors előre/visszatekeréshez.

var előre:Boolean = false;
var hátra:Boolean = false;

onEnterFrame = function () {
// Idő megjelenítése
ido=Math.round(hang.position/1000);
perc=Math.floor(idotartam/60);
masodperc=idotartam%60;
idokijelzo.text=perc+":"+masodperc+"/"+idotartam;
// Gyors előretekerés
if (előre) {
pozicio = hang.position;
hang.stop();
pozicio += 600;
// A pozició értékének növelése 0,6 s-mal
hang.start(Math.round(pozicio/1000),1);
}
// Gyors visszatekerés
if (hátra) {
pozicio = hang.position;
hang.stop();
pozicio -= 600;
// A pozició értékének csökkentése 0,6 s-mal
hang.start(Math.round(pozicio/1000),1);
}
};

eloreteker_btn.onPress = function() {
előre = true;
};

eloreteker_btn.onRelease = function() {
előre = false;
};

hatrateker_btn.onPress = function() {
hátra = true;
};

hatrateker_btn.onRelease = function() {
hátra = false;
};


6. Indítás, leállítás, pauzálás:

play_btn.onRelease = function() {
hang.start(pozicio,1);
};

stop_btn.onRelease = function() {
hang.stop();
pozicio = 0;
};

pause_btn.onRelease = function() {
pozicio = Math.round(hang.position/1000);
hang.stop();
};

Megjegyzések:
További szépséghiba, ha többször lenyomjuk a "play" gombot a "stop"
lenyomása nélkül, akkor többször is elindítja a lejátszást, és
párhuzamosan szól időbeli csúszással többször a szám.
Másik szépséghibája, ha lenyomjuk a "stop" billentyűt, vagy zeneszámot
váltunk, és előtte használtuk a gyors előretekerést, akkor a "stop"
lenyomása előtti, vagy a váltás előtti pozícióról folytatja a gyors
tekerést és nem a szám elejétől.

A design-t és a szépséghibák kiküszöbölését rátok bízom. (Nekem már
néhányat sikerült.)
Remélem segítettem.
Ujhelyi László

Puskás Mónika

unread,
Jul 9, 2011, 1:33:51 AM7/9/11
to szamalk20...@googlegroups.com

A Forrai csak 26 ezer .Akit érdekel nézz meg.
forrai.jpg
Reply all
Reply to author
Forward
0 new messages