package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import org.libspark.font.AnotherFontLoader; import org.libspark.font.data.RawFont; public class RuntimeFontParser extends MovieClip { private var _loader:AnotherFontLoader private var _typeface:RawFont; private var _myGlyph:Sprite; private var _glyph_ar:Array; /** * example usage of some classes within the RuntimeFontParser packages */ public function EffectsRuntimeFontParser() { _loader = new AnotherFontLoader( "AppleSimple.ttf" ); _loader.addEventListener( Event.COMPLETE, drawGlyphs ); } private function drawGlyphs(evt:Event):void { _typeface = _loader.font; // set some global styling on the typeface // _appleSimple.graphics.beginFill(); // var mySentence:Sprite = _appleSimple.graphics.drawWord( "here is a word" ); // addChild(mySentence); // var letterA:Sprite = _appleSimple.graphics.drawCharacter("A"); // figure out how to register the font to embed it for real use on textfield. // but thats different to us using the points (my interest in the tool) /* //draw a simlpe glyph var g:Glyph = _appleSimple.getGlyph(34); var m:Sprite = GlyphRenderer.drawGlyph( g ); this.addChild(m); m.x = 25; m.y = 25; m.scaleX = m.scaleY = .2; */ _typeface.graphics.lineStyle( 15, 0xff0000, 1, true, "normal", null, null, 1 ); _typeface.graphics.beginFill( 0xffffff, 1 ); _myGlyph = _typeface.graphics.drawGlyph( Math.random()*200 ); _myGlyph.x = 100; _myGlyph.y = 50; _myGlyph.scaleX = _myGlyph.scaleY = .2; addChild(_myGlyph); //_bmpdata = new BitmapData( stage.stageWidth, stage.stageHeight, true, 0x000000 ); //_bmp = new Bitmap(_bmpdata); //addChild( _bmp ); this.addEventListener( Event.ENTER_FRAME, rotateGlyph ); } private var _bmpdata:BitmapData; private var _bmp:Bitmap; protected function rotateGlyph(evt:Event):void { //_typeface.graphics.lineStyle( Math.random()*10, Math.random() * 0xffffff, Math.random()*1, true, LineScaleMode.NORMAL, CapsStyle.ROUND, JointStyle.ROUND, 3) //_typeface.graphics.beginFill( Math.random() * 0xffffff, Math.random()*1 ); _typeface.graphics.lineStyle( Math.random()*100, Math.random() * 0xffffff, Math.random()*1, true, LineScaleMode.NORMAL, CapsStyle.ROUND, JointStyle.ROUND, 3) _typeface.graphics.beginFill( Math.random() * 0xffffff, .5 ); if(_myGlyph) removeChild(_myGlyph); a+=.05; _myGlyph = _typeface.graphics.drawGlyph( 120 ); _myGlyph.x = stage.stageWidth/2; _myGlyph.y = 50; _myGlyph.scaleX = _myGlyph.scaleY = .2 addChild(_myGlyph); /* _myGlyph.rotationX = targRotX += 5; _myGlyph.rotationY = targRotY += 10; _myGlyph.rotationZ = targRotZ += 5; */ //_bmpdata.draw( this, _myGlyph.transform.matrix ); //_bmp.bitmapData = _bmpdata; } private var a:Number = 0; private var targRotX:Number=0; private var targRotY:Number=0; private var targRotZ:Number=0; /* * so this method displays the glyphs returned in the array by the glyph renderer * currently not in use just brought it over from the old LoadFont class. * - NOTE - need to test that this works */ private function displayGlyphs( typeface:org.libspark.font.data.RawFont ) : void { _glyph_ar = new Array(); var xPos:Number = 10; var yPos:Number = 50; for(var i:int=0;i<264;i++) // CHANGE THIS TO BE THE FULL RANGE { var theGlyph:Sprite = typeface.graphics.drawGlyph(i); theGlyph.y = yPos; theGlyph.x = xPos; xPos += 35; if(xPos>700){ yPos += 50; xPos = 10; } } } } }