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

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

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

Регистрация: May 2006
Сообщений: 125
По умолчанию getCharBoundaries не может получить координаты символа

По дефолту функиция getCharBoundaries не может получить координаты символа который не попадает в размеры текстового поля. Казалось бы TextFieldAutoSize должен избавить от такой проблемы, но он не спасает.
Видимо он срабатывает на выставление размеров текстового поля после того как мы пытаемся получить размеры символа, т.е. гдето после отрисовки. Вот такая вот забавная штука. Убил несколько часов на выяснение такой особенности, вот делюсь, может кому пригодится.
Видимое решение проблемы - выставить достаточный размер TextField при создании и поставить TextFieldAutoSize.

Код AS3:
var t : TextField = new TextField();
 
t.multiline = true;
t.wordWrap = true;
t.width = 200;
//t.height = 1000;
t.autoSize = TextFieldAutoSize.LEFT;
addChild(t);
 
t.htmlText = "<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>";
 
trace("text |"+t.text+"|");
trace("htmltext |"+t.htmlText+"|");
 
for (var i :int = 0; i < t.text.length; i++) {
	trace("char:|"+t.text.substr(i,1)+"|"+i+" "+t.getCharBoundaries(i));
}
Код:
..skip..
char:|a|10 (x=2, y=77, w=5, h=15)
char:|
|11 null
char:|a|12 (x=2, y=92, w=5, h=15)
char:|
|13 null
char:|a|14 null
char:|
|15 null
..skip..

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

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

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


 


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


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