2012-03-22 30 views
5

この壁紙の冒頭に、私は非常に新しいことを書いています。私は何かが明らかでないかもしれない。actionscriptで作成されたテキストフィールドに埋め込まれたフォントが表示されない

私はActionscript 3でFlash CS5で作業しています。私は、テキストフィールドを作成し、テキストを入力するために、actionscriptを使用しようとしています。私は自分のプロジェクトに "Font Embedding"ウィンドウを使って自分のフォントを埋め込んだ。ただし、テキストフィールドを作成するコードが実行された場合、 "embedFont = true;"の場合、フォントは見えません。上にカーソルを置くとカーソルが変わるので、そこにあることがわかります。または、少なくともそのテキストボックスは、私は推測します。すでに舞台に入っているテキストが埋め込まれたダイナミックテキストフィールドは、影響を受けていないようです。

埋め込みフォントのアウトライン形式を変更しようとしましたが、どちらも機能しませんでした。私はactionscriptを使ってフォントを埋め込みタグに直接埋め込んでみましたが、CS5で動作しないか、私が何をしているのかわかりません。提供されたコードでわかるように、私はフォントを "登録"しようとしましたが、成功しませんでした。私は使用しようとしました:

var font:Font = new screenfont(); //"screenfont" is the name from Embedding Fonts  

var format:TextFormat = new TextFormat(); 

format.font = screenfont.fontName; 

いいえサイコロです。

埋め込みに関するいくつかのチュートリアルに続き、紛らわしい複雑な情報がたくさんあります。私はこのテーマに関するいくつかの異なる投稿を読んだが、まだ実行可能な解決策は見つかっていない。私は、これは鮮明な画像を提供願ってい

Font.registerFont(screenfont); 

      //TextFormat 
var listformat:TextFormat = new TextFormat(); 

listformat.align = TextFormatAlign.LEFT; 
listformat.size = 20.8; 
listformat.color = 0x0DAC54; 
listformat.font="Fixedsys Excelsior 3.01"; 


      //TextField 
var photolist:TextField = new TextField(); 
    photolist.x = photos_x; 
    photolist.y = tempY; 
    photolist.width = photos_wdth; 
    photolist.height = photos_hght; 
    photolist.text = photoname; 

    photolist.embedFonts = true; //<--- This freakin' guy! 

    photolist.antiAliasType = AntiAliasType.ADVANCED; 
    photolist.defaultTextFormat=listformat; 
    photolist.selectable = false; 
    photolist.wordWrap = true; 

    mediapage.photos.addChild(photolist); 

は、ここで「screenfontは」私は埋め込みフォントウィンドウで指定した名前である私のコードのシンプルなバージョンです。

したがって、CS5での埋め込みはどのくらい正確に行われていますか?

+0

swfのライブラリにあなたのフォントを宣言しましたか?その場合は、埋め込むグリフも選択しましたか? – ToddBFisher

+0

はい、はいです。私は、 'exports for actionscript'と 'export in frame 1'もチェックしました。 – TeaCake

+0

コードに問題はありません。別のフォントを使ってみましたか? –

答えて

4

最後にテキストを設定する必要があります。したがって、この行photolist.text = photoname;は他のすべての後にする必要があります。

var photolist:TextField = new TextField(); 
photolist.x = photos_x; 
photolist.y = tempY; 
photolist.width = photos_wdth; 
photolist.height = photos_hght; 

photolist.embedFonts = true; 
photolist.antiAliasType = AntiAliasType.ADVANCED; 
photolist.defaultTextFormat=listformat; 
photolist.selectable = false; 
photolist.wordWrap = true; 
photolist.text = photoname;//<-- set text only after applying all formatting and embedding 

mediapage.photos.addChild(photolist); 
+1

驚くばかり!ちょうどそれを試しました、そして、それは確かに問題の大きな部分でした。多くの要因が私を台無しにしていたことが分かります。私がコメントしたのは photolist.size = TextFieldAutoSize.LEFTです。 もう1つ大きな問題(別のフォントを試してみると、私の診断に役立ちました)は、私のフォントが私の初期の実験の後にTLFに設定されたままだったということでした。あなたが私に尋ねる気にならないなら、クラシックとTLFの設定は何ですか? TLFを使用できない理由はありますか?私はTLFを使用できないことに怒っていますか? – TeaCake

関連する問題