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

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

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

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
По умолчанию TextFormat для текстового поля типа INPUT

Доброй ночи всем. Проблема в следущем: INPUT поле отказывается обрабатывать TextFormat. Может я что-то не то делаю? Причём trace мне возвращает 50, хотя шрифт не становится 50-м. С DYNAMIC полем таких проблем не возникало.
Код AS3:
var tfCross:TextField = new TextField();
    tfCross.type = TextFieldType.INPUT;
    tfCross.width = tfCross.height = tfCross.x = tfCross.y = 100;
    tfCross.border = true;
    tfCross.maxChars = 10;
 
var tftCross:TextFormat = new TextFormat();
    tftCross.size = 50;
    tfCross.setTextFormat(tftCross);			
addChild(tfCross);
trace(tftCross.size);

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Прочитайте в хелпе про TextField.setTextFormat() и TextField.defaultTextFormat.

Старый 10.05.2011, 12:43
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 3  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
bav
Почитал, нашёл, допёр. Спасибо =)

Итак решение:
вместо
Код AS3:
tfCross.setTextFormat(tftCross);
должно быть:
Код AS3:
tfCross.defaultTextFormat = tftCross;
Добавлено через 7 часов 36 минут
А как насчёт параметра, к-рый позволяет задавать расстояние между буквами? Как его задать?
P.S. help читал - не понял. Здесь нуждаюсь в реальном примере реализации.

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

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от niks_13 Посмотреть сообщение
... задавать расстояние между буквами?

Через стандартный TextFormat можно сделать так:
Код AS3:
var tf:TextField = new TextField();
var tformat:TextFormat = tf.defaultTextFormat;
tformat.letterSpacing = <VALUE>; // Ваше значение
tf.text = "Using TextFormat";
tf.setTextFormat(tformat);
addChild(tf);
Если вдруг понадобится TLF (у него намного шире функциональность чем у TextFormat и FTE), то для спейсинга можно сделать следующее:
Код AS3:
public class TLFTest extends Sprite
{    
    public function TLFTest()
    {    
        var tf:TextFlow = new TextFlow(TextFlow.defaultConfiguration);
        var para:ParagraphElement = new ParagraphElement();
        var span:SpanElement = new SpanElement();
        span.text = "Using TLF";
        para.addChild(span);
        tf.addChild(para);
        var tftlf:TextFlowTextLineFactory = new TextFlowTextLineFactory();
        tftlf.compositionBounds = new Rectangle(0, 0, 300, 300);
        var tlf:TextLayoutFormat = new TextLayoutFormat(tf.format);
        tlf.trackingLeft = <VALUE>; // Ваше значение
        tlf.trackingRight = <VALUE>; // Ваше значение
        tf.format = tlf;
        tftlf.createTextLines(clb, tf);            	
    }
 
    public function clb(txLine:TextLine):void 
    {
        addChild(txLine);
    }


Последний раз редактировалось surlac; 10.05.2011 в 22:21.
Старый 10.05.2011, 22:44
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Через стандартный TextFormat можно сделать так:
А короче будет передать это значение прямо в конструктор TextFormat

Старый 10.05.2011, 22:47
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 6  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
surlac
Сделал по 1-ому варианту:
Код AS3:
tfCross.letterSpacing = 20;
Хотя сам пробовал так делать и почему-то ошибка была, а вот Ваш код тупо скопипастил и вуаля - всё красиво и работает.
Спасибо)

goodguy
Тоже вариант, но что-то я в help'е не видел такого, ладно гляну повнимательнее. Спасибо.

Старый 11.05.2011, 00:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
что-то я в help'е не видел такого
Потому что в конструкторе TextFormat этого параметра нет, для него есть сеттер.
__________________
Reality.getBounds(this);

Старый 11.05.2011, 08:19
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 8  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
Wolsh
Простите, что для него есть? О0

Старый 11.05.2011, 08:44
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Сеттер

Функция вида
Код AS3:
public function set letterSpacing(value:int):void {
     _letterSpasing = value;
}
Вызывается как обычная публичная переменная

Старый 11.05.2011, 13:37
niks_13 вне форума Посмотреть профиль Отправить личное сообщение для niks_13 Найти все сообщения от niks_13
  № 10  
Ответить с цитированием
niks_13

Регистрация: Mar 2009
Адрес: Москва [СЗАО]
Сообщений: 107
Теперь понял)

Добавлено через 25 часов 32 минуты
Есть у кого-нибудь идеи как отформатировать INPUT поле таким образом, чтобы оно было вида как, скажем, в винде, когда IP в настройки сетевухи вбиваем? В Delphi это maskEdit называется вроде бы. То бишь имеем строку INPUT, maxChars = 10. Значит может вводить 10 символов в любом порядке. Ну как в ''Поле Чудес'' горизонтальный кроссворд.


Последний раз редактировалось niks_13; 12.05.2011 в 15:11.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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