12. 08. 2007. | #1 |
novi član
Datum učlanjenja: 12.08.2007
Poruke: 6
Hvala: 0
0 "Hvala" u 0 poruka
|
Pucanje while() u busy wait-u
Pozdrav,
Imam sledeci problem. Hocu da napravim da se 5 pesama pustaju jedna za drugom. Probao sam sa sledecim kodom. Kôd:
var pesma:Sound = new Sound(); playing = false; pustiPesmu_mc.onRelease = function () { for (i = 0; i<5; i++){ while (playing) {} pesma.attachSound("sound"+i); playing = true; pesma.start(); } } pesma.onSoundComplete = function () { playing = false; } Dakle pitanje je zasto se "while (playing) {}" blokira iako bi onSoundComplete trebao da je odblokira? Dalje sam preradio kod i proradio je: Kôd:
var pesma:Sound = new Sound(); playing = false; pustiPesmu_mc.onRelease = function () { i = 0; pesma.attachSound("sound"+i); pesma.start(); } pesma.onSoundComplete = function () { if (++i < 5) { pesma.attachSound("sound"+ i); pesma.start(); } } |
12. 08. 2007. | #2 |
Moderator
Professional
Datum učlanjenja: 26.04.2007
Poruke: 350
Hvala: 0
4 "Hvala" u 4 poruka
|
while ti se zapucava zato sto non stop ides u krug u loop-u
takodje, greska je for i attachovanje svih pesama itd. flash je frame based tako da se izvrsi sve to ima na frejmu pa tek onda prelazi na sledeci a tebi nikad nece preci na sledeci, odn. oce za 3 minuta koliko flash ne moze da ceka na jednom frejmu ; dakle razbi to na 2-3 funkcije nextSong ce vratiti sledecu pesmu vodeci racuna o ukupnom broju pesama playSong treba da pusti odredjenu pesmu onSoundComplete ce da izbaci event kada se pesma zavrsi i pozvace sledecu da se pusta za kliktanje mc_play ce da pusti trenutnu pesmu mc_next sledecu a mc_prev proslu Kôd:
var pesma: Sound = new Sound(); var totalSongs : Number = 5; var currSong : Number = 0; function nextSong(currSong:Number):Number { var tempNumber : Number = currSong+1; if (currSong >= totalSongs) { tempNumber = 0; } return tempNumber; } function prevSong(currSong:Number):Number { var tempNumber : Number = currSong-1; if (currSong < 0) { tempNumber = totalSongs-1; } return tempNumber; } function playSong(song:Number):Void { pustis pesmu sa brojem song koristeci sound.attachSound // to znas izgleda treba da vodis racuna da prethodnu unistis } pesma.onSoundComplete == function() { playSong(nextSong(currSong)); } mc_play.onRelease = function() { playSong(currSong); } mc_next.onRelease = function() { playSong(nextSong(currSong)); } mc_prev.onRelease = function() { playSong(prevSong(currSong)); }
__________________
blog: mrsteel.wordpress.com www: hagane.us del.icio.us Hagane Flash Forum - od pocetnika do eksperta Poslednja izmena od MrSteel : 12. 08. 2007. u 19:30. |
12. 08. 2007. | #3 | |
novi član
Datum učlanjenja: 12.08.2007
Poruke: 6
Hvala: 0
0 "Hvala" u 0 poruka
|
Hvala na odgovoru..mada i dalje mi nije jasno sledece:
Citat:
Evo jedan slican primer Kôd:
pres = false; dugme_mc.onPress = function () { pres = true; } while(!pres){} |
|
12. 08. 2007. | #4 |
Moderator
Professional
Datum učlanjenja: 26.04.2007
Poruke: 350
Hvala: 0
4 "Hvala" u 4 poruka
|
mogu ti pomoci oko pitanja za flash
granice postoje nazalost ali nisu uopste tako neverovatne i moguce ih je sasvim lepo zaobici u vecini slucajeva flash nije java i tu mozemo zavrsiti pricu oko ozbiljnog programiranja mozda u nekim sledecim verzijama za sada ima i precih stvari dakle, bitno je sad kad vec ulazis u svet flash-a da skapiras koja su ogranicenja na "silu" kao sto ti rece ne moze to sto si ti pokusao da uradis je svakako po meni losa tehnika bilo koji programski jezik da koristis, eventi su stvarno za programiranje melem, pozoves pusti sledecu pesmu kada se zavrsi trenutna zato i postoji onSoundComplete, nikakav wait ti onda ne treba e sad ako nesto zelis stalno da proveravas postoji nesto sto se zove onEnterFrame pogledaj u helpu sve sto stavis u recimo donji pr, se izvrsava na svakom frejmu Kôd:
mc.onEnterFrame = function() { if (playing) { } else { } } Kôd:
delete mc.onEnterFrame; flash je veoma zahtevna VM, jer je prosto takva ali popravlja se, zato treba to da imas na umu kada radis u flashu baci jos neka pitanja ako te zanima nesto
__________________
blog: mrsteel.wordpress.com www: hagane.us del.icio.us Hagane Flash Forum - od pocetnika do eksperta Poslednja izmena od MrSteel : 12. 08. 2007. u 21:17. |
|
|