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

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

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

Регистрация: Jul 2006
Сообщений: 32
Question TLFTextField и его width

Друзья, помогайте..
Свойство width для Sprite c TLFTextField определяется не своевременно, как решить?

Код AS3:
import fl.text.TLFTextField;
import flash.display.Sprite;
 
var txt:TLFTextField = new TLFTextField();
var mc:Sprite = new Sprite();
mc.addChild(txt);
addChild(mc);
 
txt.text = "fsdfsdfsd";
trace(mc.width); //0
//если засветить свойство width у текста, то он чудесным образом его сразу видит. Но такой вариант подходит только для дебажных плееров, что совсем не вариант
trace(txt.width); //100 
trace(mc.width); //100
Как выйти из ситуации и получить width сразу и актуальный?

Старый 15.01.2016, 13:19
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 2  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
эту строчку txt.text = "fsdfsdfsd";
перед добавление txt в mc

Старый 15.01.2016, 14:00
Xaider вне форума Посмотреть профиль Отправить личное сообщение для Xaider Найти все сообщения от Xaider
  № 3  
Ответить с цитированием
Xaider

Регистрация: Jul 2006
Сообщений: 32
KiL33
Не пойдет, текст динамический и меняется постоянно, при каждом изменении нужно мониторить какого размера стал контейнер с текстом и корректировать его размеры для встраивания в определенную ограниченную область

Добавлено через 8 минут
Вот такой костыль кстати работает. Другого ничего на ум не пришло

Код AS3:
import fl.text.TLFTextField;
import flash.display.Sprite;
 
var txt:TLFTextField = new TLFTextField();
var mc:Sprite = new Sprite();
mc.addChild(txt);
addChild(mc);
 
txt.text = "fsdfsdfsd";
txt.width;
trace(mc.width); //100

Старый 15.01.2016, 14:36
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 4  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Может так
Код AS3:
txt.autoSize = "left"
txt.addEventListener(Event.CHANGE, change);
 
function change(e:Event):void {
	trace(mc.width);
 
}
Правда я не могу сказать, насколько это лучше вашего варианта)

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

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

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


 


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


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