0

Flash で小さなグラフィックの不具合が発生しました。Flash CS3 経由でエクスポートされた FP9 と、Flex 4 ベータ SDK 経由でエクスポートされた FP10 の両方にあるようです。

グリッチ/問題は、特定の条件下で小さなポイントサイズの「ブルーミング」で埋め込まれたテキストとして現れます。基本的に、あるレベルのテキストの明るさでアンチエイリアスが太くなるように見えます。以下の小さなテストケースを作成しました。(明らかに) 以下のコードを機能させるには、コンパイル済みの SWF に Arial フォントを埋め込む必要があります。

var myText:TextField = new TextField();
myText.embedFonts = true;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.autoSize = TextFieldAutoSize.LEFT;
var myFormat:TextFormat = myText.getTextFormat();
myFormat.size = 8;
myFormat.font = 'Arial';
myFormat.color = 0x663300;
myText.defaultTextFormat = myFormat;
myText.text = 'Bloom Example';
addChild(myText);
var composit:ColorTransform = new ColorTransform();
var timestamp:Number = getTimer();
function enterFrame (event:Event):void{
    var n:Number = (getTimer() - timestamp) / 1000.0;
    composit.redMultiplier = 1-n;
    composit.greenMultiplier = 1-n;
    composit.blueMultiplier = 1-n;
    composit.redOffset = 250 * n;
    composit.greenOffset = 250 * n;
    composit.blueOffset = 0;
    myText.transform.colorTransform = composit;
    if ( n >= 1 ) removeEventListener(Event.ENTER_FRAME, enterFrame);
};
addEventListener(Event.ENTER_FRAME, enterFrame);

ここでグラフィック要素をロールオーバーすると、問題の例を確認できます: http://bandcamp.fieldsofnoise.org/dump/bloom.swf

AntiAliasType.NORMAL に変更すると、このポイント サイズではテキストが読みにくくなるため、実際にはオプションではありません。

この問題に対する適切な解決策を見つける助けをいただければ幸いです。

4

1 に答える 1

0

明るさを変更すると、アンチエイリアス ピクセルを含め、フォントがレンダリングされるすべてのピクセルの値が最大になると思います。明るさを上げるのではなく、色を変えてみましたか?または、単純な色合いを適用しますか?

于 2009-12-10T08:20:37.907 に答える