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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Jul 2007
Сообщений: 14
По умолчанию Не создается текстовое поле

Почему не создается текстовое поле?
Код:
_root.createEmptyMovieClip ("b", 1);
b._x=150;
b._y=200;
b._width=50;
b._height=20;
b.createTextField("butt_1", 2, 150, 200, 50, 20);
butt_1.text="Button 1";

Старый 16.07.2007, 17:51
Aziz Zaynutdinoff вне форума Посмотреть профиль Отправить личное сообщение для Aziz Zaynutdinoff Посетить домашнюю страницу Aziz Zaynutdinoff Найти все сообщения от Aziz Zaynutdinoff
  № 2  
Ответить с цитированием
Aziz Zaynutdinoff
 
Аватар для Aziz Zaynutdinoff

Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
потому что b ну существует... попробуйте протрейсить и поймете.

Код:
var _mc:MovieClip = _root.createEmptyMovieClip("b", _root.getNextHighestDepth());
_mc._x = 150;
_mc._y = 200;
var _txt:TextField = _mc.createTextField("butt_1", 2, 150, 200, 50, 20);
_txt.text = "Button 1";

Старый 16.07.2007, 23:36
V_e_g_a вне форума Посмотреть профиль Отправить личное сообщение для V_e_g_a Найти все сообщения от V_e_g_a
  № 3  
Ответить с цитированием
V_e_g_a

Регистрация: Jul 2007
Сообщений: 14
И в моем и в твоем коде трейс выводит одно и то же - _level0.b
Получается, что MovieClip создается. Почему тогда не работает, если не сохранять в переменной?

Старый 16.07.2007, 23:53
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
может потому что код не в руте находится, а клип создается в руте

Старый 16.07.2007, 23:57
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
1. b.butt_1.text, а не butt_1.text
2. Размеры мувиклипа надо менять после того, как он перестал быть пустым, так размеры отражают не сам размер клипа, а его содержимого, но ведь текстового поля в нем еще нет, поэтому _xscale и _yscale становятся 0. Или же менять именно _xscale и _yscale
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.07.2007, 23:58
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 6  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Цитата:
Сообщение от V_e_g_a
Почему не создается текстовое поле?
Код:
_root.createEmptyMovieClip ("b", 1);
b._x=150;
b._y=200;
b._width=50;
b._height=20;
b.createTextField("butt_1", 2, 150, 200, 50, 20);
butt_1.text="Button 1";
1. Вы создаете текстовое поле внутри пустого мувиклипа, отсчет координат текстового поля пойдет от верхнего левого угла мувиклипа, поэтому не нужно смещать текстовое поле на 150, 200. Поэтому:
Код:
 b.createTextField("butt_1", 2, 0, 0, 50, 20);
butt_1.text="Button 1";
2.
Код:
 b.createTextField("butt_1", 2, 0, 0, 50, 20);
butt_1.text="Button 1";
Текстовое поле создано внутри мувиклипа, а текст задается как будто оно создано на руте. Вот как правильно задать текст:
Код:
 b.createTextField("butt_1", 2, 0, 0, 50, 20);
b.butt_1.text="Button 1";
3. Нет необходимости задавать ширину и длину пустому клипу - его ширина и длина сами увеличатся кода внутри появится содержимое. Проверьте:
Код:
_root.createEmptyMovieClip ("b", 1);
b._x=150;
b._y=200;
b.createTextField("butt_1", 2, 0, 0, 50, 20);
b.butt_1.text="Button 1";
//
trace([b._width,b._height])
4. Рекомендую использовать переменные-контейнеры для хранения ссылок на объекты. Так вы избавитесь от длинных и некрасивых полных путей к объектам:
Код:
var mc:MovieClip = this.createEmptyMovieClip("b", this.getNextHighestDepth());
mc._x = 150;
mc._y = 200;
var tf:TextField = mc.createTextField("butt_1", mc.getNextHighestDepth(), 0, 0, 50, 20);
tf.text = "Button 1";

Старый 17.07.2007, 01:24
V_e_g_a вне форума Посмотреть профиль Отправить личное сообщение для V_e_g_a Найти все сообщения от V_e_g_a
  № 7  
Ответить с цитированием
V_e_g_a

Регистрация: Jul 2007
Сообщений: 14
Всем спасибо. Еще только один вопрос хочу уточнить. Вот для этого случая (когда текстовое поле создается внутри MovieClip) как правильно глубины расставить? Должна ли быть глубина текстового поля меньше/больше или же равна глубине MovieClip? Просто при любых значениях все работает.

Старый 17.07.2007, 02:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Глубина 0 для мувклипа берется относительно _root. Глубина 0 для текстового поля внутри мувиклипа берется относительно мувиклипа.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 17.07.2007, 09:28
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 9  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Цитата:
Сообщение от V_e_g_a
Всем спасибо. Еще только один вопрос хочу уточнить. Вот для этого случая (когда текстовое поле создается внутри MovieClip) как правильно глубины расставить? Должна ли быть глубина текстового поля меньше/больше или же равна глубине MovieClip? Просто при любых значениях все работает.
Обычно глубины расставляют так чтобы два разных объекта не оказались на одной глубине в одном мувиклипе. Если совпадет глубина объектов в одном мувиклипе, то последний созданный удалит предыдущий на той же глубине.
В вашем примере: для b берем свободную глубину рута, для текстового поля - свободную глубину b.

Старый 17.07.2007, 18:34
V_e_g_a вне форума Посмотреть профиль Отправить личное сообщение для V_e_g_a Найти все сообщения от V_e_g_a
  № 10  
Ответить с цитированием
V_e_g_a

Регистрация: Jul 2007
Сообщений: 14
Понял. Спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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