2012-05-18 1 views
2

здесь 2 блока кода.DefaultTextFormat vs SetTextFormat

var myTextField:TextField = new TextField(); 
var myTextFormat:TextFormat = new TextFormat(); 

addChild(myTextField); 

myTextFormat.font = "Arial"; 
myTextFormat.size = 15; 
myTextFormat.color = 0x0000FF; 

myTextField.text = "some text"; 
**myTextField.setTextFormat(myTextFormat);** 

VS

var myTextField:TextField = new TextField(); 
var myTextFormat:TextFormat = new TextFormat(); 

addChild(myTextField); 

myTextFormat.font = "Arial"; 
myTextFormat.size = 15; 
myTextFormat.color = 0x0000FF; 

**myTextField.defaultTextFormat = myTextFormat;** 

Итак, в чем разница между setTextFormat() и defaultTextFormat? Почему два разных способа (один по свойству другого по методу) - делать что-то.

Протестировано некоторый код:

var my_txt:TextField =new TextField(); 
    my_txt.type = TextFieldType.INPUT 
    var my_fmt:TextFormat = new TextFormat(); 
    my_fmt.color = 0xFF0000; 

    my_txt.text = "this is for setTextFormat with range"; 
    my_txt.setTextFormat(my_fmt,0,3); 

    // my_txt.text = "this is for setTextFormat without range"; 
    // my_txt.setTextFormat(my_fmt); 

    // my_txt.defaultTextFormat = my_fmt; 
    // my_txt.text = "this is for default text format"; 

    addChild(my_txt); 

В.

ответ

3

setTextFormat позволяет изменять форматирование на части текста. Проверьте остальные два параметра setTextFormat. Когда вы устанавливаете defaultTextFormat, он применяется ко всему тексту, который вы добавляете к TextField.

Подробнее:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#defaultTextFormat

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#setTextFormat

Edit: Также setTextFormat не работает над текстом, который вставляется после того, как вы установите формат. Adobe говорит «Любой текст, вставленный вручную пользователем или замененный методом replaceSelectedText(), получает форматирование текстового поля по умолчанию для нового текста, а не форматирование, указанное для точки ввода текста. Чтобы установить форматирование по умолчанию для нового текста , используйте defaultTextFormat. "

+0

ok, thnx. Но много раз, когда вы пытаетесь использовать динамический шрифт, все не работает, если не используется defaultTextFormat. Так что должно быть что-то большее в этом отношении. –

+0

Не работает означает, что формат не меняется? setTextFormat не работает, если к тексту применяются стили. From adobe: Примечание. Этот метод не работает, если таблица стилей применяется к текстовому полю. –

+0

См. Edit, поэтому setTextFormat устанавливает только формат текста, находящегося в текстовом поле, который не влияет на текст, который вводит пользователь. –