2010-11-02 25 views
0

我試圖將文本字段中的所有字母轉換爲位圖數據。然後我想動畫他們每個人。我可以使用getCharBoundaries返回一個矩形數組。但是,我怎樣才能將每個字母轉換爲BitMapData?從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; 
    } 
    } 
} 

回答

0

你可以動畫你的信,而不把他們變成位圖,只要你使用嵌入字體是......

而不是創建矩形陣列,你可以創建TextField的數組,與它們的特定矩形相關聯以保持每個字母的座標。之後,應該可以爲每個TextField設置動畫。

+0

嗨帕特里克,謝謝。是的,這是真的。我想避免精靈或文本字段的開銷;另外,因爲我想旋轉,所以我不想嵌入字體。但它看起來像copyPixels方法提供了一個真正可怕的文字表示。 – David 2010-11-03 14:21:12