PDA

Просмотр полной версии : Кириллица в embedFonts


Seroy
21.01.2010, 12:09
my_label.text = "Ugol 90°";
my_label.embedFonts=true;
my_label.fontFamily="Font 1";
my_label._rotation=90;


Код позволяет встроить шрифт (embedFonts) в компонент Label. Но при этом никакой из шрифтов, взятых за исходный, не отображает кириллицу. Может, кто знает, как справиться?

etc
21.01.2010, 12:18
Не создавайте шрифты в либе, в них не входит диапазон кириллицы. Что нужно делать — ищите в FAQ.

Seroy
21.01.2010, 12:24
Не создавайте шрифты в либе, в них не входит диапазон кириллицы. Что нужно делать — ищите в FAQ.

А в каком именно FAQ, если не секрет?

etc
21.01.2010, 12:29
В FAQ здесь, на форуме.

Seroy
21.01.2010, 12:42
Обнаружил в FAQ ссылку вот на эту статью:

http://www.flash-mx.ru/forum/topic_show.pl?tid=1624 (http://www.flash-mx.ru/forum/topic_show.pl?tid=1624)

По идее, мне нужен шрифт для компонента, не для поля. Прошел по директории, которая указана в статье. Там содержится папка Flash 8. А что делать, если у меня CS4?

mooncar
21.01.2010, 13:35
Сделайте просто. Создайте динамическое поле в любом месте, где-нибудь в первом кадре. Внедрите туда КНОПКОЙ EMBED (На панели свойств поля) нужный набор (для обычного текста я внедряю Цифры, Пунктуацию, Базовую Латиницу, Кириллицу, иногда еще что-то).
Сделайте так для полужирного и наклонного, если надо.
Теперь embedFonts=true; будет работать везде.

Это я о том, как именно внедрять. А поле для внедрения нужно найти внутри компонента, если стандартного свойства нет.

mooncar
21.01.2010, 14:33
Автор, само текстовое поле в компоненте Label имеет имя labelField.
Ему-то и нужно шрифт заэмбедить.
А после этого как-то назначить нужный шрифт и прочее оформление, чтобы заработало.
С textFormat не получилось.
Зато вот получилось с помощью CSS:

import TextField.StyleSheet;
var my_styleSheet:StyleSheet = new StyleSheet();
my_styleSheet.setStyle(".mystyle", {color:"#FF0000", fontFamily:"PT Sans Narrow Bold", fontSize:"20"} );

my_label.labelField.embedFonts = true;
my_label.labelField.styleSheet = my_styleSheet;
my_label.text = '<span class="mystyle">Это label с внедренным текстом</span>';

Что интересно, с html-форматированием работает именно конструкция my_label.text, а не my_label.labelField.htmlText (интересно, почему).

См. прикрепленный рабочий пример в конце.


А ниже я привел список возможных свойств этого самого текстового поля в Label, полученный с помощью нехитрой операции
for (i in my_label.labelField) {
trace(i + ' ' + my_label.labelField[i]);
}

getFocusManager [type Function]
onKillFocus [type Function]
onSetFocus [type Function]
setFocus [type Function]
changeTextStyleInChildren [type Function]
setStyle [type Function]
adjustFocusRect [type Function]
drawFocus [type Function]
getPreferredHeight [type Function]
getPreferredWidth [type Function]
_getTextFormat [type Function]
value
getValue [type Function]
setValue [type Function]
__getTextFormat [type Function]
getStyle [type Function]
setColor [type Function]
draw [type Function]
invalidateStyle [type Function]
setSize [type Function]
move [type Function]
enabled undefined
visible true
bottom NaN
right NaN
y 0
top 0
x 0
left 0
height 22
width 100
styleSheet [object Object]
mouseWheelEnabled true
condenseWhite false
restrict null
textHeight 0
textWidth 0
bottomScroll 1
length 0
selectable false
multiline false
password false
wordWrap false
background false
border false
html false
embedFonts true
maxChars null
maxhscroll 0
hscroll 0
variable null
htmlText
type dynamic
text
autoSize none
tabIndex undefined
textColor 0
backgroundColor 16777215
borderColor 0
maxscroll 1
scroll 1
filters
sharpness 0
thickness 0
antiAliasType normal
gridFitType pixel
styleName _level0.my_label

К этим свойствам и методам тоже можно попробовать пообращаться :).

etc
21.01.2010, 14:35
FAQ это здесь (http://www.flasher.ru/forum/forumdisplay.php?f=86), а не на каком-то левом сайте.

http://www.flasher.ru/forum/showthread.php?t=93152

Seroy
26.01.2010, 11:11
Автор, само текстовое поле в компоненте Label имеет имя labelField.
Ему-то и нужно шрифт заэмбедить.
А после этого как-то назначить нужный шрифт и прочее оформление, чтобы заработало.
С textFormat не получилось.
Зато вот получилось с помощью CSS:

import TextField.StyleSheet;
var my_styleSheet:StyleSheet = new StyleSheet();
my_styleSheet.setStyle(".mystyle", {color:"#FF0000", fontFamily:"PT Sans Narrow Bold", fontSize:"20"} );

my_label.labelField.embedFonts = true;
my_label.labelField.styleSheet = my_styleSheet;
my_label.text = '<span class="mystyle">Это label с внедренным текстом</span>';

Что интересно, с html-форматированием работает именно конструкция my_label.text, а не my_label.labelField.htmlText (интересно, почему).

См. прикрепленный рабочий пример в конце.


А ниже я привел список возможных свойств этого самого текстового поля в Label, полученный с помощью нехитрой операции
for (i in my_label.labelField) {
trace(i + ' ' + my_label.labelField[i]);
}

getFocusManager [type Function]
onKillFocus [type Function]
onSetFocus [type Function]
setFocus [type Function]
changeTextStyleInChildren [type Function]
setStyle [type Function]
adjustFocusRect [type Function]
drawFocus [type Function]
getPreferredHeight [type Function]
getPreferredWidth [type Function]
_getTextFormat [type Function]
value
getValue [type Function]
setValue [type Function]
__getTextFormat [type Function]
getStyle [type Function]
setColor [type Function]
draw [type Function]
invalidateStyle [type Function]
setSize [type Function]
move [type Function]
enabled undefined
visible true
bottom NaN
right NaN
y 0
top 0
x 0
left 0
height 22
width 100
styleSheet [object Object]
mouseWheelEnabled true
condenseWhite false
restrict null
textHeight 0
textWidth 0
bottomScroll 1
length 0
selectable false
multiline false
password false
wordWrap false
background false
border false
html false
embedFonts true
maxChars null
maxhscroll 0
hscroll 0
variable null
htmlText
type dynamic
text
autoSize none
tabIndex undefined
textColor 0
backgroundColor 16777215
borderColor 0
maxscroll 1
scroll 1
filters
sharpness 0
thickness 0
antiAliasType normal
gridFitType pixel
styleName _level0.my_label

К этим свойствам и методам тоже можно попробовать пообращаться :).


mooncar, спасибо! обяз. сегодня посмотрю. респект! :drinks: