Autor Zpráva
Verča
Profil *
Ahoj. Potřebuju poradit (napsat kousek kodu). dělám v AS 2 projekt. Mám v něm tabulku hodnot (dvourozměrné pole), v něm jsou předem definované hodnoty _x, _y. V určitým místě potřebuju tyto hodnoty nastavit prvkům prvek1, prvek2,...prvekN. Chtěla jsem to provést pomocí FOR cyklu ale nedaří se mi to. Prosím poraĎte někdo. Děkuji předem Veronika
embee
Profil
Melo by to byt nejak takto:

for(var i = 0; i<N; i++) {
eval("prvek"+i)._x = pole[i][0];
eval("prvek"+i)._y = pole[i][1];
}
Chamurappi
Profil
Reaguji na embee:
eval("prvek"+i)
To vypadá docela hloupě. Ve starém ActionScriptu snad není způsob, jak se vyhnout evalu?
embee
Profil
Chamurappi:
uz presne nevim, as2 neresim hodne dlouho... kazdopadne takto jsem to delaval a vzdy to fungovalo :) Nicmene jestli mas lepsi reseni, sem s nim ;)
Chamurappi
Profil
Reaguji na embee:
Flash neumím, ale předpokládám, že i v něm půjde ke globální proměnné přistoupit jako k vlastnosti globálního objektu (v JS je tím objektem window). Pak není zapotřebí užívat prasárnu typu eval.
embee
Profil
Chamurappi:
No, jeste se da pouzit takovyto zapis:

this["prvek"+i]

viz priklad nize:

var pokus1:MovieClip = new MovieClip();
trace(this["pokus"+1])

- tohle funguje, ale zde muze byt problem ve scopu, as2 je co se tyce scopu celkem nevyzpytatelny.
FlashManiac
Profil
embee, Chamurappi:
this["prvek"+i]
funguje v AS2.0 bez problémů.. pokud to není složitější věc, nemá s tím As problém..
XXX
Profil
eval jsem v životě nepoužil a to už jsem "pár" skriptů napsal :))

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:

0