DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Flash Actionscript -> setInterval (http://www.devprotalk.com/showthread.php?t=3358)

dee 13. 08. 2007. 19:45

Flash Actionscript -> setInterval
 
na simbolu imam actionscript:

Kôd:

onClipEvent (mouseDown) {
       
        for(i=0 ; i < _global.jedinice[1] ; i++)
        {
        callI=setInterval(callback(i),100);
        }
        function callback(i)
        {
        this._height=i;

        trace(i);
        }
}


_global.jedinice[1] je nekakva globalna varijabla, nebitno. Ono sto zelim dobiti jest da na klink na simbol njegova visina ne skoci automatski na vrijednosti _global.jedinice[1] vec da se od nule animira do te vrijednosti.

nesto sa mojim setIntervalom ne valja a ne kontam sta.... anybody?

[edit: sve se ispravno odvije, prodje kroz sve vrijednosti, namjesti visinu simbola kako treba, jedino sto se sve dogodi trenutno]

ivanhoe 13. 08. 2007. 21:27

zapravo trebalo bi da se ne dogodi trenutno nego da sa zakasnjenjem od 100 pozove odjednom svih x puta callback (jer ga pozivas u petlji koja se odjednom izvrsi)
pisem napamet jer nemam flash pri ruci, ali ja bih probao nesto ovako:

Kôd:

onClipEvent (mouseDown) {       
        callback(1);

        function callback(i) {
            trace(i);       
            if(i < _global.jedinice[1]) {
                  this._height=i++;
                  setInterval(callback(i),100);
            }
        }

}

a moze i onako kako si ti krenuo samo da se izmeni setInterval:
Kôd:

setInterval(callback(i), 100 * i)
tako da delay bude razlicit za svaki poziv

MrSteel 13. 08. 2007. 21:46

hoho,

pogledaj konstruktor za setInterval

dakle evo jedan primer
var intervalID : Number = setInterval(callback, 100, i)

dakle parametri su : ime funkcije, milisekunde, pa onda parametri, mozes da spucas koliko hoces

btw. pitanja za flash slobodno mozes u flash jer ce tamo lakse naci korisnici, sorry ako se to kosi sa pravilima foruma ali meni se cini da je bolje tamo da idu pitanja koja su direktno vezana za flash

e sad // ja danas okacio moju klasu za timer
easy to use + setInterval ima losu naviku u samo izuzetnim situacijama da clearInterval nece da pomogne
check OUT ! :)

dee 14. 08. 2007. 16:13

Citat:

Originalno napisao ivanhoe (Napišite 40298)
Kôd:

onClipEvent (mouseDown) {       
        callback(1);

        function callback(i) {
            trace(i);       
            if(i < _global.jedinice[1]) {
                  this._height=i++;
                  setInterval(callback(i),100);
            }
        }

}


ovo mi nije proradilo, ali ovo je:

Kôd:

onClipEvent (mouseDown) {
//trace(_global.jedinice[1]);
_global.i=1;
callI=setInterval(callback,10,_global.i);

        function callback(i)
        {
        if(_global.i < _global.jedinice[1]){
        _global.i++;
        _root.instance1._height=_global.i;               
        //trace(_global.i);
        }
        else
        clearInterval(callI);
        }
}

nesto sam zapetljo sa globalnim varijablama...


tnx

dee 14. 08. 2007. 16:22

ajd da ne otvaram novi topic... ako ima neki fleser, da istrese neke osnovne cinjenice, nemam ovaj tren vremena kopat po manualu, treba mi za jucer... a osnove osnova su...

1) postoji li nacin da u prvom frejmu nekog lejera definiram funkciju koja je vidljiva u svim lejerima/frejmovima/funkcijama/simbolima/itditd...? kako?

2) ista stvar za varijablu?

3) kako mi je najbolje referencirati simbole sa razlicitih mjesta u moveClipu? drugim rijecima, postoji li neka analogija javascriptu sa getElementById()?

nixa 14. 08. 2007. 16:25

ti kad definises funciju ona je vidljiva na globalnom nivou ...

sto se tice varijabli ... postoji _global

sto se tice referenciranja postojis this.movicllipname.doSomething();

dee 14. 08. 2007. 16:53

Citat:

Originalno napisao nixa (Napišite 40334)
ti kad definises funciju ona je vidljiva na globalnom nivou ...

ne znam jel do verzije flasha il do cega (ja ovdje imam 8), al kod mene je situacija:

1. layer 1. frame -> imam definiranu funkciju rezultati()
2. layer 2. frame -> tu imam simbol koji na MouseDown ima poziv:

rezultati();

taj poziv ne radi, ali kad napisem:

Kôd:

var dajrez:Function = _root.rezultati();
dajrez();

onda radi


Citat:

Originalno napisao nixa (Napišite 40334)
sto se tice referenciranja postojis this.movicllipname.doSomething();

ista stvar...

kad iz funkcije u 1. layeru 1. frameu zelim promijenit height atribut simbola iz kojeg sam i zvao funkciju (2. layer 2. frame), radi samo ako zovem:

_root.instance1._height= nesto;


grijesim li negdje il je to ok?

MrSteel 14. 08. 2007. 18:39

pogledaj sta sam ti ja napisao tu ces naci lep odgovor za interval, ne znam sto to nisi ispratio

var dajrez:Function = _root.rezultati();
dajrez();

ide u stvari

var dajrez:Function = _root.rezultati;
dajrez();

bez zagrada

funkcija je vidljiva samo u onom objektu koji je definisao bez navodjenja gde je
ako je pozivas iz nekog drugog mesta onda moras definisati gde je kreirana

recimo kreiras funkciju u root-u
Kôd:

_root.ples = function() {
    trace("ples");
}

i imas neki mc sa kodom unutar njega, znaci bas u njemu
onda ces do te funkcije doci preko _root.ples()

ako je neka funkcija definisana u actionscriptu movieclipa recimo
onda se ona pozivas sa mc.testFunc();

ako hoces ostavi FLA fajl sa kodom koji ti ne radi pa cu ti ispraviti

ivanhoe 14. 08. 2007. 20:34

ja sam se gore u mom postu izlupetao, ali nisam posle mogao da editujem poruku. Ja sam pisao kao za setTimeout(), a ne za setInterval(), a uz to parametri se prosledjuju kao sto je MrSteel rekao... znaci just ignore my post..

MrSteel 14. 08. 2007. 21:53

yea, ali setTimeout ne postoji u Flashu :) ima kao dodatna klasa napisan od strane drugih ali ne i ovako

toplo preporucujem moju klasu za timer funkcije ;)


Vreme je GMT +2. Trenutno vreme je 05:43.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.