ホーム > tech > as3:CSSスタイルシートにフォントをよみこむ。

as3:CSSスタイルシートにフォントをよみこむ。

2010年1月20日 17:08 | コメント(0) | トラックバック(0)|


結構ハマッたのでメモメモ。

何がしたかったかというと、ダイナミックテキストフィールドに読み込んだ文字をちょいおされなフォントで表示したかったのです。

手順
1.ライブラリ→新しいフォントで、フォントを登録。私はBarnhard Modernのボールドを「Bernhard」という名前で登録しました。

2.asでこんなかんじのことを書いてみる。

//BernhardをとりあえずmyFontと呼ぶ。
var myFont: Bernhard = new Bernhard();
//CSSでスタイルをいろいろ指定。 フォントの種類は上で命名したmyFont。
myStyleSheet.parseCSS(".fontclass {color: #FF0000; fontFamily:myFont, fontSize: 30pt;letterSpacing: 0; marginLeft: 0;}");

//ダイナミックテキスト用のテキストフィールド"txtField" を用意。
txtField = new TextField();
txtField.styleSheet =  myStyleSheet;
txtField.width = 150;
txtField.height = 150;
txtField.wordWrap = true;
txtField.htmlText = txtField.htmlText = "<p class=\"fontclass\">"+"rolem ipsum"+"</p>" 

addChild(txtField);

・・・・・
コレで書き出すとうまくいきません。
なぜか。
どうやら、Flashには登録したフォントに勝手に名前をつける、という迷惑な機能があり、その名前で呼び出す必要があるようなのです。

そこで、

trace(myFont.name);

を実行すると "Bernhard Modern BT" というのがトレースされます。これがFlashの命名ですね。コチラをmyFontと差し替えます。ちなみにmyFont.nameと直接書いても効きません。

あと、
txtField.embedFonts = true; 
は必要ありません。ていうかこのコードを書くと、うまく表示されなくなります。

なんかちょっと面倒くさいですね。



・・・・・
追記。

フォントサイズの指定がうまくいきません。なにをやっても8ptになってしまう。色はかえられるのだけれど。BoldとかItalicの指定がうまくいかないと書いている人がいたので、エラーの一種かもしれません。
こまったもんだ。
どなたか知っている人がいらしたら、ご教示願いたいです。

・・・・・
もっかい追記。

myStyleSheet.parseCSS(".fontclass {color: #000000; font-family:Bernhard Modern BT; font-size: 30pt; letterSpacing: 0; marginLeft: 0;}");

この書き方でうまくいきました。お騒がせしました。

・・・・・
更に追記。

やはりembedFontはtrueにしないと他の人のパソコンで見れないということが判明、、。
embedしてみたものの、重くわなるし、文字の輪郭がぎざぎざに表示されるし、なぜか細身になるし、、、。デフォルトフォントが一番よいのではないかという、平凡且つ悲しい結論に落ち着きそうです。

トラックバック(0)

このブログ記事を参照しているブログ一覧: as3:CSSスタイルシートにフォントをよみこむ。

このブログ記事に対するトラックバックURL:

コメントする