Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 01.08.2003, 02:07
vatslav вне форума Посмотреть профиль Отправить личное сообщение для vatslav Посетить домашнюю страницу vatslav Найти все сообщения от vatslav
  № 1  
vatslav

Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
Question Трабл с Object

Вопрос:
Есть динамическое поле текста.
В первом кадре, где основной код, я делаю

q = new Object();
q.text = "какой-то текст";
stop();

Для динамического поля задаю variable: q.text

В итоге, в первом кадре в этом динамическом тексте ничего нет. Если отправляюсь в другие кадры, то, как и задумывалось, в этом поле появляется _ какой-то текст _ . Почему же этот текст не появляется в первом кадре и как преодолеть этот трабл? (мне нужно, чтоб именно в первом кадре в поле был нужный текст). Все это происходит во Flash MX.

Спасибо всем, кто отзовется.


Последний раз редактировалось vatslav; 01.08.2003 в 02:11.
Старый 01.08.2003, 03:04
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 2  
TTS
 
Аватар для TTS

Регистрация: 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);

Старый 01.08.2003, 04:48
vatslav вне форума Посмотреть профиль Отправить личное сообщение для vatslav Посетить домашнюю страницу vatslav Найти все сообщения от vatslav
  № 3  
vatslav

Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
Спасибо за ответ, все работает. Но, все-таки, хотелось бы разобраться: если я в первом кадре вставляю код, который описал, а динамическое поле делаю в каком-то следующем кадре (в первом его нет), instance name ему не присваиваю, переменную задаю q.text, то при переходе в этот следующий кадр — опа! Появляется нужный текст. Если же это динамическое поле есть и в первом кадре, то это не работает. Почему же тогда это работает, если нет поля в первом кадре? Недокументированная возможность, или что?

Старый 01.08.2003, 12:46
Пушистик вне форума Посмотреть профиль Отправить личное сообщение для Пушистик Посетить домашнюю страницу Пушистик Найти все сообщения от Пушистик
  № 4  
Пушистик
Bumble Bee
[+1 05.07.06]
 
Аватар для Пушистик

Регистрация: May 2003
Адрес: Третья планета от Солнца
Сообщений: 1,254
Отправить сообщение для Пушистик с помощью ICQ
объекты MovieClip, Button, Mouse, TextField не нужно создавать как новый объект т.к. он создается сразу после компиляции....
я, конечно, понимаю что те хотится поюзать ООП, но здесь оно по-моему не к чему!!!
так что используй переменную:
mytextvar="blablabla";
__________________
Portfolio

Старый 01.08.2003, 12:59
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 5  
TTS
 
Аватар для TTS

Регистрация: Jan 2002
Сообщений: 1,323
Cool Ба! Дак это ты фичу новую откопал!

По умолчанию твоё текстовое поле имеет 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)="какой-то текст";
угадай, что скажет интерпретатор.

Твой случай - баг, фича - называй как хочешь. Отрабатывает (почему-то) так, как хотелось, но только в момент появления ткст поля на сцене.
Интересно будет поковыряться, может что-нить прикольное придумается.

Старый 01.08.2003, 14:02
Useless вне форума Посмотреть профиль Отправить личное сообщение для Useless Посетить домашнюю страницу Useless Найти все сообщения от Useless
  № 6  
Useless

Регистрация: Mar 2001
Адрес: всё, отжился...
Сообщений: 1,024
Отправить сообщение для Useless с помощью ICQ
Код:
this["Math.sin(3.14)"] = "wow";
trace(this["Math.sin(3.14)"]);
__________________
Work not wolf - in forest no run

Старый 01.08.2003, 20:20
vatslav вне форума Посмотреть профиль Отправить личное сообщение для vatslav Посетить домашнюю страницу vatslav Найти все сообщения от vatslav
  № 7  
vatslav

Регистрация: Sep 2002
Адрес: Россия, Москва
Сообщений: 14
Еще вот что заметил — если присваивать имя переменной динамического поля q.text, и поставить галку на "форматирование тегами HTML" то текст выводится корректно (не считая указанного в теме трабла), исправно форматируется. Если же присваивать динамическому полю instance name: q, variable: text, то на эту галку нет реакции, т.е. видны все теги.

2 Пушистик
Цитата:
я, конечно, понимаю что те хотится поюзать ООП, но здесь оно по-моему не к чему!!!
Так я же не весь код привожу


Последний раз редактировалось vatslav; 01.08.2003 в 20:23.
Создать новую тему   Часовой пояс GMT +4, время: 05:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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