2012-02-14 7 views
0

私はこのようなTextFieldを使ってゲームのテキストをレンダリングしています。私はFlashDevelopで開発しているので、SWFはFlexコンパイラを使用してコンパイルされています。TextFormatとTextFieldsが異なるFlashPlayerの外に表示される

私の問題は、flashplayer(これはうまく見えます)ではなく、ブラウザ内でこのテキストを表示するときに、このテキストが適切な書式で表示されないことです。さまざまな画面解像度は、ブラウザでテキストを歪ませる仕方によって変化する傾向があります。なぜこれができますか?

var welcomeText:TextField = new TextField(); 
//formatText creates a TextFormat object, sets those values into TextFormat 
//then returns after doing TextField.defaultTextFormat = TextFormatObj; 

      formatText(welcomeText, 3, 0xFFFFFF, "Courier"); 
      welcomeText.width = 385; 
      welcomeText.height = 25; 
      welcomeText.x = 60; 
      welcomeText.y = 60; 
      welcomeText.text = "Cogito ergo sum"; 

答えて

0

これは、フォントを埋め込んでいない可能性が高いためです。代わりに、システム(またはブラウザ)が使用できるCourierフォントを使用しています。これによりファイルサイズが節約されます(フォントはSWF内にパッケージ化されていません)。

埋め込みフォントを使用するためには、あなたがあなたのTextFieldにtrueに2つの物事

1セット "のembedFonts" を実行する必要があり

welcomeText.embedFonts = true; 

2.埋め込みフォント

AS3のメタデータを使用して、次のようにフォントファイルを埋め込むことができます。

[Embed(source="C:\WINDOWS\Fonts\COURIER.TTF", fontFamily="Courier")] 
var _courier:String; 
myTextFormat.font = _courier; 

注:Flash Professionalのライブラリにフォントリンケージを作成することもできます。ライブラリで、 "New Font ..."を選択し、名前を付けます。完了したら、フォントを右クリックして「リンケージ...」を選択し、クラス名(「Courier_Font」など)を付けてSWCとしてエクスポートします。これをIDEのクラスパスに追加すると、フォントは次のようにアクセス可能になります。

var _font:Courier_Font = new Courier_Font(); 
myTextFormat.font = _font.fontName; 
+0

これは問題の原因だったのでしょうか。違いは画面解像度やブラウザではなく、OSでの違いです。 Windows上で正常に表示されますが、MacとLinuxではテキストに突然問題が発生しました(いくつかのデフォルト設定に戻ります)。 Flash Proへの組み込みは簡単に見えますが、Flash Developを使用しているので、埋め込まれたテキストを取得することは、必要以上に手間がかかります。これは、このサイトで広くカバーされているような別の問題です。ありがとう! – 4D6176

+0

偉大な - それが助けてうれしい。 – shackleton

0

thisをご覧ください。私は、フォーマットと、過去にトラブルを持っていたので、私はあなたが同じようにTextFormatオブジェクトを設定を知ってプラス私も

testfield.SetStyle() 

コマンドを使用します。あなたは、うまくいけば、このことができます

TextFormat textStyle; 
// Set properties for textstyle 
textField.setStyle("textFormat", textStyle); 

...この例に類似するSetStyle(フォントファミリ、色、でもテキスト形式)を介して多くのパラメータを設定することができます。できるだけ多くの方法で設定してみてください。

関連する問題