Autor Zpráva
gubi
Profil
Zdravim, mam dotaz:
když vytvařim více MC pomocí cyklu for a funkce duplicateMovieClip(), dá se do toho duplikovaného MC nějak vložit proměnná s číslem?
FlashManiac
Profil
samozrejme
FlashManiac
Profil
samozrejme
gubi
Profil
to rad slysim, mohl bys mi prosim te, napsat jak?
Mam takovyto kod:
for (i=0; i<pocet; i++) {
loadMovie("pictures/Home/male/"+pictures[i], "pozadi_mc.podklad"+i+"_mc");
duplicateMovieClip("pozadi_mc.podklad"+i+"_mc", "podklad"+(i+1)+"_mc", i+1);
souradniceX = souradniceX+posun;
eval("pozadi_mc.podklad"+(i+1)+"_mc")._x = souradniceX;
eval("pozadi_mc.podklad"+(i+1)+"_mc")._y = 1;
}

funguje to tak jak potrebuju, vytvori to sice o jeden MC navic, ale to mi nevadi...
FlashManiac
Profil
no takze si vytvoris ty MC..

a tedka uz jenom treba v dalsim cyklu.. nebo i v tom vytvarecim udelas jen
pozadi_mc.podklad1_mc.promenna=nejakaHodnota //treba cislo

v cyklu takhle:
_root.pozadi_mc['podklad'+i+'_mc'].promenna=nejakaHodnota
gubi
Profil
zkoušel jsem to podobně:
eval("pozadi_mc.podklad"+(i+1)+"_mc").promenna = 8;
a nefungovalo to, po spusteni se mi ta promenna ani neukazala v okne Variables,
ale díky za radu, vyzkousim tvou verzi...

prosim tě, mám ještě jeden problém, pak uz snad dam pokoj :)
pomoci LoadVars načítám proměnné z txt souboru a ukládam je do pole, ale kdyz se pak dal ve skriptu odkazjuju na prvek v tom poli, tak mi to pise ze promenna je undefined, pritom po spusteni v okne Variables pole pictures obsahuje vsechny prvky, jak ma. Přitom, když to pole definuju manualne tak všechno funguje (var pictures:Array = new Array("home0.jpg", "home1.jpg");). Bohuzel nevim, jestli si ten skript pamatuju spravne, jsem v praci a tady neni moznost mit nainstalovanej flash :( :

var nacti:LoadVars = new LoadVars();
var pictures:Array = new Array();
var konec:Number;

nacti.load("promenne.txt");

nacti.onLoad = function() {
konec = nacti.cislo;
for(i=0;i<konce;i++) {
var a:String = "obr" + i;
pictures[i] = nacti[a];
}
}
a = pictures[1];

vysledek je ze a = undefined

obsah souboru "promenne.txt":
&cislo=2&obr0=home0.jpg&obr1=home1.jpg

Snad jsem se vyjadril srozumitelne :) Nevis, kde je zakopanej pes?
FlashManiac
Profil
var nacti:LoadVars = new LoadVars();
var pictures:Array = new Array();
var konec:Number;



nacti.onLoad = function() {
konec = nacti.cislo;
for(i=0;i<konce;i++) {
var a:String = "obr" + i;
pictures[i] = nacti[a];
}
}

nacti.load("promenne.txt");
a = pictures[1];

zkus to takhle.. mam pcit ze kdyz napises prvni volani LOAD a a pak udalost ONLOAD ze to nejde.. ale naopak by to jit melo :-) zkus a uvidis:)
gubi
Profil
tak jsem to zkusil, ale porad nic, na výstupu debug - list Variables pise:
Variable _level0.pictures = [object #1, class 'Array'] [
0:"Home6.jpg",
1:"Home7.jpg",
2:"Home9.jpg",
3:"Home10.jpg",
4:"Home11.jpg",
5:"Home12.jpg",
6:"Home13.jpg",
7:"Home14.jpg"
]
ale proměnná a = undefined.
FlashManiac
Profil
mohl bys mi poslat zdrojak??
uploadni ho na nejake freeserver napr. leteckaposta.com a pak mi posli link
gubi
Profil
promin, ale netusim, jak to funguje na leteckaposta.com...
ale udelal jsem maly pokrok, kdyz ten skript dam pod udalost on (press) tak už to funguje.
na základní časový ose načtu proměnné do toho pole, pak jsem dal na jeden mc pod událost:
on (press) {
var a:String = _parent.pictures[0];
}
a na výstupu už není undefined, ale je tam to co tam má být (ovšem až potom, co kliknu na ten mc)
Otázka tedy zní: je nějaká událost, pomocí které by to šlo načíst, aniž bych musel na něco klikat (onClipEvent (load) mi nefungovalo)?
FlashManiac
Profil
no muzes to udelat tak ze se ta funkce na nahozeni tech promennych spusti trba az za nejkay casovy okamzik jaky ty si definujes
pouzij na to setInterval
gubi
Profil
cau, tak jsem to vyzkousel s tim setInterval a funguje to, ale ta funkce to volá pořád (např. každou půlvteřinu), existuje funkce, která to provede jen jednou po určité časové prodlevě nebo dá se to nějak zastavit? Zkoušel jsem to zastavit pomocí clearInterval, ale to mi nějak nefachá, nevim jak tam našroubovat, aby se to vyplo po první obrátce :)
ještě to zkusim nějakou podmínkou, ale nevim, nevim, už jsem zoufalej...
dodatek: asi se u setInterval nedá nastavit počet opakování co? :)
FlashManiac
Profil
ty musi ty funkce po prvnim zavolani vypnout a to udelat tahle:
var interval:Number;
function proved():Void{
  clearInterval(interval);  
//..zde bude kod te funkce pro to co potrebujes
}
interval=setInterval(proved,200);


dulezite je tam to clearInterval();
gubi
Profil
covece funguje to, díky moc :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: