Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Fja za zaustavljanje koda

[es] :: Flash :: Fja za zaustavljanje koda

[ Pregleda: 2933 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Fja za zaustavljanje koda19.06.2006. u 18:49 - pre 217 meseci
Da li postoji funkcija u Flešu koja bi pauzirala izvršavanje koda? Kao na primer sleep(5) npr u Linuksu?
Ako ne postoji, kako to drugačije realizovati? Znači, da kod na određeno vreme stane sa izvršavanjem?

Da elaboriram:
Radim vizuelizaciju binarnog stabla u Flešu. Uradio sam statičku implementaciju stabla (znači, ako je roditelj na i-tom mestu u nizu, onda su mu potomci na 2*i+1 i 2*i+2-om mestu). Problem je sa obilaskom. Koristim rekurzivni obilazak:

Code:

function preorder(stabl,ni)
{
    if (stabl[ni]!=-500) { // -500 ekvivalento NULL
        trace(stabl[ni]);
        preorder(stabl,2*ni+1);
        preorder(stabl,2*ni+2);
    }
}


E sad, potrebno je da prikažem po koracima obilazak stabla. Znači da se to vidi i da animacija ide polako, čvor po čvor. Znači, umesto trace komande bi trebalo da stoji kod koji bi npr prikazivao punjenje steka, bojio drugom bojom čvor koji se obrađuje, itd. Problem je što sve to treba da ide polako, tj. da imam pauzu pre sledećeg preorder-a. Kako to da uradim?

[Ovu poruku je menjao Kurt2 dana 19.06.2006. u 23:32 GMT+1]
 
Odgovor na temu

GRocky
Rodic Vladimir
Novi Sad

Član broj: 77687
Poruke: 54



+1 Profil

icon Re: Fja za zaustavljanje koda20.06.2006. u 14:11 - pre 217 meseci
Vidi nisam bas skroz siguran ali trebalo bi funkciju preorder da pozivas onEnterFrame i onda u f-ju da stavis jednu promenjivu koju ces na pocetku inicijalizovati na 0 , a zatim na svaki frejm povecavati za jedan i u jedan IF koji gleda ako je promenjiva 5 * fps inicijalizujes je opet na 0 i pozoves kod.

Valjda ti to treba i valjda tako treba da radi
Before you criticize someone, walk a mile in their shoes.
By the time they get angry you're a mile away and you've got their shoes!
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: Fja za zaustavljanje koda20.06.2006. u 15:06 - pre 217 meseci
Mislim da razumem šta hoćeš da kažeš, ali problem ipak ostaje jer može da se desi da se u jednom preorderu pozove rekurzivno dva puta taj isti preorder. Šta tada? A u okviru tih preordera, takođe mogu da se pozovu još po dva preordera.
Možda da se napravi neki movieclip koji bi se duplirao pozivanjem svakog preordera, tako da po jedan clip bude zadužen za po jedan preorder, ali onda nastaje problem što sve to treba vremenski da se sinhronizuje da ide jedan za drugim - npr. startuje se jedan clip (znači poziva se preorder), iscrtava na ekranu punjenje steka, ali taj preorder može da startuje još dva komada koji bi morali da sačekaju da se ovaj prvi završi, a i oni sami da idu jedan za drugim. Znači komplikovano, ako me uopšte razumeš...
 
Odgovor na temu

White Weedow
Amsterdam

Član broj: 30680
Poruke: 89
*.dclient.hispeed.ch.

Sajt: www.mfx-club.com


Profil

icon Re: Fja za zaustavljanje koda22.06.2006. u 02:30 - pre 217 meseci
Heh to je malo zeznuto mozda ti zelis da jednostavno iskoci iz te funkcije ako zadata komanda neispunjava uslov onda samo "break"
Sometimes everytings is dificult!!!
But you must learn...
http://www.mfx-club.com
 
Odgovor na temu

Flitter
Novi Sad

Član broj: 13855
Poruke: 51
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Fja za zaustavljanje koda24.06.2006. u 15:41 - pre 216 meseci
Evo ideje. Ako ti je bitan vizuelni prikaz stabla,
mozes u prvom frejmu da izgenerises celo stablo,
ali da ti _alpha svih chvorova bude 0 (nula).

Pretpostavljam da ti je svaki cvor
realizovan kao poseban movieClip.

Zatim se problem resava sam od sebe,
jer ti ostaje samo glavna vremenska osa,
gde povecavas _alpha za odredjeni indeks stabla.

Svaki novi prolazak kroz prvi frejm, novi cvor.
"...the earth will be covered as if by a network of
WEB OF GHASTLY SPIDERS POSSESSING TREMENDOUS WISDOM!"
Rudolph Steiner 13.5.1921.
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: Fja za zaustavljanje koda24.06.2006. u 17:37 - pre 216 meseci
Zaboravio sam da kažem da sam problem vizuelizacije rešio - napravio sam čvorove (kao movieclip-ove) koji su na početku postavljeni na _visible=false, i kada ubacujem vrednosti prebacujem vidljivost na true, i tu nema nikakvih problema, sve radi kako treba. Problem je u tome što treba da vizuelizujem postupak obilaska stabla. Obilazak stabla (preorder, realizovan iterativno) u c-u izgleda ovako:

Code:

template <class T>
void BSTree<T>::iterativePreorder(){
    BSTNode<T>*p = root;
    StackAsArray<BSTNode<T>*> stack(numOfElements);
    if (p!=NULL) {
        stack.push(p);
        while (!stack.isEmpty()) {
            p=stack.pop();
            p->visit();
            if (p->right!=NULL)
                stack.push(p->right);
            if (p->left!=NULL)
                stack.push(p->left);
        }
    }
}


Znači, poenta je da ja rad ovog koda grafički prikažem u flešu. To podrazumeva da imam nacrtan magacin (npr negde ispod stabla) koji se puni i prazni u skladu sa ovim kodom. I naravno, to sve treba lepo da se vidi. I tu mi se javlja problem kako da sve to napravim - da se magacin puni elementima iz stabla, kao i da se prazni. Ja sam mislio da uzmem rekurzivni preorder (čiji sam kod već pisao u nekom od prethodnih postova) i da njega korsitim za opis rada ovog iterativnog preorder-a. Međutim, problematika uopšte nije naivna...
 
Odgovor na temu

[es] :: Flash :: Fja za zaustavljanje koda

[ Pregleda: 2933 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.