1

TextFieldsの複雑な組み合わせをas3のBitmapDataに描画するときに問題が発生しました。その理由が理解できないので、手伝ってください。

この問題は、親の(x、y)または(width、height)を変更し、描画されたオブジェクトが左ブラーなどの悪影響を受けた場合に発生します。

何が起こっているのかを示す画像を添付しました。コードの抜粋を次に示します。

//defining TextField object
var textField:TextField = new TextField();
textField.embedFonts = true;
textField.width = width;
textField.selectable = false;
textField.border = true;

var stylesheet:StyleSheet = new StyleSheet();
stylesheet.parseCSS(css);
textField.styleSheet = stylesheet;


textField.multiline = true;
textField.autoSize   = TextFieldAutoSize.LEFT;
textField.antiAliasType  = AntiAliasType.ADVANCED;
textField.wordWrap = true;
textField.condenseWhite = true;

textField.htmlText = "<p>"+text+"</p>";

//after adding it to a MovieClip i draw it into a BitmapData
var btmd:BitmapData = new BitmapData(width, height);
btmd.draw(this.page,null,null,null,null, true);

ここに画像の説明を入力してください

4

4 に答える 4

2

ご協力いただきありがとうございます、

この醜い問題の背後にある理由は、長いfloat値を持つオブジェクト(または)親のx、yを設定することです。解決策は、x、yをintに設定することです。

言い換えると、

BitmapData.draw( obj );

obj.x、obj.yは整数である必要があります。そうでない場合、醜い効果が描画されたオブジェクトに影響します。

于 2011-03-23T15:50:24.547 に答える
1

あなたはbgをリフレッシュしていますか?したがって、btmdを描画する前に、BGを再描画して、以前に描画されたビットマップデータをクリアします。

于 2011-03-17T19:25:51.160 に答える
1

担当者が足りないのでまだコメントできませんので、ここに入れないといけません...

与えられたリンクに行くと、説明されている問題は表示されません。

私は何かが足りないのですか?

追加: テキストフィールドのシャープネスを調整してみてください。

また、すべてが調整されていない可能性があるため、ビットマップがいつ作成されるかを考えてみてください。ただし、その時点でビットマップが作成される可能性がありますか?

注:あなたが投稿で示した灰色をまだ取得できていません。

于 2011-03-17T21:16:45.260 に答える
0

x2サイズのサンプル。次に、ビットマップを50%でスケーリングします。元のクリップとまったく同じように見えます。

于 2017-07-21T23:06:36.460 に答える