メイン コーダーズルーム【スクリプト系】
外部swfにTextRenderer.setAdvancedAntiAliasingTableを適用させたい。 | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| star-toko | Åê¹ÆNo.43944 投稿日時: 2009-11-16 5:04 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
|
外部swfにTextRenderer.setAdvancedAntiAliasingTableを適用させたい。 お世話になります。
現在、親swfにfont.swfをロードし、使用したいフォントを取り出して、 Font.registerFontを行い、さらに、子swfを読み込み、その子swfに TextRenderer.setAdvancedAntiAliasingTableで読み込んだフォントの設定を 行いたいのですが、反映されず困っています。 子swf単体では反映されるのが、確認できるのですが、親swfから読み込むと 反映されません。 私はこんな風に使っている、とか、ここにサンプルソースがあるよ!とか情報を 頂けるとありがたいです。 ちなみに私の現在のソースは( ソースが多岐にわたるのので構成だけ ) 親swf font.swfをロード。 Font.registerFont()で登録。 Loaderでロード。 LoaderContextのプロパティは LoaderContext.applicationDomain = ApplicationDomain.currentDomain; で子swfをロード 子swf TextRenderer.setAdvancedAntiAliasingTable( FontName, FontStyle.REGULAR、 TextColorType.DARK_COLOR, [new CSMSettings() ] ); を定義しています。 ( 親swfに定義しても、だめでした。。。 ) Font.registerFont( FontClass )は子swfちゃんと反映されています。 以上、宜しくお願い致します。 |
| 永井勝則 | Åê¹ÆNo.43945 投稿日時: 2009-11-16 12:27 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: 外部swfにTextRenderer.setAdvancedAntiAliasingTableを適用させたい。 Flashのヘルプから拾い読みすると、
「CSMは線の太さとエッジのシャープネスの両方を連続的に変調する機能で、Flash Player で提供される CSM が適切ではない場合、TextRenderer.setAdvancedAntiAliasingTable() メソッドを使用して独自の CSM をカスタマイズできる」そうですが、 はっきりいって何に使うのかさっぱり分かりません。 分かりませんが、次のようにするとsetAdvancedAntiAliasingTable()を動作させることはできました。 参考:シャープ、太さ、およびアンチエイリアスの制御 Impactフォントを埋め込むImpactSWF.fla ・ライブラリの[新しいフォント]でImpactを埋め込む。[イタリック]を選択、サイズは適当 ・リンケージでActionScript用に書き出し、[クラス]にImpactを指定 ・メインのタイムラインに、 Font.registerFont(Impact); を記述して、SWFをパブリッシュ ImpactSWF.swfをロードするFLA ・上記アドビリンクを参考に、メインのタイムラインに以下を記述 btn1とbtn2をクリックすると、setAdvancedAntiAliasingTable()が動作しているのが分かります。
|
| star-toko | Åê¹ÆNo.43958 投稿日時: 2009-11-17 13:22 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
|
Re: 外部swfにTextRenderer.setAdvancedAntiAliasingTableを適用させたい。 永井勝則さん
お返事ありがとうございます。 PreLoader.flaというファイルを作って、 ImpactSWF.swfをロードするFLAをロードして見てください。 TextRendererが適用されましたでしょうか。 ImpactSWF.swfをロードするFLAをさらに、PreLoader.flaというflaファイルから ロードするという事を現在行っているのですが、PreLoaderから見ると、 TextRendererが適用されなく、困っています。 ImpactSWF.swfをロードするFLAから見ると、しっかりTextRendererが適用されている事が確認出来るのですが。。 煩わしい事を申し上げますが、お返事お待ちしております。 |
| 永井勝則 | Åê¹ÆNo.43959 投稿日時: 2009-11-17 15:27 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: 外部swfにTextRenderer.setAdvancedAntiAliasingTableを適用させたい。 Preloader.flaを作り、そこから前のLoadImpact.swfをロードし、LoadImpact内のボタンをクリックすると、TextRendererは動作します。
Preloader <-- LoadImpact <-- ImpactSWFという関係です。 しかしTextRenderを扱うボタンはLoadImpactにあります。 たぶんこのボタンはPreloader.fla内に置きたいというのが希望かと思ったので、次のように変えました。 ・LoadImpact.flaをLoadImpact2.flaに変え、扱うSWFはLoadImpact2.swfにする ・2つのボタンとリスナー設定、リスナー関数を削除する ・LoadImpact2.flaに次の関数を追加する つまり、これまでボタンのクリックで呼び出されていたリスナー関数を、このタイムラインの関数に置き換える。 ・Preloader.flaにボタンを2つ(btn1、btn2)を追加、以下のコードを記述する つまり、Preloader.flaでLoadImpact2.swfのメインのタイムラインを参照し、それをインスタンス化して、その関数をボタンで呼び出す、という手法です。 「詳説ActionScript 3.0」を大いに参考にしました。 これでどうでしょうか?? --追加-- なおここでは関数をLoadImpact2.flaのメインのタイムラインに記述しているので、こんな面倒な方法ではなく、単に、 var mc:MovieClip function onCompleted(evt:Event):void { addChild(loader.content); mc = loader.content as MovieClip; } としておいて、ボタンのクリックで、 mc.setsetAdvancedAntiAliasingTable1(); を実行する方がよほど簡単です。
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
