as3 - 直接将文本渲染为Sprite.graphics?

时间:2011-04-19 20:53:11

标签: actionscript-3 graphics text textfield

因为我是一个可怕的坏人,他喜欢无缘无故地做事, 我希望能够做像mySprite.graphics.drawText(...)这样的事情。

据我所知,目前获取文本的唯一方法是创建一个TextField并将其添加为mySprite的子项。在我的特殊情况下,我宁愿不这样做。

任何建议表示赞赏!

OOO

3 个答案:

答案 0 :(得分:7)

错误的bzzzzzzzt创建一个新的BitmapData对象,创建一个位图,将bitmapData添加到它,然后将该位图作为子项添加到您的精灵。例如:

var myTextImage:BitmapData = new BitmapData(textField.width, textField.height, true, 0x000000ff);

myTextImage.draw(textField);

mySprite.addChild(new Bitmap(myTextImage));

stage.addChild(mySprite);

我刚刚编写了这些代码,因此您必须对其进行调整,但原则应该足够清晰,以使其适应您的项目。

答案 1 :(得分:6)

创建一个新的BitmapData对象:bitmapdata = new BitmapData(txt.width, txt.height, true, 0x000000ff);

在其上绘制文字字段:bitmapdata.draw(txt);

然后使用图形类,它可以工作!

sprite.graphics.beginBitmapFill(bitmapdata);
sprite.graphics.drawRect(0,0,txt.width,txt.height);
sprite.graphics.endFill();

C ya

答案 2 :(得分:0)

如果你想用Sprite方法将它包装起来,我只需要扩展Sprite类,向它添加drawText函数。在该方法中添加TextField等。但它听起来并不像你想要的那样。

在这种情况下看看这里 http://lab.polygonal.de/?p=916

他们已经创建了一个代码集合,可以在没有字体的情况下呈现字体。有文件大小等缺点,但有可能。