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

Вернуться   Форум Flasher.ru > Блоги > _Smirnoff

Оценить эту запись

Асинхронный wordWrap

Запись от _Smirnoff размещена 06.03.2009 в 13:13
Обновил(-а) _Smirnoff 06.03.2009 в 13:15

Заметил странную вещь. Если посмотреть, что выведет нам код, который написан ниже

Код AS3:
public function main():void
{
    var textField:TextField;
    addChild(textField = new TextField());						
    textField.type = TextFieldType.DYNAMIC;
    textField.selectable = false;
    textField.antiAliasType = AntiAliasType.ADVANCED;
    textField.autoSize = TextFieldAutoSize.LEFT;
    textField.text = 'Если ты привлекаешь в игру новых пользователей, то ты за это можешь получить золото и потратить его на свое усмотрение в игре. Пригласить игрока можно с помощью электронной почты или через клик на REF-ссылку.Твоя персональная REF-ссылка:';
    textField.width = 300;
    textField.wordWrap = true;	    	
 
    //Trace.WriteLine('textField.textHeight = ' + textField.textHeight);		
    Trace.WriteLine('before textField.numLines = ' + textField.numLines);		
 
    setTimeout(test, 1);
 
    Trace.WriteLine('after textField.numLines = ' + textField.numLines);
}
 
private function test():void
{
    Trace.WriteLine('setTimeout textField.numLines = ' +  textField.numLines);
}
Что вывел Trace

before textField.numLines = 1
after textField.numLines = 1
setTimeout textField.numLines = 5

Убираем коммент, но ставим его рядом с setTimeout

Код AS3:
public function main():void
{
    var textField:TextField;
    addChild(textField = new TextField());						
    textField.type = TextFieldType.DYNAMIC;
    textField.selectable = false;
    textField.antiAliasType = AntiAliasType.ADVANCED;
    textField.autoSize = TextFieldAutoSize.LEFT;
    textField.text = 'Если ты привлекаешь в игру новых пользователей, то ты за это можешь получить золото и потратить его на свое усмотрение в игре. Пригласить игрока можно с помощью электронной почты или через клик на REF-ссылку.Твоя персональная REF-ссылка:';
    textField.width = 300;
    textField.wordWrap = true;	    	
 
    Trace.WriteLine('textField.textHeight = ' + textField.textHeight);		
    Trace.WriteLine('before textField.numLines = ' + textField.numLines);		
 
    //setTimeout(test, 1);
 
    Trace.WriteLine('after textField.numLines = ' + textField.numLines);
}
 
private function test():void
{
    Trace.WriteLine('setTimeout textField.numLines = ' +  textField.numLines);
}
Что вывел Trace

textField.textHeight = 75
before textField.numLines = 5
after textField.numLines = 5

Вывод: Чтобы получить корректный numLines нужна пауза?
Всего комментариев 1

Комментарии

Старый 10.03.2009 20:31 iNils вне форума
iNils
 
Аватар для iNils
... или, что wordWrap = true надо делать до присвоения текста
 

 


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


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