[ ferguson @ 29.05.2008. 10:19 ] @
Napravio sam sva dugmeta pomocu MC (ne button vec muvie clip) i na njega doda kod:

/* _over - naziv key frejma na koji se skace kada se mis postavi na MC */
/* _up - key frejm koji se vidi pri svakoj prilici */
/* "nas" je Dynamic text polje u kome treba da pise nesto kada se prevuce preko tog polja a kada se skloni mis, tekst nestaje */

onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
/*Ovde stoji sta se radi kada se pritisne ovo dugme*/
}
}
onClipEvent (enterFrame) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
gotoAndStop("_over");
_root.nas.text = "Pocetak2";
} else {
gotoAndStop("_up");
_root.nas.text = "";
}
}


Problem se javlja kada postavim jos neku kopiju tog "dugmeta". Tekst mi se ispisuje samo kada prevucem preko prvog dugmeta (to koje sam napravio) a preko drugog je nem.
Ukoliko izbrisem to "prvo" dugme, onda tekst hoce da se pojavi na tom "drugom" ali cim se ponovi postupak kopiranja, prestaje da radi to "trece" dok "drugo" radi bez problema.

Verovatno negde gresim, ali ne znam gde.
Verzija je CS3 i AS2

P.S.
"nas" sam nazvao Instance name u Dynamic text-u
[ gonzos @ 29.05.2008. 14:11 ] @
Za dugmad ti ne treba "onEnterFrame()" metod.
Mogla bi to biti greska.
Umjesto toga u mainTimeline stavi.

mcname.onRollOver=function()

ili jos bolje napisi samo funkciju koju ces pozvati iz main timelinea.
Code:

function Dugmici(mc:MovieClip):Void{

   for(i=0;i<4,i++){

  buton=this["mc"+i];
  
buton.onRollOver=function(){
this.gotoAndStop(frejm);

}
 buton.onRelease=function(){
this.gotoAndStop(frejm);
}

 buton.onPress=function(){
this.gotoAndStop(frejm);
}
 buton.onRollOut=function(){
this.gotoAndStop(frejm);
}

}

dugmici(ime movie clipa na stazi);



Nadam se da je jasno. Jos iz ovih metoda za dugmad pozoves text za svoj dynamic text.
[ StarCraft @ 30.05.2008. 14:12 ] @
Problem ovog tipa se pojavljuje u flashu kada recimo imash vise objekata sa istim nazivom na sceni.

Recimo:
Dugme_1
Dugme_1
Dugme_1...

Umesto:
Dugme_1
Dugme_2
Dugme_3...

Fora je u tome, sto kada se to desi, flash pod tim nazivom prepoznaje samo prvi objekat koji ucita u sceni. Njegov redosled ucitavanja objekata je kao sto mu raste koordinatni system, od gornjeg-levog ugla ide na desno pa na dole. Tako da kad kazes da "Dugme_1" nesto uradi, to ce se odnositi samo na prvo-ucitano dugme pod tim nazivom.

Ja licno nikada ne koristim button-instance. Kad god mi treba neko dugme ja koristim movieClip. Najbolje fora ti je da NA svakom tom MC_dugmetu napisesh sledece:
Code:
// ovo pises NA dugmichima
on (rollOver){
    _root.kadPredjesPrekoDugmeta(this);
}
on (rollOut){
    _root.kadIzadjesMishemVan(this);
}
on (press){
    _root.kadKliknesNaDugme(this);
}

// ovo pishesh u _root-u, u prvom frejmu
function kadPredjesPrekoDugmeta(ovo){
    ovo.gotoAndStop(2); // ili sta god zelis da dugmichi rade on rollOver
}
function kadIzadjesMishemVan(ovo){
    ovo.gotoAndStop(1); // ili sta god zelis da dugmichi rade on rollOut
}
function kadKliknesNaDugme(ovo){
    // whatever
}


Ovako, svako dugme predaje "sebe" kao parametar "this" zajednickoj funkciji u _root-u. Te funkcije prihvataju parametar "this" kao lokalnu promenljivu "ovo" (ne mozes ponovo da napisesh "this", mora da stoji nesto drugo)

Unutar tih funkcija u _root-u "ovo" ti postaje u stvari dugme koje je pozvalo tu funkciju, i onda mozes da mu radish sta hoces. Ovu tehnologiju korosti samo ako imash vishe objekata koji rade ISTE stvari za odgovarajuce mouse evente.

Ako budesh zeleo da promenish neku od ovih funkcija, dovoljno je da promenish samo te funkcije u _root-u, i svi objekti koji ih pozivaju ce "osetiti promene". (neces morati da editujesh svaki objekat posebno)

[Ovu poruku je menjao StarCraft dana 30.05.2008. u 17:35 GMT+1]