![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
|
Вопрос:
Есть динамическое поле текста. В первом кадре, где основной код, я делаю q = new Object(); q.text = "какой-то текст"; stop(); Для динамического поля задаю variable: q.text В итоге, в первом кадре в этом динамическом тексте ничего нет. Если отправляюсь в другие кадры, то, как и задумывалось, в этом поле появляется _ какой-то текст _ . Почему же этот текст не появляется в первом кадре и как преодолеть этот трабл? (мне нужно, чтоб именно в первом кадре в поле был нужный текст). Все это происходит во Flash MX. Спасибо всем, кто отзовется. Последний раз редактировалось vatslav; 01.08.2003 в 02:11. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Имя переменной не должно содержать точки и много чего ещё. А то, что ты прописываешь в поле variable - это именно имя переменной. Название, а не определение объекта.
Если хочешь, чтобы текстовое поле принадлежало объекту, созданному динамически, - создавай его динамически с помощью createTextField. Как обычно, есть, другой вариант - использовать уже имеющийся объект: Для динамического поля задаешь instance name: q Все, объект q уже создан. Можно сделать с ним все, что хотел. Напр.: q.text="какой-то текст"; q.asd="hello!"; q.popup=function(msg){trace(msg)}; q.popup(q.asd); |
|
|||||
|
Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
|
Спасибо за ответ, все работает. Но, все-таки, хотелось бы разобраться: если я в первом кадре вставляю код, который описал, а динамическое поле делаю в каком-то следующем кадре (в первом его нет), instance name ему не присваиваю, переменную задаю q.text, то при переходе в этот следующий кадр — опа! Появляется нужный текст. Если же это динамическое поле есть и в первом кадре, то это не работает. Почему же тогда это работает, если нет поля в первом кадре? Недокументированная возможность, или что?
|
|
|||||
|
Bumble Bee
[+1 05.07.06]
|
объекты MovieClip, Button, Mouse, TextField не нужно создавать как новый объект т.к. он создается сразу после компиляции....
я, конечно, понимаю что те хотится поюзать ООП, но здесь оно по-моему не к чему!!! так что используй переменную: mytextvar="blablabla";
__________________
Portfolio |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
По умолчанию твоё текстовое поле имеет instance name "instance1" (если ты не задал другое):
instance1.text="какой-то текст"; trace(instance1.variable); // выдаст "q.text" Переменная имеет идентификтор "q.text", но как только интерпретатор видит точку, вместо того, чтобы воспринимать "q.text" как единое целое, он ищет объект "q", а внутри него пременную "text". Поэтому из AS в принципе её никак не зацепишь. В поле variable ты можешь вбить хоть "а+б" или "Math.sin(3.14)", и переменная так и будет называться, но если в скрипте написать: Math.sin(3.14)="какой-то текст"; угадай, что скажет интерпретатор. Твой случай - баг, фича - называй как хочешь. Отрабатывает (почему-то) так, как хотелось, но только в момент появления ткст поля на сцене. Интересно будет поковыряться, может что-нить прикольное придумается. |
|
|||||
|
__________________
Work not wolf - in forest no run |
|
|||||
|
Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
|
Еще вот что заметил — если присваивать имя переменной динамического поля q.text, и поставить галку на "форматирование тегами HTML" то текст выводится корректно (не считая указанного в теме трабла), исправно форматируется. Если же присваивать динамическому полю instance name: q, variable: text, то на эту галку нет реакции, т.е. видны все теги.
2 Пушистик Цитата:
![]() Последний раз редактировалось vatslav; 01.08.2003 в 20:23. |
![]() |
Часовой пояс GMT +4, время: 05:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|