Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   создание TextField в цикле (http://www.flasher.ru/forum/showthread.php?t=79146)

_pkiller_ 03.05.2006 05:08

создание TextField в цикле
 
есть следующая задача, подгрузить картинки из папки (получаем определенную область) и пронумировать квадраты, от 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

в трейсе показывает без проблем, а вот на поле нет.


Часовой пояс GMT +4, время: 13:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.