Strona 1 z 1
dynamieczne tworzenie pola tekstowego
: pt sie 10, 2007 10:56 am
autor: conip
Witam wszystkich po raz 1szy
pisze z takim małym problemem:
w petli chce tworzyc dynamicznie pola tekstowe np majac taki kod
Kod: Zaznacz cały
for(i=0; i<2; i++)
{
nazwa = "nazwa"+i;
//trace(nazwa);
depth = _root.getNextHighestDepth();
//trace(depth);
_root.createTextField(nazwa,depth ,50,i*100 + 250,100,80);
nazwa.text = "proba" + i;
}
i pojawia mi sie problem:
jak odniesc sie do obiektu o nazwie która dynamicznie tworze? Flash zdaje sie probuje nadac atrybut text obiektowi nazwa, a ja chce aby to byla np nazwa1.
dzięki z gory za pomoc
pozdrawiam
Czy da się to w ogole zrobic?
Re: dynamieczne tworzenie pola tekstowego
: pt sie 10, 2007 12:55 pm
autor: conip
ponieważ równolegle zamieścilem ten post na innym forum i tam szybciej uzyskałem odpowiedz wiec dziele się tą świeżo zdobytą wiedzą:
wystarczyło dodać
_root[nazwa].text = "costam";
pozdrawiam
Re: dynamieczne tworzenie pola tekstowego
: pt sie 10, 2007 1:34 pm
autor: Marek_bf
Nie używaj _root
Kod: Zaznacz cały
var this_mc:MovieClip = this;
var my_txt:TextField;
var newName:String;
var newDepth:Number;
for (i = 0; i < 2; i++) {
newDepth = this_mc.getNextHighestDepth();
newName = "nazwa" + newDepth;
my_txt = this_mc.createTextField(newName, newDepth, 50, i * 20, 100, 20);
my_txt.text = "proba" + i;
}
Re: dynamieczne tworzenie pola tekstowego
: pn sie 13, 2007 8:54 am
autor: conip
Dzięki za odpowiedz
a moglbys uzasadnic dlaczego nie powinno sie uzywac _root?
dopiero zaczynam wiec dla mnie liczy sie efekt koncowy zeby dzialalo

- ale dzieki za wszelkie wskazowki. Poki co niestety to co podales jeszcze nie dziala bo wywala blad
Kod: Zaznacz cały
**Error** Scene=Scene 1, layer=action, frame=1:Line 8: Type mismatch in assignment statement: found Void where TextField is required.
my_txt = this_mc.createTextField(newName, newDepth, 50, i * 20, 100, 20);
ale pokombinuje i jakos dojde
pozdrawiam
Re: dynamieczne tworzenie pola tekstowego
: pn sie 13, 2007 9:30 am
autor: Marek_bf
Root nie należy używać choćby ze względu na konflikty, jakie jego użycie będzie powodowało, gdy wczytasz plik z takim kodem do innego swf.
Teraz nie powinno wywalać błędów zgodności typów.
Kod: Zaznacz cały
var this_mc:MovieClip = this;
var my_txt:TextField;
var newName:String;
var newDepth:Number;
for (i = 0; i < 2; i++) {
newDepth = this_mc.getNextHighestDepth();
newName = "nazwa" + String(newDepth);
my_txt = this_mc.createTextField(newName, newDepth, 50, i * 20, 100, 20);
my_txt.text = "proba" + String(i);
}
Re: dynamieczne tworzenie pola tekstowego
: pn sie 13, 2007 9:37 am
autor: conip
wlasnie tak mam zamiar zrobic - glowny swf zaimportuje inny obslugujacy XMLa dlatego kombinuje z dynamiczna liczba pol textowych zaleznie od zawartosci tego XMLa.
Tak wiec zaoszczedziles mi pewnie znowu nerwow

dzieki jeszcze raz
co do poprawnosci ostatenigo kodu niestety nadal wywala ten sam blad
Kod: Zaznacz cały
**Error** Scene=Scene 1, layer=action, frame=1:Line 8: Type mismatch in assignment statement: found Void where TextField is required.
my_txt = this_mc.createTextField(newName, newDepth, 50, i * 20, 100, 20);
pozdrawiam
xml
: pn sie 13, 2007 2:07 pm
autor: Marek_bf
Re: dynamieczne tworzenie pola tekstowego
: wt sie 14, 2007 7:01 am
autor: conip
jeszcze raz dzieki za pomoc
teraz juz smiga wszystko super - nie wiem czemu wczesniej nie dzialalo dla pewnosci wyeksportowalem jako swf pod flashplayera 8 i as2 i od tej pory jest ok.
pozdrawiam