在AS3中,当父移动(改变x,y)时,将TextField绘制到BitmapData会产生不良影响?

时间:2011-03-17 19:17:33

标签: flex actionscript-3 flash-cs4 bitmapdata

在as3中将TextFields的复杂组合绘制到BitmapData时遇到问题,我无法理解其原因,所以请帮助我。

当我更改父级(x,y)或(宽度,高度)并且绘制的对象产生左模糊等不良影响时,会出现问题。

我附上了一张图片,上面是代码片段:

//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);

enter image description here

4 个答案:

答案 0 :(得分:2)

感谢您的帮助,

这个丑陋问题背后的原因是为具有长浮点值的Object(或)父项设置x,y。解决方法是将x,y设置为int。

换句话说,

BitmapData.draw( obj );

obj.x,obj.y应该是整数,否则丑陋的效果会影响绘制的对象。

答案 1 :(得分:1)

你刷新bg了吗? 所以在绘制btmd之前重绘BG以清除先前绘制的位图数据

答案 2 :(得分:1)

由于缺乏代表,我无法发表评论,所以我不得不把它放在这里......

当我转到给出的链接时,不会出现所描述的问题。

我错过了什么吗?

<强>增加: 您可以尝试调整文本字段的清晰度吗?

另外,也许考虑何时制作位图,因为一切都可能没有调整,但是可能会在那时创建位图?

注意:我仍然无法获得您在帖子中显示的灰色。

答案 3 :(得分:0)

x2尺寸的样品。 然后将位图缩放为50%。 它看起来与原始剪辑完全一样。