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

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

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

Регистрация: Jul 2006
Сообщений: 89
Отправить сообщение для Idalgo с помощью ICQ
По умолчанию Построчный TextFormat

Есть многострочный TextField, динамический или поле ввода - неважно.
Если задавать ему формат построчно (например шрифт и размер), то общий формат будет содержать шрифт и размер равные null, даже если построчно устанавливались одни и те же значения.

Вот тестовый пример:
Код:
inpText.text = ''
for(var i=0; i<10; i++) {
	inpText.text += i+'\r'
}
for(var i=0; i<10; i++) { 
	var tf = new TextFormat()
	tf.size = 20
	tf.font = 'Arial'
	inpText.setTextFormat(i*2,i*2+2,tf)
	var ttt = inpText.getTextFormat(i*2,i*2+2)
	trace(ttt.font+" : "+ttt.size)
}
var ttt = inpText.getTextFormat()
trace('==============')
trace(ttt.font+" : "+ttt.size)
Почему так?

В общем случае размер и название шрифта могут быть разные для разных строк. Хотелось бы получить в результате название шрифта и размер его, если таковые совпадут во всех строках.

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

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

Старый 20.05.2008, 20:30
Idalgo вне форума Посмотреть профиль Отправить личное сообщение для Idalgo Найти все сообщения от Idalgo
  № 3  
Ответить с цитированием
Idalgo

Регистрация: Jul 2006
Сообщений: 89
Отправить сообщение для Idalgo с помощью ICQ
А что выводит в итоге под '==============', если заранее установить для поля любой шрифт и размер, кроме Arial : 20 ?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Было "Myriad Pro : 14"
Стало "Arial : 20"
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.05.2008, 21:10
Idalgo вне форума Посмотреть профиль Отправить личное сообщение для Idalgo Найти все сообщения от Idalgo
  № 5  
Ответить с цитированием
Idalgo

Регистрация: Jul 2006
Сообщений: 89
Отправить сообщение для Idalgo с помощью ICQ
Хм... да, действительно получается.
Но! Если сделать так:
Код:
inpText.text = ''
for(var i=0; i<10; i++) {
	inpText.text += i+'\r'
}
for(var i=0; i<10; i++) { 
	var tf = new TextFormat()
	tf.size = (i+1)*8 // <----- разный размер
	tf.font = 'Arial'
	inpText.setTextFormat(i*2,i*2+2,tf)
	var ttt = inpText.getTextFormat(i*2,i*2+2)
	trace(ttt.font+" : "+ttt.size)
}
var ttt = inpText.getTextFormat()
trace('==============')
trace(ttt.font+" : "+ttt.size)
...то в результате получаем null : null
хотя по идее должно быть Arial : null

(или я опять что-то напутал?)

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Добавил две строчки.
Код:
inpText.text = '';
inpText.html = true;
for (var i = 0; i < 10; i++) {
	inpText.text += i + '\r';
}
for (var i = 0; i < 10; i++) {
	var tf = new TextFormat ();
	tf.size = i;
	// <----- разный размер
	tf.font = 'Arial';
	inpText.setTextFormat (i * 2, i * 2 + 2, tf);
	var ttt = inpText.getTextFormat (i * 2, i * 2 + 2);
	trace (ttt.font + " : " + ttt.size);
}
var ttt = inpText.getTextFormat ();
trace ('==============');
trace (ttt.font + " : " + ttt.size);
trace (inpText.htmlText);
А теперь посмотрите на бардак (результат) в трейсе.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jul 2006
Сообщений: 89
Отправить сообщение для Idalgo с помощью ICQ
Почему бардак? Вполне ожидаемая разметка.
Но только мне html не нужен в данном случае.
Или без html никак не обойтись?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А вы думаете TextFormat сам по себе работает? Нет, это просто другой способ форматирования, но работает он через те же html теги. И включив html я вам показал реальную картину, а не голый текст.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.05.2008, 00:57
Idalgo вне форума Посмотреть профиль Отправить личное сообщение для Idalgo Найти все сообщения от Idalgo
  № 9  
Ответить с цитированием
Idalgo

Регистрация: Jul 2006
Сообщений: 89
Отправить сообщение для Idalgo с помощью ICQ
По крайней мере пришли к выводу, что так как мне нужно - не работает
Спасибо, iNils
Буду придумывать по-другому.

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

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

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


 


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


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