Hope this helps.Code:package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Point; import flash.text.Font; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class CircleExample extends Sprite { public static const TEXT:String = "dynamic text"; public static const TOTAL_FIELDS:uint = 10; public static const CENTER:Point = new Point(200.0, 200.0); public static const RADIUS:Number = 100.0; public static const ROTATION:Number = (2*Math.PI) / CircleExample.TOTAL_FIELDS; [Embed(source="nasaliza.ttf", fontFamily="Nasaliza")] private var NasalizaFont:Class; public function CircleExample() { var nasaliza:Font = new NasalizaFont(); var format:TextFormat = new TextFormat; format.font = nasaliza.fontName; var accumulator:Number = 0.0; for(var i:int=0;i<CircleExample.TOTAL_FIELDS;++i) { var field:TextField = new TextField(); field.embedFonts = true; field.defaultTextFormat = format; field.autoSize = TextFieldAutoSize.LEFT; field.text = CircleExample.TEXT; CircleExample.place(field, CircleExample.CENTER, accumulator, CircleExample.RADIUS); accumulator += CircleExample.ROTATION; this.addChild(field); } } // center rotation distance public static function place(graphic:DisplayObject, c:Point, r:Number, d:Number):void { var m:Matrix = graphic.transform.matrix; m.translate(-graphic.width*0.5, -graphic.height*0.5); m.rotate(r); if(m.d < 0) { m.rotate(Math.PI); d *= -1; } m.translate(c.x + m.d*d, c.y + m.b * d); graphic.transform.matrix = m; } } }




Reply With Quote