Flashで、htmlTextプロパティを使用してTextFieldオブジェクトにテキストを設定すると、アルファ値の変更が機能しなくなりました。それを回避する方法はありますか?
4 に答える
ここでいくつかの混乱。
アルファが機能するかどうかは、テキスト フィールドが HTML を使用しているかどうかではなく、デバイス フォントを使用しているかどうかによって決まります。(デバイス フォントは、動的/入力テキストがあり、フォントを埋め込まない場合は常に使用されます。)
可能であれば、デバイス フォントのアルファ版をサポートするようになった Flash Player 10 用にパブリッシュしてください。(テキストフィールドまたはその親のプロパティを設定する必要があることに注意してください
alpha
。テキスト自体に透明色を選択しても機能しません。)v8-9 のフォールバック オプションは、フィルターを適用してビットマップ キャッシュを強制することです。たとえば、色を透明に設定したドロップ シャドウを使用できます。これにより、Flash はテキスト フィールドを画面に描画する前にビットマップにレンダリングするため、アルファがビットマップに適用され、すべてが機能します。
プレーヤー バージョン 7 以下の場合、デバイス フォントのアルファを取得する方法はありません。フォントを埋め込むか、アルファなしで生きることを学ぶ必要があります。:D
テキストフィールドがalpha
プロパティに応答していないことがわかった場合は、フォントが埋め込まれていないことが原因である可能性があります。テキストフィールドのプロパティで[埋め込み...]をクリックし、[基本ラテン語]などを選択してください。
htmlText
フォーマット(<b>
および)が表示されない場合<i>
は、それらの(スタイル設定された)フォントも埋め込まれていることを確認する必要があります。これを行う簡単な方法は、必要なスタイルで非表示またはステージ外の動的テキストフィールドを作成することです(フォントも必ず埋め込んでください)。
これは、blendMode を使用してフォントを埋め込まずに行うことができますが、テキストの外観が多少犠牲になります (私は信じています)。
import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;
動的テキストは、(とりわけ)alphaプロパティをサポートしていません。HTMLテキストに設定すると同じ制限が課せられると思います。これを回避する方法の1つは、ムービークリップにテキストフィールドを含め、代わりにムービークリップにアルファを設定することです。