2010-11-02 6 views
0

J'essaie de convertir toutes les lettres d'un champ de texte en données bitmap. Je veux ensuite animer chacun d'eux. Je suis capable de retourner un tableau de rectangles en utilisant getCharBoundaries. Mais alors comment puis-je convertir chaque lettre en BitMapData?Obtention de getCharBoundaries vers 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; 
    } 
    } 
} 

Répondre

0

Vous pouvez animer vos lettres sans les transformer en bitmaps aussi longtemps que vous utilisez les polices embed qui est ...

Au lieu de créer un tableau de rectangles, vous pouvez créer un tableau de TextFields , associés à leur rectangle spécifique afin de conserver les coordonnées de chaque lettre. Après cela, il devrait être possible d'animer chaque TextField.

+0

Salut Patrick, merci. Oui c'est vrai. Je voulais éviter les frais généraux des sprites ou des champs de texte; aussi, puisque je veux faire des rotations je ne voulais pas avoir à intégrer les polices. Mais il semble que la méthode copyPixels fournit une représentation vraiment horrible du texte. – David

Questions connexes