【问题标题】:Getting from getCharBoundaries to BitMapData从 getCharBoundaries 到 BitMapData
【发布时间】:2010-11-02 03:23:42
【问题描述】:

我正在尝试将文本字段中的所有字母转换为位图数据。然后我想为他们每个人制作动画。我可以使用 getCharBoundaries 返回一个矩形数组。但是如何将每个字母转换为 BitMapData?

package
{
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;

public class LetterBitmapData extends Sprite
{
    private var tf:TextField;
    private var letterSprite:Sprite;

    public function LetterBitmapData()
    {
        makeTF();
        getRectangles();
    };

    private function makeTF():void
    {
        tf = new TextField();
        tf.width = 400;
        tf.height = 100;
        tf.selectable = false;

        tf.multiline = true;
        tf.wordWrap = true;
        tf.text = "Now is the winter of our discontent made glorious summer by this sun of York.";
        tf.setTextFormat(new TextFormat("_sans", 16, 0));
        addChild(tf);
    }
    private function getRectangles():Array
    {
        var result:Array = [];
        var rectangle:Rectangle;
        for (var i:int = 0; i < tf.text.length; i++)
        {
            rectangle = tf.getCharBoundaries(i);
            result.push(rectangle); //create an array of CharBoundary rectangles
    //trace("RECTANGLE x: " + rectangle.x + " y: " + rectangle.y + " width: " + rectangle.width + " height: " + rectangle.height );
        }
        return result;
    }
    }
}

【问题讨论】:

    标签: actionscript-3 bitmapdata


    【解决方案1】:

    只要您使用的嵌入字体...

    您可以创建一个 TextFields 数组,而不是创建一个矩形数组,与它们的特定矩形相关联,以保持每个字母的坐标。之后应该可以为每个 TextField 设置动画。

    【讨论】:

    • 嗨帕特里克,谢谢。是的,这是真的。我想避免精灵或文本字段的开销;另外,由于我想做旋转,我不想嵌入字体。但看起来 copyPixels 方法提供了一种真正可怕的文本表示。
    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多