PDA

Просмотр полной версии : создание TextField в цикле


_pkiller_
03.05.2006, 05:08
есть следующая задача, подгрузить картинки из папки (получаем определенную область) и пронумировать квадраты, от 1 до последнего. С загрузкой картинок все окей, пару циклов, все работает. Теперь пытаюсь поверх каждой картинки создать текстовое поле и в него вписать значение переменной. но что-то как-то не выходит у меня с полями. Подскажите плиз, где ошибочка. Флэш ошибок не выдает. но и результат тоже

a=1;
for (t=10; t<=20; t++) {
for (i=5; i<=15; i++) {
this.createEmptyMovieClip("pic"+i+t, this.getNextHighestDepth());
p = eval("pic"+i+t);
p.createTextField("txt"+i+t, getNextHighestDepth(), 10, 10, 100, 50);
tt=eval("txt"+i+t);
tt.text=a;
loadMovie("/images/"+i+"_"+t+".jpg", p);
p._x = (i-5)*100;
p._y = (t-10)*100;
a++;
}
}

son_of_war
03.05.2006, 07:17
это все от того, что после загрузки внешнего файла старое содержимое клипа удаляется
или грузи картинку не в "p", а создай в нем отдельный вложенный клип для картинки
или используй movieClipLoader и в событии onLoadInit, например, сделай создание текстового поля

_pkiller_
03.05.2006, 08:45
сенкс, попробую

_pkiller_
03.05.2006, 09:35
получилось следующее


a = 1;
for (t=10; t<=20; t++) {
for (i=5; i<=15; i++) {
this.createEmptyMovieClip("mc"+a, a);
p = eval("mc"+a);
p.createEmptyMovieClip("pic"+a, a);
pp = eval("pic"+a);
p.loadMovie("/images/"+i+"_"+t+".jpg", pp);
p.createTextField("txt"+a, this.getNextHighestDepth(), 10, 10, 100, 50);
tt = eval("txt"+a);
tt.text = a;
p._x = (i-5)*100;
p._y = (t-10)*100;
a++;
}
}


Но всеравно текстовых полей нет, картинки есть.

son_of_war
03.05.2006, 09:59
ты разберись с кодом, там ошибок немеряно
a = 1;
for (t=10; t<=20; t++) {
for (i=5; i<=15; i++) {
p = this.createEmptyMovieClip("mc"+a, this.getNextHighestDepth());
pp=p.createEmptyMovieClip("pic", p.getNextHighestDepth());
pp.loadMovie("/images/"+i+"_"+t+".jpg");
p.createTextField("txt", p.getNextHighestDepth(), 10, 10, 100, 50);
tt = p["txt"];
tt.text = a;
p._x = (i-5)*100;
p._y = (t-10)*100;
a++;
}
}
к примеру так

_pkiller_
03.05.2006, 10:22
еще раз спасибо, помогло но наполовину, поля есть, щупаюца курсором, а вот значения в них нет. пустые они.

son_of_war
03.05.2006, 10:42
ну попробуй тогда
tt = p["txt"];
tt.text = a;
заменить на

p.txt.text = a;

_pkiller_
03.05.2006, 10:52
пробывал уже, не помогает

son_of_war
03.05.2006, 11:07
тогда надо трэйсом смотреть что получается - у меня заработало
попробуй
p.txt.text = a;
p.txt.border=true;
trace(p.txt.text);
тут ты должен увидеть твои текстовые поля и заодно их значения в трэйсе

_pkiller_
03.05.2006, 11:28
в трейсе показывает без проблем, а вот на поле нет.

_pkiller_
03.05.2006, 11:34
*и тут меня осенило)
дело в том что ентот клип у меня лежит под маской, убрал маску все стало работать) спасибо за помощь.

son_of_war
03.05.2006, 11:35
значит что-то со шрифтами, ты использовал embed fonts ?

_pkiller_
03.05.2006, 11:53
повесил маску програмно - стало все гуд) embed fonts не использовал.
А может Уважаемый еще подскажет как организовать маленький прелоадер для каждой подгружаемой картинки в моем примере? Если не сложно.