Pomoć - Pretraga - Članovi - Kalendar
Puna verzija: [reseno] vise dugmadi-ista funkcija
Dizajn Zona > Tehnike > Flash
mali perica
Ako postoje dugmadi: d1, d2, d3 i d4 (recimo da se tako zovu njihove istance) i na klik bilo kog dugmeta treba da se izvrsi potpuno ista funkcija, da li postoji nacin da se napise neka varijabla tipa: na klik dugmeta d + "ceo broj" uradi funkciju tu i tu?

Alternativa je da napisem:
d1.onRelease = function(), pa onda opet
d2.onRelease = isti function i sve tako 4 puta biggrin.gif i to ce raditi.

Elem, ima li brzeg puta (ne mora varijabla, moze bilo sta) wink.gif?

Hvala!
WhiteWeedow
Ima kako da ne recimo napravi neki button koji ces atachirati i atachiras ga kroz for petlju onoliko koliko ti treba recimo ovako:

CODE
var _yp:Number = 10;

function _callFunction(__name:String) {
    
    trace(__name);
    
}


for(var i:Number = 0; i < 5; i++){
    
    var  button:MovieClip = this.attachMovie("butt", "butt"+i, i);
    button._label.text = "button"+i;
    
    button._x = 30;
    button._y = _yp;
    
    _yp += button._height + 5;
    
    button.onPress = function() {
        
        _callFunction(this._name);
        
    }
    
}


evo ovde primer http://highbox.net/DizajnZona/maliPerica/buttons.fla
syndrome
ispravka samo:
nije neophodno da se button attachuje, bitno je sama mogucnost iteracije kroz imena, a to se postize upotrebom for in iteracijom ili preko asocijativnog niza.

asocijativni niz radi kao indeksirani niz, ali s tom razlikom sto elementi niza nisu numerisani nego imenovani. prakticno je svaki objekat ujedno i asocijativni niz, ukljucujuci i MCjeve.

ako imas buttone u _rootu koji se zovu d1, d2, d3, i d4, pozvaces ih ovako (ww je ovo dobro napisao u svom kodu gore):
CODE
for(i = 1; i <= 4; i++) {
  trace(_root["d" + i]);
}


drugim recima _root.d3 je isto sto i _root["d3"]. zapamti ovo i imaj u vidu da je nacin #2 nesto sporiji.
mali perica
Mozda gresim, ali mislim da mi attachovanje buttona ne bi pomoglo jer dugmad b1, b2, b3, i b4 mi se nalaze na path-u:

muviklip.podklip.b1

a taj prvi muviklip predstavlja onaj "infinite menu" meni sto trci levo - desno u zavisnosti od pozicije misa.

I sad, ne znam sta da radim sa kodovima koje ste prilozili unsure.gif
Probao sam:

CODE
for (i=1; i<=4; i++) {
    trace(_root["d"+i]);
}


onda on nadje sva 4 dugmeta i ispise u output panelu "_level10.d1" i tako sva cetiri redom...
I dalje ne znam sta s tim.. probao sam
CODE
for (i=1; i<=4; i++) {
    trace(_root["d"+i]);
}
_root["d"+i]onRelease = function().....

ali nista se ne desava... kako da pozovem rezultat petlje for da reaguje na "Release"? huh.gif
the
čekaj, zar ti sledeća stvar nije pala na pamet?
CODE
for (i=1; i<=4; i++) {
    _root["d"+i].onRelease = function().....
}

ako nije, onda bolje odustani...
syndrome
da, mislim da imas problem sa fundamentalnim poznavanjem flasha.
mislim, jedno je ne znati kako pristupiti asocijativnom nizu, ali sasvim je drugo napisati

CODE
for (i=1; i<=4; i++) {
    trace(_root["d"+i]);
}
_root["d"+i]onRelease = function().....

to se malo kosi sa fundamentalnim principima programiranja.

prvo osnove programiranja i help, pa onda sve ostalo.
mali perica
Nije da mi nije to palo na pamet. Probao sam i sa tackom, naravno, ali nije htelo da radi. Nego je problem bio sto nisam ispred [] zagrada stavio "_root". A kad ne stavis "_root", a napises tacku, output tvrdi da je kod neispravan.

Mislio sam da nije obavezno da se uvek pozivam _root. ili neku odredjenu putanju ako se radi o istoj sceni, istom stejdzu, istom levelu itd... (tako je bar sa obicnim dugmadima i MC-ovima).

No dobro, posle sam ispravio sve i sad radi. Hvala!
syndrome
ne, _root nije obavezan kada radis sa tackom, ali samo zato sto je podrazumevan, odnosno nalazis se u njemu.

kada radis sa asocijativnim nizovima, sintaksa podrazumeva identifier, kockaste zagrade, i target.. ne mozes da izostavis ove stvari, inace kompajler to ne moze prepoznati kao pristup asocijativnom nizu.

identifier[target]

pogledaj jos jednom post #3

razmisljaj o ovim specijalnim karakterima (kockastim zagradama) kao o operatorima popup poput plusa, minusa, itd, bice ti lakse. oni se btw, zovu, array access operatori. i tacku mozes kapirati kao operator, jer ona to i jeste: operator pristupa clanu objekta.

dakle, kada pristupis elementu asocijativnog niza sa identifier[target] moras staviti tacku da bi prisao podelementu tog elementa.

drugim recima, identifier[target].element

vrlo je jednostavno, ali moras da ukacis osnovna i opsta pravila skripting kompajlera.

[edit]
hehe, gore je pisalo popup, umesto poput -- profesionalna deformacija smile.gif
iki_xx
@ Syndrome
Zapazio sam vise puta da , pises veoma opsirne postove ,koji ti oduzimaju dosta vremena.Svaka cast za tvoje postove, stvarno se trudis da ljudima objasnis, koncepte programiranja.

Covece trebao bi knjigu da napises smile.gif

Rispekt!
syndrome
hvala hvala biggrin.gif

nazalost, nemam vremena da se bavim time ozbiljnije, a imam neke dobre ideje kako da priblizim programiranje "obicnim ljudima" i uputim ih i neke vizuelizacije kakve ja, recimo, imam u glavi.

vizuelizacija je kljucna stvar kod pamcenja, a jednom kada ukacis mehaniku, lakse je predvideti ishod nekog komplikovanijeg zadatka. however, vecina ljudi ne ukaci u startu neku nit koju treba da prati i kada mozak odluta u previse "nepoznatog" zablokira se, uplasi i vrati nazad na pocetak. obicno se zbog toga ljudi plase novih stvari, novih znanja, naizgled komplikovanih tehnickih i metodoloskih zapisa.

strasno je bitno ici korak po korak, ali kako to uvek ide, ljudi vole da brzaju, da preskacu, i da neko drugi razmislja umesto njih.
neretko na to uticu i lose socijalne interakcije (recimo sa profesorom, koji ima neki psihijatrijski problem etc)

ako budem ikada imao vise vremena, bavicu se time. nisam neki pedagog (time ni ucitelj; ne ide mi sve to u real timeu onako kako bih ja hteo, za to su ipak ljudi koji nisu proveli vecinu zivota ispred ekrana sad.gif), ali mogao bih da napisem dobru knjigu. ili barem dobar tutorijal.
WhiteWeedow
Voleo bih da procitam taj tutorial ako nekad budes imao vremena pa ga napises onako ono u svom stillu smile.gif smile.gif smile.gif
syndrome
bice valjda, jednom.
napravio sam celu poker masinu u Flashu da bih objavio temeljan tutorijal kako se pravi, i kako se analizira dobitak, ali tako da i najstrasniji pocetnik (u programiranju) shvati, ali nemam vremena time dalje da se bavim.

to sam planirao jos onda, za OOP predavanje, ali otislo je na led.

jedino ako mi neko nadje sponzora, ili nesto, lol, ali ovako.. mora da se radi, jbg smile.gif
WhiteWeedow
Kako da ne sponzor se uvek moze da nadje to nije neki problem smile.gif
Ovo je "lo-fi" verzija našeg glavnog sadržaja. Da biste videli punu verziju, sa svim informacijama, formatiranjem ili slikama, molimo vaskliknite ovde.
Invision Power Board © 2001-2013 Invision Power Services, Inc.