Форум 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..

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Я не пробовал. Но если присвоить текст, прописать autoSize, так что бы TextField был нужного размера, а затем вновь присвоить текст?

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

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

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


 


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


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