2010-12-06 16 views
2

テキストアンチエイリアスはコードで制御されていますか、または埋め込まれていますか?私がしたいことは、誰かが作ったswfファイルを取って、swfファイル内のテキストをすべて見つけて、アンチエイリアスモードをアニメーションから可読性に変更することです。それはas3でそのように動作しますか?正直なところ、コード内でアンチエイリアスを試したことはありません。Flash AS3は、コードによって制御されるテキストアンチエイリアスですか?

答えて

8

テキストフィールドのantiAliasTypeを 'advanced'に設定すると、シャープネスと厚みを細かく制御できます。ただし、フォントは埋め込まれている必要があります(テキストフィールドにはembedFontsをtrueに設定し、TextFormatオブジェクトには埋め込みフォントのfontNameと正確に等しいフォントプロパティが必要で、フォントは既にコンパイルされている必要があります)。技術的には「可能ですか? - はい。それはあなたがそれを望む方法で動作する可能性がありますか?埋め込みフォントを既に使用していることを知っているスウィフを使って作業する予定がない限り、いいえ。ロードされたswiffからすべてのテキストフィールドを取得する必要があります(http://upshots.org/?p=107を使用してから、array.filterを使用してTextFieldオブジェクトのみを取得します)。次にロジックを適用します。 EDIT

:追加のサンプルコード

// assuming you're using the DisplayList class linked above 
var request:URLRequest = new URLRequest("textfields.swf"); 
var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); 
loader.load(request); 

function completeHandler(event:Event):void{ 

    var content:DisplayObjectContainer = event.target.loader.content as DisplayObjectContainer; 
    addChild(content); 

    var children:Array = new DisplayList(content); 
    children = children.filter(function(item:Object, index:int, array:Array):Boolean { 
     return item is TextField; 
    }); 
    children.forEach(function(item:Object, index:int, array:Array):void { 
     var textfield:TextField = item as TextField; 
     textfield.antiAliasType = AntiAliasType.ADVANCED; 
     textfield.sharpness = 100; 
     textfield.thickness = 100; 
    }); 
} 

だけで簡単なテストを実行しました - 作品を説明しました。

+0

これは素晴らしいです。私が考えていることは、常にフォントが埋め込まれることだと思います。私が計画しているのは、InDesignによって生成されたswfを取り出して修正することです。私はどのような種類のコードをそれらに埋め込むのかは分かりませんが、私はそれを知りたいと考えています。 – Ghost9

+0

はいいですね。アンチエイリアスを適用する方法をコードサンプルが必要でしたか、設定しましたか? – momo

+0

あなたが素晴らしいものを提供したい場合は、 – Ghost9

関連する問題