【问题标题】:Draw text on shape in ActionScript 3在 ActionScript 3 中的形状上绘制文本
【发布时间】:2010-02-26 09:19:23
【问题描述】:

有什么方法可以仅使用 ActionScript 在 DisplayObject 或 Shape 中绘制文本?我可以在网上找到的唯一方法是创建一个 TextField,但我无法将 TF 添加到 DisplayObject 或 Shape。

编辑:

感谢viatropos解决。

对于任何感兴趣的人:

DisplayObject 实现了IBitmapDrawable,它可以作为参数传递给BitmapData 对象的draw 函数,然后可以使用graphics.beginBitmapFill 进行绘制。

var textfield:TextField = new TextField;
textfield.text = "text";

var bitmapdata:BitmapData = new BitmapData(theWidth, theHeight, true, 0x00000000);
bitmapdata.draw(textfield);

graphics.beginBitmapFill(bitmapdata);
graphics.drawRect(0, 0, theWidth, theHeight);
graphics.endFill();

【问题讨论】:

    标签: apache-flex actionscript-3 text shape displayobject


    【解决方案1】:

    好问题。这超出了我曾经需要做的任何事情,但我想我知道该怎么做。

    Shape 扩展了 DisplayObject,但不是 DisplayObjectContainer,因此您不能向其中添加任何内容。但它确实具有graphics 属性,因此您可以在其中绘制内容。我能想到的最好方法是拍摄 TextField 的位图快照,并将其绘制到 Shape 中。我知道这是 Degrafa 为他们的RasterText 所做的(查看source,它真的很有帮助)。

    如果您将 Shape 更改为 Sprite,则会容易得多。 Sprite 扩展了 DisplayObjectContainer,因此您可以在其中添加您的 TextField。

    希望对您有所帮助, 兰斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2014-02-11
      • 1970-01-01
      • 2017-09-12
      • 2011-07-26
      相关资源
      最近更新 更多