In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

自分をどつきまわして9999ダメージを叩き出す作業

Wonderflにサインインして使いましょう。
---------------------------------------------------------------
* [操作方法]
* 画面をクリック : どつく
* 「Send Score」ボタンを押す : DQN自慢する
* ---------------------------------------------------------------
* Scorer         : ScoreFormのテスト
* ScoreIndicator : そこらのRPGにありがちなダメージ表示を行うクラス
* TextBuilder    : TextFieldの面倒な設定を軽減するはずのBuilder
* ---------------------------------------------------------------
/**
 * Copyright shohei909 ( http://wonderfl.net/user/shohei909 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/7RH8
 */

// forked from shohei909's forked from: forked from: FlashPlayerをどつきまわして9999ダメージを叩き出す作業
// forked from uwi's forked from: FlashPlayerをどつきまわして9999ダメージを叩き出す作業
// forked from o8que's FlashPlayerをどつきまわして9999ダメージを叩き出す作業


//Wonderflにサインインして使いましょう。




/* ---------------------------------------------------------------
 * [操作方法]
 * 画面をクリック : どつく
 * 「Send Score」ボタンを押す : DQN自慢する
 * ---------------------------------------------------------------
 * Scorer         : ScoreFormのテスト
 * ScoreIndicator : そこらのRPGにありがちなダメージ表示を行うクラス
 * TextBuilder    : TextFieldの面倒な設定を軽減するはずのBuilder
 * ---------------------------------------------------------------
 */
package {
    import flash.net.URLRequest;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import net.wonderfl.utils.FontLoader;
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.easing.*;
    import org.libspark.betweenas3.tweens.ITween;
    import flash.text.TextField;
    import caurina.transitions.*;
    
    [SWF(backgroundColor="0x00000")]
    public class Main extends Sprite {
        //["Aqua","Azuki","Cinecaption","Mona","Sazanami","YSHandy","VLGothic","IPAGP","IPAM","UmeUgo","UmePms","Bebas"]
        public static const FONT:String = "Bebas";
        public static const EMBED:Boolean = true;
        
        private var _flashBody:Sprite;
        private var _scorer:Scorer;
        
        private var _tween:ITween;
        private var _duration:int;
                
        private var _yourName:String;
        private var _yourIcon:Loader = new Loader();
        
        private var textArea : ShapeDotFont;
        
        
        public function Main() {
            var fontLoader:FontLoader = new FontLoader();
            fontLoader.load(Main.FONT);
            fontLoader.addEventListener(Event.COMPLETE, initialize);
        }
        
        private function initialize(event:Event = null):void {
            if (event) { event.target.removeEventListener(Event.COMPLETE, initialize); }
            
            _flashBody = new Sprite();
            _flashBody.graphics.beginFill(0x000000);
            _flashBody.graphics.drawRect(-10, -10, 485, 485);
            _flashBody.graphics.endFill();
            addChild(_flashBody);
            
            _scorer = new Scorer(this);
            _duration = 0;
            
            addEventListener(Event.ENTER_FRAME, shakeScreen);
            
            
            
            var flashVars:Object = root.loaderInfo.parameters;
            _yourName = flashVars["viewer.displayName"];
            _yourIcon.load( new URLRequest(flashVars["viewer.iconURL"]) );
            _yourIcon.contentLoaderInfo.addEventListener(Event.COMPLETE, iconInit);
        }
        private function iconInit(event:Event = null):void {
            if (event) { event.target.removeEventListener(Event.COMPLETE, initialize); }
            
            textArea = new ShapeDotFont( new DotFont().fonts, 200, 100 );
            addChild( textArea );
            
            textArea.scaleX = 2;
            textArea.scaleY = 2;
            textArea.x = 105;
            textArea.y = 220;
            textArea.color = 0xFFFFFF;
            textArea.lineHeight = 16;
            textArea.delay = 3;
            textArea.ignoreSpace = true;
            
            textArea.add( _yourName + "が あらわれた    " );
            textArea.addEventListener( "complete", addIcon  );
        }
        
        private function addIcon(event:Event = null):void {
            if (event) { event.target.removeEventListener(Event.COMPLETE, addIcon); }
            
            
            
            removeChild( textArea );
            _flashBody.addChild(_yourIcon);
            _yourIcon.x = 465 - _yourIcon.width/2;
            _yourIcon.y = 465/2 - _yourIcon.height/2;
            Tweener.addTween(_yourIcon,{x:465/2 - _yourIcon.height/2, time:0.5,onComplete:battle, transition:"easeOutExpo"} );

        }
        private function battle():void{
            Sound.se(21);
            _yourIcon.addEventListener(MouseEvent.CLICK, clickHandler);
            stage.addEventListener( "keyDown", keyHandler);
        }

        
        


        
        private var _tf : TextField;
        private var _dmg : Number = 0;
        
        private function clickHandler(event:MouseEvent):void {
            var damage:int = 9800 * Math.random() + 200 * Math.random()* Math.random();
            _scorer.update(damage);
            
            if (_tween) { _tween.stop(); }
            _tween = BetweenAS3.tween(
                _yourIcon.transform,
                {colorTransform: { redOffset:0 }},
                {colorTransform: { redOffset:192 }},
                1,
                Expo.easeOut
            );
            
            _tween.play();
            _dmg += damage;
            if(_dmg > 15000)_dmg = 15000;
//            _duration = 6;
            
            Sound.se(Math.floor((damage-10)/501)+1);
            new ScoreIndicator(this, _yourIcon.x+_yourIcon.width/2, _yourIcon.y+20, damage.toString());
        }
        
        private function keyHandler(event:Event):void {
            clickHandler(null);
        }

        
        private function shakeScreen(event:Event):void {
//            _duration--;
            if (_dmg <= 0) {
                _flashBody.x = _flashBody.y = 0;
            }else {
                _dmg -= 500;
                _flashBody.x = (2 * Math.random() - 2.5) * _dmg / 1000;
                _flashBody.y = (2 * Math.random() - 2.5) * _dmg / 1000;
            }
        }
    }
}


//SiON-----------------------------
import org.si.sion.*;
class MyDriver extends SiONDriver {
    function MyDriver():void{
        super();
        setSamplerData(0, render("%2@8 l48 c>c>c<c"));
        setSamplerData(1, render("%3@0 l48 <<<<c<c>c<<c"));
        setSamplerData(2, render("%3@0 l8 <<<<<<c"));
        setSamplerData(3, render("%2@4 l48 c<<<c"));
        setSamplerData(4, render("%2@4 l48 c<<<c"));
        setSamplerData(5, render("%2@4 l48 c<<<c"));
        setSamplerData(6, render("%2@4 l48 c<<<c"));
        setSamplerData(7, render("%2@4 l48 c<<<c"));
        setSamplerData(8, render("%2@4 l48 c<<<c"));
        setSamplerData(9, render("%2@4 l48 c<<<c"));
        setSamplerData(10, render("%2@4 l48 c<<<c"));
        setSamplerData(11, render("%2@4 l48 c<<<c"));
        setSamplerData(12, render("%2@4 l48 c<<<c"));
        setSamplerData(13, render("%2@4 l48 c<<<c"));
        setSamplerData(14, render("%2@4 l48 c<c<c"));
        setSamplerData(15, render("%2@4 l48 c<c<c<cc"));
        setSamplerData(16, render("%2@3 l48 cc&>c>c"));
        setSamplerData(17, render("%2@3 l48 ac&>a>>c>c"));
        setSamplerData(18, render("%2@0 l48 ac&>a>>c>c"));
        setSamplerData(19, render("%2@0 l48 c<c<c<c>>>>c"));
        setSamplerData(20, render("%2@0 l48 c>c>c<c>>c&a"));
        setSamplerData(21, render("%2@8 l24 c<<<<c8"));
        play();
    }
}


class Sound{
    static public var driver:MyDriver = new MyDriver();
    static public function se(i:int,delay:int=0):void{
        driver.playSound(i,0,delay);
    }
}

// -----------------------------------------------------------------------------------------
// Scorer
// -----------------------------------------------------------------------------------------
//package {
    import com.bit101.components.InputText;
    import com.bit101.components.PushButton;
    import flash.display.DisplayObjectContainer;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import net.wonderfl.score.basic.BasicScoreRecordViewer;
    import net.wonderfl.score.form.ScoreForm;
    
    //public
    class Scorer extends ScoreForm {
        private var _max:int;
        private var _min:int;
        private var _maxText:TextField;
        private var _minText:TextField;
        private var _scoreText:TextField;
        
        private var _nameInput:InputText;
        private var _sendButton:PushButton;
        private var _errorText:TextField;
        
        private var _ranking:BasicScoreRecordViewer;
        
        public function Scorer(parent:DisplayObjectContainer, app_id:String = "", app_key:String = "") {
            graphics.beginFill(0x303030);
            graphics.drawRect(-10, -10, 485, 70);
            graphics.endFill();
            
            setup();
            initialize();
            
            super(_nameInput, 0, app_id, app_key);
            parent.addChild(this);
        }
        
        private function setup():void {
            var builder:TextBuilder = new TextBuilder();
            builder.align(TextBuilder.ALIGN_CENTER).font(Main.FONT, Main.EMBED, Main.EMBED);
            builder.fontColor(0xffffff).fontSize(12).size(100, 20);
            
            addChild(builder.position(10, 5).build("Max.dmg"));
            addChild(builder.position(130, 5).build("Min.dmg"));
            addChild(builder.position(250, 5).build("Score"));
            
            builder.bold().fontSize(14);
            addChild(_maxText = builder.position(10, 25).build("0"));
            addChild(_minText = builder.position(130, 25).build("0"));
            addChild(_scoreText = builder.position(250, 25).build("0"));
            
            builder.size(20, 20);
            addChild(builder.position(110, 25).build("-"));
            addChild(builder.position(230, 25).build("="));
            
            builder.align(TextBuilder.ALIGN_RIGHT).autoSize().bold(false).fontColor(0xff0000).fontSize(8).size(100, 20);
            addChild(_errorText = builder.position(360, 40).build(":-)"));
            
            _nameInput = new InputText(this, 360, 5);
            _sendButton = new PushButton(this, 360, 21, "Send Score", sendButtonHandler);
        }
        
        private function initialize():void {
            _max = 0;
            _min = int.MAX_VALUE;
            _maxText.text = _minText.text = _scoreText.text = "0";
        }
        
        private function sendButtonHandler(event:MouseEvent):void {
            _sendButton.enabled = false;
            _score = Math.max(0, _max - _min);
            _errorText.text = ":-)";
            sendScore();
        }
        
        override protected function onComplete():void {
            initialize();
            
            if (_ranking) { removeChild(_ranking); }
            var posX:int = (465 - BasicScoreRecordViewer.WIDTH) / 2;
            var posY:int = (465 - BasicScoreRecordViewer.HEIGHT) / 2;
            _ranking = new BasicScoreRecordViewer(this, posX, posY, "Ranking", 20, true, null, _app_id, _api_key);
            _sendButton.enabled = true;
        }
        
        override protected function onError(errorMassage:String):void {
            _errorText.text = errorMassage;
        }
        
        public function update(damage:int):void {
            if (damage > _max) { _max = damage; }
            if (damage < _min) { _min = damage; }
            _maxText.text = _max.toString();
            _minText.text = _min.toString();
            _scoreText.text = (_max - _min).toString();
        }
    }
//}
// -----------------------------------------------------------------------------------------
// ScoreIndicator
// -----------------------------------------------------------------------------------------
//package {
    import flash.display.DisplayObjectContainer;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.TextField;
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.easing.*;
    import org.libspark.betweenas3.tweens.ITween;
    
    //public
    class ScoreIndicator extends Sprite {
        private var _chars:Vector.<TextField>;
        private var _charIndex:int;
        private var _numCompleted:int;
        
        public function ScoreIndicator(parent:DisplayObjectContainer, centerX:int, bottomY:int, text:String) {
            parent.addChild(this);
            this.mouseEnabled = false;
            x = centerX;
            y = bottomY;
            
            _chars = new Vector.<TextField>();
            _charIndex = 0;
            _numCompleted = 0;
            
            splitText(text);
            alignChars();
            playTween();
            
            addEventListener(Event.ENTER_FRAME, checkEveryTweenCompleted);
        }
        
        private function splitText(text:String):void {
            this.scaleX = 2;
            this.scaleY = 2;
            // 文字のスタイルを設定する
            var builder:TextBuilder = new TextBuilder();
            builder.autoCorrect(false).autoSize().bold();
            var dmg : Number = Number(text);
            var c : uint = 256 * (1 - dmg / 10000);
            builder.font(Main.FONT, Main.EMBED).fontColor(0xff0000 | c<<8 | c).fontSize(100);
//            builder.textBorder(true, 0x404040, 2, 4);
            var d : uint = c / 2;
            builder.textBorder(true, 0x7f0000 | d<<8 | d, 10, 20);
            
            for (var i:int = 0; i < text.length; i++) {
                _chars.push(builder.build(text.charAt(i)));
            }
        }
        
        private function alignChars():void {
            var i:int, charsWidth:Number = 0;
            
            for (i = 0; i < _chars.length; i++) {
                charsWidth += _chars[i].textWidth;
            }
            
            if(_chars[0]){
                _chars[0].x = -int(charsWidth / 2);
                _chars[0].y = -_chars[0].textHeight;
            }
            
            for (i = 1; i < _chars.length; i++) {
                _chars[i].x = _chars[i - 1].x + _chars[i - 1].textWidth;
                _chars[i].y = -_chars[i].textHeight;
            }
        }
        
        private function playTween(event:Event = null):void {
            if (event) { removeEventListener(Event.ENTER_FRAME, playTween); }
            
            var char:TextField = _chars[_charIndex++];
            addChild(char);
            
            // 各文字に適用するトゥーイン
            var tween:ITween = BetweenAS3.bezierTo(char, { y: char.y }, { $y: -(char.textHeight * 2) }, 0.3, Sine.easeInOut);
            tween.onComplete = tweenCompleteHandler;
            tween.play();
            
            if (_charIndex < _chars.length) {
                addEventListener(Event.ENTER_FRAME, playTween);
            }
        }
        
        private function tweenCompleteHandler():void {
            _numCompleted++;
        }
        
        private function checkEveryTweenCompleted(event:Event):void {
            if (_numCompleted == _chars.length) {
                removeEventListener(Event.ENTER_FRAME, checkEveryTweenCompleted);
                BetweenAS3.serial(
                    BetweenAS3.to(this, { alpha: 0 }, 0.3, Expo.easeIn),
                    BetweenAS3.removeFromParent(this)
                ).play();
            }
        }
    }
//}
// -----------------------------------------------------------------------------------------
// TextBuilder
// -----------------------------------------------------------------------------------------
//package {
    import flash.filters.GlowFilter;
    import flash.text.AntiAliasType;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;
    
    //public
    class TextBuilder {
        public static const ALIGN_LEFT:String = "left";
        public static const ALIGN_RIGHT:String = "right";
        public static const ALIGN_CENTER:String = "center";
        
        private var _posX:Number;
        private var _posY:Number;
        
        private var _width:Number;
        private var _height:Number;
        
        private var _background:Boolean;
        private var _backgroundColor:uint;
        
        private var _border:Boolean;
        private var _borderColor:uint;
        
        private var _fontName:String;
        private var _embedFonts:Boolean;
        private var _advancedAntiAlias:Boolean;
        
        private var _fontSize:int;
        private var _fontColor:uint;
        private var _bold:Boolean;
        
        private var _textBorder:Boolean;
        private var _textBorderColor:uint;
        private var _textBorderBlur:Number;
        private var _textBorderStrength:Number;
        
        private var _align:String;
        private var _autoSizeEnabled:Boolean;
        private var _autoCorrectPositionY:Boolean;
        private var _wordWrap:Boolean;
        
        public function TextBuilder() {
            clear();
        }
        
        public function clear():TextBuilder {
            _posX = 0;
            _posY = 0;
            _width = 100;
            _height = 100;
            _background = false;
            _backgroundColor = 0xffffff;
            _border = false;
            _borderColor = 0x000000;
            _fontName = "Arial";
            _embedFonts = false;
            _advancedAntiAlias = false;
            _fontSize = 12;
            _fontColor = 0x000000;
            _bold = false;
            _textBorder = false;
            _textBorderColor = 0xffff00;
            _textBorderBlur = 4;
            _textBorderStrength = 2;
            _align = TextBuilder.ALIGN_LEFT;
            _autoSizeEnabled = false;
            _autoCorrectPositionY = true;
            _wordWrap = false;
            return this;
        }
        
        public function position(x:Number, y:Number):TextBuilder {
            _posX = x;
            _posY = y;
            return this;
        }
        
        public function size(width:Number, height:Number):TextBuilder {
            _width = width;
            _height = height;
            return this;
        }
        
        public function background(enabled:Boolean, color:uint = 0xffffff):TextBuilder {
            _background = enabled;
            _backgroundColor = color;
            return this;
        }
        
        public function border(enabled:Boolean, color:uint = 0x000000):TextBuilder {
            _border = enabled;
            _borderColor = color;
            return this;
        }
        
        public function font(name:String, embed:Boolean = false, advancedAntiAlias:Boolean = false):TextBuilder {
            _fontName = name;
            _embedFonts = embed;
            _advancedAntiAlias = advancedAntiAlias;
            return this;
        }
        
        public function fontSize(size:int):TextBuilder {
            _fontSize = size;
            return this;
        }
        
        public function fontColor(color:uint):TextBuilder {
            _fontColor = color;
            return this;
        }
        
        public function bold(enabled:Boolean = true):TextBuilder {
            _bold = enabled;
            return this;
        }
        
        public function textBorder(enabled:Boolean, color:uint = 0xffff00, blur:Number = 4, strength:Number = 2):TextBuilder {
            _textBorder = enabled;
            _textBorderColor = color;
            _textBorderBlur = blur;
            _textBorderStrength = strength;
            return this;
        }
        
        public function align(value:String = TextBuilder.ALIGN_LEFT):TextBuilder {
            _align = value;
            return this;
        }
        
        public function autoSize(enabled:Boolean = true):TextBuilder {
            _autoSizeEnabled = enabled;
            return this;
        }
        
        public function autoCorrect(positionY:Boolean = true):TextBuilder {
            _autoCorrectPositionY = positionY;
            return this;
        }
        
        public function wordWrap(enabled:Boolean = true):TextBuilder {
            _wordWrap = enabled;
            return this;
        }
        
        public function build(text:String):TextField {
            var textField:TextField = new TextField();
            
            textField.x = _posX;
            textField.y = _posY;
            textField.width = _width;
            textField.height = _height;
            
            var format:TextFormat = new TextFormat(_fontName, _fontSize, _fontColor, _bold);
            if (_autoSizeEnabled) {
                switch(_align) {
                    case TextBuilder.ALIGN_LEFT: { textField.autoSize = TextFieldAutoSize.LEFT; break; }
                    case TextBuilder.ALIGN_RIGHT: { textField.autoSize = TextFieldAutoSize.RIGHT; break; }
                    case TextBuilder.ALIGN_CENTER: { textField.autoSize = TextFieldAutoSize.CENTER; break; }
                }
            }else {
                switch(_align) {
                    case TextBuilder.ALIGN_LEFT: { format.align = TextFormatAlign.LEFT; break; }
                    case TextBuilder.ALIGN_RIGHT: { format.align = TextFormatAlign.RIGHT; break; }
                    case TextBuilder.ALIGN_CENTER: { format.align = TextFormatAlign.CENTER; break; }
                }
            }
            
            textField.embedFonts = _embedFonts;
            textField.antiAliasType = (_advancedAntiAlias ? AntiAliasType.ADVANCED : AntiAliasType.NORMAL);
            textField.defaultTextFormat = format;
            textField.text = text;
            
            if (textField.background = _background) { textField.backgroundColor = _backgroundColor; }
            if (textField.border = _border) { textField.borderColor = _borderColor; }
            if (_textBorder) { textField.filters = [new GlowFilter(_textBorderColor, 1, _textBorderBlur, _textBorderBlur, _textBorderStrength)]; }
            if (!(textField.wordWrap = _wordWrap) && _autoCorrectPositionY) { textField.y += Math.max(0, Math.ceil((_height - (textField.textHeight + 4)) / 2)); }
            textField.mouseEnabled = textField.selectable = false;
            
            return textField;
        }
        
        public function clone():TextBuilder {
            var clone:TextBuilder = new TextBuilder();
            clone._posX = _posX;
            clone._posY = _posY;
            clone._width = _width;
            clone._height = _height;
            clone._background = _background;
            clone._backgroundColor = _backgroundColor;
            clone._border = _border;
            clone._borderColor = _borderColor;
            clone._fontName = _fontName;
            clone._embedFonts = _embedFonts;
            clone._advancedAntiAlias = _advancedAntiAlias;
            clone._fontSize = _fontSize;
            clone._fontColor = _fontColor;
            clone._bold = _bold;
            clone._textBorder = _textBorder;
            clone._textBorderColor = _textBorderColor;
            clone._textBorderBlur = _textBorderBlur;
            clone._textBorderStrength = _textBorderStrength;
            clone._align = _align;
            clone._autoSizeEnabled = _autoSizeEnabled;
            clone._autoCorrectPositionY = _autoCorrectPositionY;
            clone._wordWrap = _wordWrap;
            return clone;
        }
    }
//}


/*
Shape DotFonts + ひらがな + カタカナ
// ひらがな カタカナ も いれました
package 
{
    import flash.display.*;
    
    [SWF (backgroundColor = "0x000000", width = "465", height = "465", frameRate = "30")]
    public class Main extends Sprite 
    {
        public function Main():void 
        {
            var textArea : ShapeDotFont = new ShapeDotFont( new DotFont().fonts, 200, 100 );
            addChild( textArea );
            
            textArea.scaleX = 2;
            textArea.scaleY = 2;
            textArea.x = 145;
            textArea.y = 220;
            textArea.color = 0xFFFFFF;
            textArea.lineHeight = 16;
            textArea.delay = 6;
            textArea.ignoreSpace = true;
            
            textArea.add( "スライムが あらわれない" );
        }
    }
}
*/
    import flash.display.*;
    import flash.utils.Dictionary;
    import flash.events.*;    
    
    internal class ShapeDotFont extends Shape

    {
        private var fonts    :Dictionary;
        private var texts    :Array = [];
        
        public var margin : int = 1;
        public var lineHeight : int = 16;
        public var ignoreSpace : Boolean = true;
        public var delay : int = 0;
        public var color : int = 0xFFFFFF;
        
        private var _width : int;
        private var _height : int;
        
        public function ShapeDotFont( fonts:Dictionary, _width:int, _height:int ):void
        {
            this.fonts = fonts;
            this._width = _width;
            this._height = _height;
        }
         
        public function add( text:String ):void
        {
            var leng:int = text.length;
            for (var i:int = 0; i < leng; i++) 
            {
                var c:String = text.charAt( i );
                texts.push( c );
            }
            texts.push( "return" );
            
            if ( delay <= 0 )
                allDraw();
            else
                addEventListener( Event.ENTER_FRAME, loop );
        }
        
        private function allDraw():void
        {
            var leng:int = texts.length-1;
            for ( head; head < leng; head++ )
            {
                drawFont( texts[ head ] );
            }
        }
        
        private var count : int = 0;
        private var head : int = 0;
        private var activeX : int = 0;
        private var activeY : int = 0;
        
        private function loop(e:Event):void 
        {
            count++;
            if ( count >= delay )
            {
                count = 0;
                do{
                    var c:String = texts[ head ]
                    drawFont( c );
                    head++;
                    if ( head >= texts.length-1 )
                    {
                        dispatchEvent( new Event("complete") );
                        removeEventListener( Event.ENTER_FRAME, loop );
                        return;
                    }
                }
                while ( c == " " && ignoreSpace );
            }
        }
        
        private function drawFont( c:String ):void
        {
            var font    :FontData = fonts[ c ];
            if ( !font || font.width == 0 ) font = fonts[ "ng" ];
            
            switch( font.char )
            {
                case "return":
                    activeX = 0;
                    activeY += lineHeight;
                    return;
                    
                case "tab":
                    activeX = 16;
                    return;
            }
            
            var data : String = font.data;
            var width : int = font.width;
            var length : int = data.length;
            var xx:int = 0, yy:int = 1;
            var posX:int, posY:int;
            
            if ( activeX + width > _width )
            {
                activeX = 0;
                activeY += lineHeight;
            }
            
            for( var i:int = 0; i < length; i++ )
            {
                if ( data.charAt(i) == "1" )
                {
                    posX = activeX + xx;
                    posY = activeY + yy;
                    
                    graphics.beginFill( color, 1 );
                    graphics.drawRect( posX, posY, 1, 1 );
                    graphics.endFill();
                }
                xx++;
                if ( xx >= font.boxWidth )
                {
                    xx = 0;
                    yy++;
                }
            }
            activeX    += width + margin;
        }
    }
    
    internal class FontData
    {
        public var char : String;
        public var width : int = 1;
        public var data : String;
        public var boxWidth : int = 0;
        public var boxHeight : int = 0;
        public var baseline : int = 12;
        
        public function FontData( char:String ):void
        {
            this.char = char;
        }
    }
    
    internal class DotFont
    {
        public var fonts : Dictionary = new Dictionary();
        
        public function DotFont():void
        {
            fonts[ "A" ]    = getFont( "A",7,8,16,12,"000000000000000000000000000000000000000000111000011011001100011011000110111111101100011011000110000000000000000000000000");
            fonts[ "B" ]    = getFont( "B",7,8,16,12,"000000000000000000000000000000000000000011111100110001101100011011111100110001101100011011111100000000000000000000000000");
            fonts[ "C" ]    = getFont( "C",7,8,16,12,"000000000000000000000000000000000000000000111100011001101100000011000000110000000110011000111100000000000000000000000000");
            fonts[ "D" ]    = getFont( "D",7,8,16,12,"000000000000000000000000000000000000000011111000110011001100011011000110110001101100110011111000000000000000000000000000");
            fonts[ "E" ]    = getFont( "E",7,8,16,12,"000000000000000000000000000000000000000001111110011000000110000001111100011000000110000001111110000000000000000000000000");
            fonts[ "F" ]    = getFont( "F",7,8,16,12,"000000000000000000000000000000000000000011111110110000001100000011111100110000001100000011000000000000000000000000000000");
            fonts[ "G" ]    = getFont( "G",7,8,16,12,"000000000000000000000000000000000000000000111110011000001100000011001110110001100110011000111110000000000000000000000000");
            fonts[ "H" ]    = getFont( "H",7,8,16,12,"000000000000000000000000000000000000000011000110110001101100011011111110110001101100011011000110000000000000000000000000");
            fonts[ "I" ]    = getFont( "I",7,8,16,12,"000000000000000000000000000000000000000001111110000110000001100000011000000110000001100001111110000000000000000000000000");
            fonts[ "J" ]    = getFont( "J",7,8,16,12,"000000000000000000000000000000000000000000000110000001100000011000000110000001101100011001111100000000000000000000000000");
            fonts[ "K" ]    = getFont( "K",7,8,16,12,"000000000000000000000000000000000000000011000110110011001101100011110000111110001101110011001110000000000000000000000000");
            fonts[ "L" ]    = getFont( "L",7,8,16,12,"000000000000000000000000000000000000000001100000011000000110000001100000011000000110000001111110000000000000000000000000");
            fonts[ "M" ]    = getFont( "M",7,8,16,12,"000000000000000000000000000000000000000011000110111011101111111011111110110101101100011011000110000000000000000000000000");
            fonts[ "N" ]    = getFont( "N",7,8,16,12,"000000000000000000000000000000000000000011000110111001101111011011111110110111101100111011000110000000000000000000000000");
            fonts[ "O" ]    = getFont( "O",7,8,16,12,"000000000000000000000000000000000000000001111100110001101100011011000110110001101100011001111100000000000000000000000000");
            fonts[ "P" ]    = getFont( "P",7,8,16,12,"000000000000000000000000000000000000000011111100110001101100011011000110111111001100000011000000000000000000000000000000");
            fonts[ "Q" ]    = getFont( "Q",7,8,16,12,"000000000000000000000000000000000000000001111100110001101100011011000110110111101100110001111010000000000000000000000000");
            fonts[ "R" ]    = getFont( "R",7,8,16,12,"000000000000000000000000000000000000000011111100110001101100011011001110111110001101110011001110000000000000000000000000");
            fonts[ "S" ]    = getFont( "S",7,8,16,12,"000000000000000000000000000000000000000001111000110011001100000001111100000001101100011001111100000000000000000000000000");
            fonts[ "T" ]    = getFont( "T",7,8,16,12,"000000000000000000000000000000000000000001111110000110000001100000011000000110000001100000011000000000000000000000000000");
            fonts[ "U" ]    = getFont( "U",7,8,16,12,"000000000000000000000000000000000000000011000110110001101100011011000110110001101100011001111100000000000000000000000000");
            fonts[ "V" ]    = getFont( "V",7,8,16,12,"000000000000000000000000000000000000000011000110110001101100011011101110011111000011100000010000000000000000000000000000");
            fonts[ "W" ]    = getFont( "W",7,8,16,12,"000000000000000000000000000000000000000011000110110001101101011011111110111111101110111011000110000000000000000000000000");
            fonts[ "X" ]    = getFont( "X",7,8,16,12,"000000000000000000000000000000000000000011000110111011100111110000111000011111001110111011000110000000000000000000000000");
            fonts[ "Y" ]    = getFont( "Y",7,8,16,12,"000000000000000000000000000000000000000001100110011001100110011000111100000110000001100000011000000000000000000000000000");
            fonts[ "Z" ]    = getFont( "Z",7,8,16,12,"000000000000000000000000000000000000000011111110000011100001110000111000011100001110000011111110000000000000000000000000");

            fonts[ "a" ]    = getFont( "a",7,8,16,12,"000000000000000000000000000000000000000000000000000000000111100011001100110011001100110001111110000000000000000000000000");
            fonts[ "b" ]    = getFont( "b",7,8,16,12,"000000000000000000000000000000000000000001100000011000000111110001100110011001100110011001111100000000000000000000000000");
            fonts[ "c" ]    = getFont( "c",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011110001100110011000000110011000111100000000000000000000000000");
            fonts[ "d" ]    = getFont( "d",7,8,16,12,"000000000000000000000000000000000000000000000110000001100011111001100110011001100110011000111110000000000000000000000000");
            fonts[ "e" ]    = getFont( "e",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011110001100110011111100110000000111110000000000000000000000000");
            fonts[ "f" ]    = getFont( "f",7,8,16,12,"000000000000000000000000000000000000000000111000001100000111100000110000001100000011000000110000000000000000000000000000");
            fonts[ "g" ]    = getFont( "g",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011110001100110011001100110011000111110000001100011110000000000");
            fonts[ "h" ]    = getFont( "h",7,8,16,12,"000000000000000000000000000000000000000001100000011000000111110001100110011001100110011001100110000000000000000000000000");
            fonts[ "i" ]    = getFont( "i",7,8,16,12,"000000000000000000000000000000000000000000011000000000000001100000011000000110000001100000011000000000000000000000000000");
            fonts[ "j" ]    = getFont( "j",7,8,16,12,"000000000000000000000000000000000000000000011000000000000001100000011000000110000001100000011000110110000111000000000000");
            fonts[ "k" ]    = getFont( "k",7,8,16,12,"000000000000000000000000000000000000000001100000011000000110011001101100011110000110110001100110000000000000000000000000");
            fonts[ "l" ]    = getFont( "l",8,8,16,12,"000000000000000000000000000000000000000000011000000110000001100000011000000110000001100000011000000000000000000000000000");
            fonts[ "m" ]    = getFont( "m",7,8,16,12,"000000000000000000000000000000000000000000000000100000001111110011010110110101101101011011010110000000000000000000000000");
            fonts[ "n" ]    = getFont( "n",7,8,16,12,"000000000000000000000000000000000000000000000000000000000111110001100110011001100110011001100110000000000000000000000000");
            fonts[ "o" ]    = getFont( "o",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011110001100110011001100110011000111100000000000000000000000000");
            fonts[ "p" ]    = getFont( "p",7,8,16,12,"000000000000000000000000000000000000000000000000000000000111110001100110011001100110011001111100011000000110000000000000");
            fonts[ "q" ]    = getFont( "q",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011111001100110011001100110011000111110000001100000011000000000");
            fonts[ "r" ]    = getFont( "r",7,8,16,12,"000000000000000000000000000000000000000000000000000000000110111001111000011100000110000001100000000000000000000000000000");
            fonts[ "s" ]    = getFont( "s",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011111001110000001111000000111001111100000000000000000000000000");
            fonts[ "t" ]    = getFont( "t",7,8,16,12,"000000000000000000000000000000000000000000110000001100000111100000110000001100000011000000110000000000000000000000000000");
            fonts[ "u" ]    = getFont( "u",7,8,16,12,"000000000000000000000000000000000000000000000000000000000110011001100110011001100110011000111110000000000000000000000000");
            fonts[ "v" ]    = getFont( "v",7,8,16,12,"000000000000000000000000000000000000000000000000000000000110011001100110011001100011110000011000000000000000000000000000");
            fonts[ "w" ]    = getFont( "w",7,8,16,12,"000000000000000000000000000000000000000000000000000000001100011011010110110101101101011001101100000000000000000000000000");
            fonts[ "x" ]    = getFont( "x",7,8,16,12,"000000000000000000000000000000000000000000000000000000000110011000111100000110000011110001100110000000000000000000000000");
            fonts[ "y" ]    = getFont( "y",7,8,16,12,"000000000000000000000000000000000000000000000000000000000110011001100110011001100110011000111110000001100011110000000000");
            fonts[ "z" ]    = getFont( "z",7,8,16,12,"000000000000000000000000000000000000000000000000000000000111111000011100001110000111000001111110000000000000000000000000");

            fonts[ "0" ]    = getFont( "0",7,8,16,12,"000000000000000000000000000000000000000000111000010011001100011011000110110001100110010000111000000000000000000000000000");
            fonts[ "1" ]    = getFont( "1",7,8,16,12,"000000000000000000000000000000000000000000011000001110000111100000011000000110000001100001111110000000000000000000000000");
            fonts[ "2" ]    = getFont( "2",7,8,16,12,"000000000000000000000000000000000000000001111100110001100000111000111100011110001110000011111110000000000000000000000000");
            fonts[ "3" ]    = getFont( "3",7,8,16,12,"000000000000000000000000000000000000000001111110000011000001100000111100000001101100011001111100000000000000000000000000");
            fonts[ "4" ]    = getFont( "4",7,8,16,12,"000000000000000000000000000000000000000000011100001111000110110011001100111111100000110000001100000000000000000000000000");
            fonts[ "5" ]    = getFont( "5",7,8,16,12,"000000000000000000000000000000000000000011111100110000001111110000000110000001101100011001111100000000000000000000000000");
            fonts[ "6" ]    = getFont( "6",7,8,16,12,"000000000000000000000000000000000000000000111100011000001100000011111100110001101100011001111100000000000000000000000000");
            fonts[ "7" ]    = getFont( "7",7,8,16,12,"000000000000000000000000000000000000000011111110110001100000110000011000001100000011000000110000000000000000000000000000");
            fonts[ "8" ]    = getFont( "8",7,8,16,12,"000000000000000000000000000000000000000001111000110001001110010001111000100111101000011001111100000000000000000000000000");
            fonts[ "9" ]    = getFont( "9",7,8,16,12,"000000000000000000000000000000000000000001111100110001101100011001111110000001100000110001111000000000000000000000000000");

            fonts[ "!" ]    = getFont( "!",8,8,16,12,"000000000000000000000000000000000000000000011000000110000001100000011000000110000000000000011000000000000000000000000000");
            fonts[ "\"" ]    = getFont( "\"",0,8,16,12,"000000000000000000000000000000000000000001101100011011000010010000000000000000000000000000000000000000000000000000000000");
            fonts[ "#" ]    = getFont( "#",0,8,16,12,"000000000000000000000000000000000000000001101100111111100110110001101100011011001111111001101100000000000000000000000000");
            fonts[ "$" ]    = getFont( "$",0,8,16,12,"000000000000000000000000000000000000000001111100110101101101000001111100000101101101011001111100000000000000000000000000");
            fonts[ "%" ]    = getFont( "%",0,8,16,12,"000000000000000000000000000000000000000011100100101011001011100011111110001110100110101001001110000000000000000000000000");
            fonts[ "&" ]    = getFont( "&",0,8,16,12,"000000000000000000000000000000000000000000111000011011000110110011111110110011001100111001111010000000000000000000000000");
            fonts[ "'" ]    = getFont( "'",0,8,16,12,"000000000000000000000000000000000000000001100000011000000010000000000000000000000000000000000000000000000000000000000000");
            fonts[ "(" ]    = getFont( "(",0,8,16,12,"000000000000000000000000000000000000000000001100000110000001100000011000000110000001100000001100000000000000000000000000");
            fonts[ ")" ]    = getFont( ")",0,8,16,12,"000000000000000000000000000000000000000000011000000011000000110000001100000011000000110000011000000000000000000000000000");
            fonts[ "=" ]    = getFont( "=",0,8,16,12,"000000000000000000000000000000000000000000000000111111100000000000000000111111100000000000000000000000000000000000000000");
            fonts[ "-" ]    = getFont( "-",0,8,16,12,"000000000000000000000000000000000000000000000000011000001111001010011110000011000000000000000000000000000000000000000000");
            fonts[ "^" ]    = getFont( "^",0,8,16,12,"000000000000000000000000000000000000000000011000000110000001100000011000000110000001100000011000000000000000000000000000");
            fonts[ "~" ]    = getFont( "~",0,8,16,12,"000000000000000000000000000000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000");
            fonts[ "\"" ]    = getFont( "\"",0,8,16,12,"000000000000000000000000000000000001000000111000011011000000000000000000000000000000000000000000000000000000000000000000");
            fonts[ "|" ]    = getFont( "|",0,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
            fonts[ "`" ]    = getFont( "`",7,8,16,12,"000000000000000000000000000000000000000000001100000110000001100000111000000110000001100000001100000000000000000000000000");
            fonts[ "@" ]    = getFont( "@",7,8,16,12,"000000000000000000000000000000000000000000110000000110000001100000011100000110000001100000110000000000000000000000000000");
            fonts[ "[" ]    = getFont( "[",7,8,16,12,"000000000000000000000000000000000000000000000000000100000111110000111000001010000000000000000000000000000000000000000000");
            fonts[ "]" ]    = getFont( "]",7,8,16,12,"000000000000000000000000000000000000000000000000001100000011000011111100001100000011000000000000000000000000000000000000");
            fonts[ "{" ]    = getFont( "{",8,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111110000000000000000000000000");
            fonts[ "}" ]    = getFont( "}",0,8,16,12,"000000000000000000000000000000000000000000111100011001100110011000001100000110000000000000011000000000000000000000000000");
            fonts[ ";" ]    = getFont( ";",0,8,16,12,"000000000000000000000000000000000000000001100000001100000001100000001100000110000011000001100000000000000000000000000000");
            fonts[ ":" ]    = getFont( ":",0,8,16,12,"000000000000000000000000000000000000000000001100000110000011000001100000001100000001100000001100000000000000000000000000");
            fonts[ "+" ]    = getFont( "+",0,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000110000000100000000000000000000");
            fonts[ "*" ]    = getFont( "*",0,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000110000000000000000000000000000");
            fonts[ "<" ]    = getFont( "<",0,8,16,12,"000000000000000000000000000000000000000000000110000011000001100000110000011000001100000010000000000000000000000000000000");
            fonts[ ">" ]    = getFont( ">",0,8,16,12,"000000000000000000000000000000000000000011000000011000000011000000011000000011000000011000000010000000000000000000000000");
            fonts[ "," ]    = getFont( ",",0,8,16,12,"000000000000000000000000000000000000000000111000000110000001100000011000000110000001100000111000000000000000000000000000");
            fonts[ "." ]    = getFont( ".",0,8,16,12,"000000000000000000000000000000000000000000111000001100000011000000110000001100000011000000111000000000000000000000000000");
            fonts[ "/" ]    = getFont( "/",0,8,16,12,"000000000000000000000000000000000000000000000000000110000001100000000000000110000001100000000000000000000000000000000000");
            fonts[ "?" ]    = getFont( "?",0,8,16,12,"000000000000000000000000000000000000000000000000000110000001100000000000000110000001100000001000000000000000000000000000");
            fonts[ "_" ]    = getFont( "_",0,8,16,12,"000000000000000000000000000000000000000001111100110001101111011011010110111101101100000001111110000000000000000000000000");

            fonts[ "あ" ]    = getFont( "あ",7,8,16,12,"000000000000000000000000000000000000000000100000111111000010000001111100101010101011001011100100000000000000000000000000");
            fonts[ "い" ]    = getFont( "い",7,8,16,12,"000000000000000000000000000000000000000000000000100010001000010010000010100000101010001001000000000000000000000000000000");
            fonts[ "う" ]    = getFont( "う",7,8,16,12,"000000000000000000000000000000000000000001111000000000000111110010000010000000100000010000011000000000000000000000000000");
            fonts[ "え" ]    = getFont( "え",7,8,16,12,"000000000000000000000000000000000000000001111000000000001111110000001000000100000010100011001110000000000000000000000000");
            fonts[ "お" ]    = getFont( "お",7,8,16,12,"000000000000000000000000000000000000000000101100111100100010000000111100011000101010001011101100000000000000000000000000");
            fonts[ "か" ]    = getFont( "か",7,8,16,12,"000000000000000000000000000000000000000000100100111110100010011000100100010001000101010010001100000000000000000000000000");
            fonts[ "き" ]    = getFont( "き",7,8,16,12,"000000000000000000000000000000000000000000010000011111000000100011111110000010000100000000111110000000000000000000000000");
            fonts[ "く" ]    = getFont( "く",7,8,16,12,"000000000000000000000000000000000000000000001000000100000010000001000000001000000001000000001000000000000000000000000000");
            fonts[ "け" ]    = getFont( "け",7,8,16,12,"000000000000000000000000000000000000000010000100101111101000010010000100100001001000010001011000000000000000000000000000");
            fonts[ "こ" ]    = getFont( "こ",7,8,16,12,"000000000000000000000000000000000000000001111000000001000000000000000000000000001000001001111100000000000000000000000000");
            fonts[ "さ" ]    = getFont( "さ",7,8,16,12,"000000000000000000000000000000000000000000010000111111100000100000000100100011001000000001111100000000000000000000000000");
            fonts[ "し" ]    = getFont( "し",7,8,16,12,"000000000000000000000000000000000000000010000000100000001000000010000010100000100100010000111000000000000000000000000000");
            fonts[ "す" ]    = getFont( "す",7,8,16,12,"000000000000000000000000000000000000000000000100111111100011110001000100001111000000010000011000000000000000000000000000");
            fonts[ "せ" ]    = getFont( "せ",7,8,16,12,"000000000000000000000000000000000000000001000100111111100100010001000100010000000100000000111100000000000000000000000000");
            fonts[ "そ" ]    = getFont( "そ",7,8,16,12,"000000000000000000000000000000000000000001111100000010001111111000011000001000000010000000011100000000000000000000000000");
            fonts[ "た" ]    = getFont( "た",7,8,16,12,"000000000000000000000000000000000000000001000000111111000100000001011110100000001010000010011110000000000000000000000000");
            fonts[ "ち" ]    = getFont( "ち",7,8,16,12,"000000000000000000000000000000000000000000100000111111100010000000111100010000100000001000111100000000000000000000000000");
            fonts[ "つ" ]    = getFont( "つ",7,8,16,12,"000000000000000000000000000000000000000000000000111111000000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "て" ]    = getFont( "て",7,8,16,12,"000000000000000000000000000000000000000011111110000010000001000000100000001000000010000000011100000000000000000000000000");
            fonts[ "と" ]    = getFont( "と",7,8,16,12,"000000000000000000000000000000000000000001000000001001100011100000100000010000000100000000111110000000000000000000000000");
            fonts[ "な" ]    = getFont( "な",7,8,16,12,"000000000000000000000000000000000000000001000000111101100100001010001000001110000100110000110010000000000000000000000000");
            fonts[ "に" ]    = getFont( "に",7,8,16,12,"000000000000000000000000000000000000000001000000100111101000000010000000100000001001000011001110000000000000000000000000");
            fonts[ "ぬ" ]    = getFont( "ぬ",7,8,16,12,"000000000000000000000000000000000000000001001000011111001100101010101010101101101011101001100110000000000000000000000000");
            fonts[ "ね" ]    = getFont( "ね",7,8,16,12,"000000000000000000000000000000000000000001000000111011000101001001100010110011101101001001001110000000000000000000000000");
            fonts[ "の" ]    = getFont( "の",7,8,16,12,"000000000000000000000000000000000000000000000000001111000101001010010010100100101001001001100100000000000000000000000000");
            fonts[ "は" ]    = getFont( "は",7,8,16,12,"000000000000000000000000000000000000000000000100101111101000010010000100100111001010011001011010000000000000000000000000");
            fonts[ "ひ" ]    = getFont( "ひ",7,8,16,12,"000000000000000000000000000000000000000000110000111000000010110001000110010001000100010000111000000000000000000000000000");
            fonts[ "ふ" ]    = getFont( "ふ",7,8,16,12,"000000000000000000000000000000000000000000111000000010000001000001010100010010101000101010110110000000000000000000000000");
            fonts[ "へ" ]    = getFont( "へ",7,8,16,12,"000000000000000000000000000000000000000000000000001000000101000010001000100001000000001000000000000000000000000000000000");
            fonts[ "ほ" ]    = getFont( "ほ",7,8,16,12,"000000000000000000000000000000000000000010111110100001001011111010000100100111001010011011011010000000000000000000000000");
            fonts[ "ま" ]    = getFont( "ま",7,8,16,12,"000000000000000000000000000000000000000000010000111111000001000011111100011100001001100011100100000000000000000000000000");
            fonts[ "み" ]    = getFont( "み",7,8,16,12,"000000000000000000000000000000000000000011100000001001000010010001111110101001001010010001001000000000000000000000000000");
            fonts[ "む" ]    = getFont( "む",7,8,16,12,"000000000000000000000000000000000000000000100000111101000010001001100010101000001010001001111100000000000000000000000000");
            fonts[ "め" ]    = getFont( "め",7,8,16,12,"000000000000000000000000000000000000000001001000011111000100101011001010101100101010001001010100000000000000000000000000");
            fonts[ "も" ]    = getFont( "も",7,8,16,12,"000000000000000000000000000000000000000000010000011111000010000011111100001000000010001000011100000000000000000000000000");
            fonts[ "や" ]    = getFont( "や",7,8,16,12,"000000000000000000000000000000000000000001001000010111000110001010100010001001000001000000010000000000000000000000000000");
            fonts[ "ゐ" ]    = getFont( "ゐ",7,8,16,12,"000000000000000000000000000000000000000001110000000100000011110001010010100100101001011001100110000000000000000000000000");
            fonts[ "ゆ" ]    = getFont( "ゆ",7,8,16,12,"000000000000000000000000000000000000000001010000101111001100101010001010101010101001110001010000000000000000000000000000");
            fonts[ "ゑ" ]    = getFont( "ゑ",7,8,16,12,"000000000000000000000000000000000000000000111000000100000111110000000100001110000111110010101010000000000000000000000000");
            fonts[ "よ" ]    = getFont( "よ",7,8,16,12,"000000000000000000000000000000000000000000010000000111000001000000010000011110001001010001100010000000000000000000000000");
            fonts[ "ら" ]    = getFont( "ら",7,8,16,12,"000000000000000000000000000000000000000000011000000001000010000001011100011000100100001000011100000000000000000000000000");
            fonts[ "り" ]    = getFont( "り",7,8,16,12,"000000000000000000000000000000000000000001000100010000100100001001010010001000100000010000001000000000000000000000000000");
            fonts[ "る" ]    = getFont( "る",7,8,16,12,"000000000000000000000000000000000000000001111000000100000011110001000010100000100011101000111100000000000000000000000000");
            fonts[ "れ" ]    = getFont( "れ",7,8,16,12,"000000000000000000000000000000000000000000100000111011100011001000100010011000101010010000100110000000000000000000000000");
            fonts[ "ろ" ]    = getFont( "ろ",7,8,16,12,"000000000000000000000000000000000000000001111000000100000011110001000010100000100000001000011100000000000000000000000000");
            fonts[ "わ" ]    = getFont( "わ",7,8,16,12,"000000000000000000000000000000000000000001000000110111000110001001000010110000100100001001000100000000000000000000000000");
            fonts[ "を" ]    = getFont( "を",7,8,16,12,"000000000000000000000000000000000000000000010000011111000011000001011110001010000100000000111100000000000000000000000000");
            fonts[ "ん" ]    = getFont( "ん",7,8,16,12,"000000000000000000000000000000000000000000010000001000000010000001110000010010001000101010000100000000000000000000000000");
            fonts[ "ぁ" ]    = getFont( "ぁ",7,8,16,12,"000000000000000000000000000000000000000000000000001000000111100000100000011101001010100011110100000000000000000000000000");
            fonts[ "ぃ" ]    = getFont( "ぃ",7,8,16,12,"000000000000000000000000000000000000000000000000000000001000100010000100100001001010010001000000000000000000000000000000");
            fonts[ "ぅ" ]    = getFont( "ぅ",7,8,16,12,"000000000000000000000000000000000000000000000000011100000000000011111000000010000000100001110000000000000000000000000000");
            fonts[ "ぇ" ]    = getFont( "ぇ",7,8,16,12,"000000000000000000000000000000000000000000000000011100000000000011111000000100000111000011011100000000000000000000000000");
            fonts[ "ぉ" ]    = getFont( "ぉ",7,8,16,12,"000000000000000000000000000000000000000000000000001010001111010000100000011110001010010011001100000000000000000000000000");
            fonts[ "っ" ]    = getFont( "っ",7,8,16,12,"000000000000000000000000000000000000000000000000000000000011100011000100000001000000010000111000000000000000000000000000");
            fonts[ "ゃ" ]    = getFont( "ゃ",7,8,16,12,"000000000000000000000000000000000000000000000000010010000111100011000100010001000010100000100000000000000000000000000000");
            fonts[ "ゅ" ]    = getFont( "ゅ",7,8,16,12,"000000000000000000000000000000000000000000000000000100001011100011010100100101001001110000110000000000000000000000000000");
            fonts[ "ょ" ]    = getFont( "ょ",7,8,16,12,"000000000000000000000000000000000000000000000000000100000001110000010000011100001001100001110100000000000000000000000000");
            fonts[ "ゎ" ]    = getFont( "ゎ",7,8,16,12,"000000000000000000000000000000000000000000000000010000001101100001100100010001001100010001001000000000000000000000000000");
            fonts[ "が" ]    = getFont( "が",7,8,16,12,"000000000000000000000000000001010000010100100100111110100010011000100100010001000101010010001100000000000000000000000000");
            fonts[ "ぎ" ]    = getFont( "ぎ",7,8,16,12,"000000000000000000000000000001010000010100010000011111000000100011111110000010000100000000111110000000000000000000000000");
            fonts[ "ぐ" ]    = getFont( "ぐ",7,8,16,12,"000000000000000000000000000001010000010100001000000100000010000001000000001000000001000000001000000000000000000000000000");
            fonts[ "げ" ]    = getFont( "げ",7,8,16,12,"000000000000000000000000000001010000010110000100101111101000010010000100100001001000010001011000000000000000000000000000");
            fonts[ "ご" ]    = getFont( "ご",7,8,16,12,"000000000000000000000000000001010000010101111000000001000000000000000000000000001000001001111100000000000000000000000000");
            fonts[ "ざ" ]    = getFont( "ざ",7,8,16,12,"000000000000000000000000000001010000010100010000111111100000100000000100100011001000000001111100000000000000000000000000");
            fonts[ "じ" ]    = getFont( "じ",7,8,16,12,"000000000000000000000000000001010000010110000000100000001000000010000010100000100100010000111000000000000000000000000000");
            fonts[ "ず" ]    = getFont( "ず",7,8,16,12,"000000000000000000000000000001010000010100000100111111100011110001000100001111000000010000011000000000000000000000000000");
            fonts[ "ぜ" ]    = getFont( "ぜ",7,8,16,12,"000000000000000000000000000001010000010101000100111111100100010001000100010000000100000000111100000000000000000000000000");
            fonts[ "ぞ" ]    = getFont( "ぞ",7,8,16,12,"000000000000000000000000000001010000010101111100000010001111111000011000001000000010000000011100000000000000000000000000");
            fonts[ "だ" ]    = getFont( "だ",7,8,16,12,"000000000000000000000000000001010000010101000000111111000100000001011110100000001010000010011110000000000000000000000000");
            fonts[ "ぢ" ]    = getFont( "ぢ",7,8,16,12,"000000000000000000000000000001010000010100100000111111100010000000111100010000100000001000111100000000000000000000000000");
            fonts[ "づ" ]    = getFont( "づ",7,8,16,12,"000000000000000000000000000001010000010100000000111111000000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "で" ]    = getFont( "で",7,8,16,12,"000000000000000000000000000001010000010111111110000010000001000000100000001000000010000000011100000000000000000000000000");
            fonts[ "ど" ]    = getFont( "ど",7,8,16,12,"000000000000000000000000000001010000010101000000001001100011100000100000010000000100000000111110000000000000000000000000");
            fonts[ "ば" ]    = getFont( "ば",7,8,16,12,"000000000000000000000000000001010000010100000100101111101000010010000100100111001010011001011010000000000000000000000000");
            fonts[ "び" ]    = getFont( "び",7,8,16,12,"000000000000000000000000000001010000010100110000111000000010110001000110010001000100010000111000000000000000000000000000");
            fonts[ "ぶ" ]    = getFont( "ぶ",7,8,16,12,"000000000000000000000000000001010000010100111000000010000001000001010100010010101000101010110110000000000000000000000000");
            fonts[ "べ" ]    = getFont( "べ",7,8,16,12,"000000000000000000000000000001010000010100000000001000000111000011011000100011000000011000000010000000000000000000000000");
            fonts[ "ぼ" ]    = getFont( "ぼ",7,8,16,12,"000000000000000000000000000001010000010110111110100001001011111010000100100111001010011011011010000000000000000000000000");
            fonts[ "ぱ" ]    = getFont( "ぱ",7,8,16,12,"000000000000000000000010000001010000001000000100101111101000010010000100100111001010011001011010000000000000000000000000");
            fonts[ "ぴ" ]    = getFont( "ぴ",7,8,16,12,"000000000000000000000010000001010000001000110000111000000010110001000110010001000100010000111000000000000000000000000000");
            fonts[ "ぷ" ]    = getFont( "ぷ",7,8,16,12,"000000000000000000000010000001010000001000111000000010000001000001010100010010101000101010110110000000000000000000000000");
            fonts[ "ぺ" ]    = getFont( "ぺ",7,8,16,12,"000000000000000000000000000001000000101000000100001000000101000010001000100001000000001000000000000000000000000000000000");
            fonts[ "ぽ" ]    = getFont( "ぽ",7,8,16,12,"000000000000000000000010000001010000001010111110100001001011111010000100100111001010011011011010000000000000000000000000");

            fonts[ "ア" ]    = getFont( "ア",7,8,16,12,"000000000000000000000000000000000000000011111110000000100001001000010100000100000010000001000000000000000000000000000000");
            fonts[ "イ" ]    = getFont( "イ",7,8,16,12,"000000000000000000000000000000000000000000000010000001000001100011101000000010000000100000001000000000000000000000000000");
            fonts[ "ウ" ]    = getFont( "ウ",7,8,16,12,"000000000000000000000000000000000000000000010000111111101000001010000010000000100000010000111000000000000000000000000000");
            fonts[ "エ" ]    = getFont( "エ",7,8,16,12,"000000000000000000000000000000000000000000000000111111100001000000010000000100000001000011111110000000000000000000000000");
            fonts[ "オ" ]    = getFont( "オ",7,8,16,12,"000000000000000000000000000000000000000000000100111111100000010000001100000101000010010011000100000000000000000000000000");
            fonts[ "カ" ]    = getFont( "カ",7,8,16,12,"000000000000000000000000000000000000000000100000111111100010001000100010010000100100001010001100000000000000000000000000");
            fonts[ "キ" ]    = getFont( "キ",7,8,16,12,"000000000000000000000000000000000000000000100000111111100001000000010000111111100000100000001000000000000000000000000000");
            fonts[ "ク" ]    = getFont( "ク",7,8,16,12,"000000000000000000000000000000000000000000100000001111100100001010000010000000100000010000111000000000000000000000000000");
            fonts[ "ケ" ]    = getFont( "ケ",7,8,16,12,"000000000000000000000000000000000000000001000000011111100100010010000100000001000000100000110000000000000000000000000000");
            fonts[ "コ" ]    = getFont( "コ",7,8,16,12,"000000000000000000000000000000000000000000000000111111100000001000000010000000100000001011111110000000000000000000000000");
            fonts[ "サ" ]    = getFont( "サ",7,8,16,12,"000000000000000000000000000000000000000001000100111111100100010001000100000001000000100000110000000000000000000000000000");
            fonts[ "シ" ]    = getFont( "シ",7,8,16,12,"000000000000000000000000000000000000000011000000001000001100001000100010000001000000100001110000000000000000000000000000");
            fonts[ "ス" ]    = getFont( "ス",7,8,16,12,"000000000000000000000000000000000000000011111110000000100000010000001000000101000010001011000010000000000000000000000000");
            fonts[ "セ" ]    = getFont( "セ",7,8,16,12,"000000000000000000000000000000000000000001000000111111100100001001000100010000000100000000111110000000000000000000000000");
            fonts[ "ソ" ]    = getFont( "ソ",7,8,16,12,"000000000000000000000000000000000000000010000010010000100100001000000010000001000000100000110000000000000000000000000000");
            fonts[ "タ" ]    = getFont( "タ",7,8,16,12,"000000000000000000000000000000000000000000111110001000100110001010011010000001100000010000111000000000000000000000000000");
            fonts[ "チ" ]    = getFont( "チ",7,8,16,12,"000000000000000000000000000000000000000000001100011100000001000011111110000100000001000000100000000000000000000000000000");
            fonts[ "ツ" ]    = getFont( "ツ",7,8,16,12,"000000000000000000000000000000000000000001010010010100100101001000000010000000100000010000111000000000000000000000000000");
            fonts[ "テ" ]    = getFont( "テ",7,8,16,12,"000000000000000000000000000000000000000001111100000000001111111000010000000100000001000000100000000000000000000000000000");
            fonts[ "ト" ]    = getFont( "ト",6,8,16,12,"000000000000000000000000000000000000000001000000010000000100000001110000010011000100000001000000000000000000000000000000");
            fonts[ "ナ" ]    = getFont( "ナ",7,8,16,12,"000000000000000000000000000000000000000000001000111111100000100000001000000100000001000000100000000000000000000000000000");
            fonts[ "ニ" ]    = getFont( "ニ",7,8,16,12,"000000000000000000000000000000000000000000000000011111000000000000000000000000000000000011111110000000000000000000000000");
            fonts[ "ヌ" ]    = getFont( "ヌ",7,8,16,12,"000000000000000000000000000000000000000011111110000000100000001000110100000011000000101001110000000000000000000000000000");
            fonts[ "ネ" ]    = getFont( "ネ",7,8,16,12,"000000000000000000000000000000000000000000010000111111100000001000000100001110001101011000010000000000000000000000000000");
            fonts[ "ノ" ]    = getFont( "ノ",7,8,16,12,"000000000000000000000000000000000000000000000010000000100000001000000100000001000001100011100000000000000000000000000000");
            fonts[ "ハ" ]    = getFont( "ハ",7,8,16,12,"000000000000000000000000000000000000000001001000010001000100010001000010010000100100001010000010000000000000000000000000");
            fonts[ "ヒ" ]    = getFont( "ヒ",7,8,16,12,"000000000000000000000000000000000000000001000000010001100111100001000000010000000100000000111110000000000000000000000000");
            fonts[ "フ" ]    = getFont( "フ",7,8,16,12,"000000000000000000000000000000000000000011111110000000100000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "ヘ" ]    = getFont( "ヘ",7,8,16,12,"000000000000000000000000000000000000000000000000001000000101000010001000100001000000001000000000000000000000000000000000");
            fonts[ "ホ" ]    = getFont( "ホ",7,8,16,12,"000000000000000000000000000000000000000000010000111111100001000001010100010101001001001010010010000000000000000000000000");
            fonts[ "、" ]    = getFont( "、",6,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000100000000100000000100000000000000000000000000000");
            fonts[ "。" ]    = getFont( "。",7,8,16,12,"000000000000000000000000000000000000000000000000000000000000000001100000100100001001000001100000000000000000000000000000");
            fonts[ "マ" ]    = getFont( "マ",7,8,16,12,"000000000000000000000000000000000000000011111110000000100000001000000100001010000001000000001000000000000000000000000000");
            fonts[ "ミ" ]    = getFont( "ミ",6,8,16,12,"000000000000000000000000000000000000000001110000000011000110000000011000000000001110000000011100000000000000000000000000");
            fonts[ "ム" ]    = getFont( "ム",7,8,16,12,"000000000000000000000000000000000000000000010000001000000010000001000100010001001000111011110010000000000000000000000000");
            fonts[ "メ" ]    = getFont( "メ",7,8,16,12,"000000000000000000000000000000000000000000000010010000100010001000010100000010000001010011100010000000000000000000000000");
            fonts[ "モ" ]    = getFont( "モ",7,8,16,12,"000000000000000000000000000000000000000001111100001000000010000011111110001000000010000000011100000000000000000000000000");
            fonts[ "ヤ" ]    = getFont( "ヤ",7,8,16,12,"000000000000000000000000000000000000000001000000111111100100001000100100001000000001000000010000000000000000000000000000");
            fonts[ "ヰ" ]    = getFont( "ヰ",7,8,16,12,"000000000000000000000000000000000000000000001000000010000111100001001000111111100000100000001000000000000000000000000000");
            fonts[ "ユ" ]    = getFont( "ユ",7,8,16,12,"000000000000000000000000000000000000000000000000011110000000100000001000000010000000100011111110000000000000000000000000");
            fonts[ "ヱ" ]    = getFont( "ヱ",7,8,16,12,"000000000000000000000000000000000000000011111100000001000001010000011000000100000001000011111110000000000000000000000000");
            fonts[ "ヨ" ]    = getFont( "ヨ",6,8,16,12,"000000000000000000000000000000000000000011111100000001000000010011111100000001000000010011111100000000000000000000000000");
            fonts[ "ラ" ]    = getFont( "ラ",7,8,16,12,"000000000000000000000000000000000000000001111100000000001111111000000010000000100000010001111000000000000000000000000000");
            fonts[ "リ" ]    = getFont( "リ",7,8,16,12,"000000000000000000000000000000000000000001000010010000100100001001000010000000100000010000111000000000000000000000000000");
            fonts[ "ル" ]    = getFont( "ル",7,8,16,12,"000000000000000000000000000000000000000000010000010100000101000001010000010100100101010010011000000000000000000000000000");
            fonts[ "レ" ]    = getFont( "レ",6,8,16,12,"000000000000000000000000000000000000000010000000100000001000000010000000100001001000100011110000000000000000000000000000");
            fonts[ "ロ" ]    = getFont( "ロ",7,8,16,12,"000000000000000000000000000000000000000011111110100000101000001010000010100000101000001011111110000000000000000000000000");
            fonts[ "ワ" ]    = getFont( "ワ",7,8,16,12,"000000000000000000000000000000000000000011111110100000101000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "ヲ" ]    = getFont( "ヲ",7,8,16,12,"000000000000000000000000000000000000000011111110000000100000001000111110000000100000010001111000000000000000000000000000");
            fonts[ "ン" ]    = getFont( "ン",7,8,16,12,"000000000000000000000000000000000000000011000000001100100000001000000010000000100000110011110000000000000000000000000000");
            fonts[ "ァ" ]    = getFont( "ァ",5,8,16,12,"000000000000000000000000000000000000000000000000111110000000100000101000001100000010000001000000000000000000000000000000");
            fonts[ "ィ" ]    = getFont( "ィ",5,8,16,12,"000000000000000000000000000000000000000000000000000010000001000011100000001000000010000000100000000000000000000000000000");
            fonts[ "ゥ" ]    = getFont( "ゥ",5,8,16,12,"000000000000000000000000000000000000000000000000001000001111100010001000000010000001000000100000000000000000000000000000");
            fonts[ "ェ" ]    = getFont( "ェ",5,8,16,12,"000000000000000000000000000000000000000000000000000000001111100000100000001000000010000011111000000000000000000000000000");
            fonts[ "ォ" ]    = getFont( "ォ",5,8,16,12,"000000000000000000000000000000000000000000000000000100001111100000010000001100000101000010010000000000000000000000000000");
            fonts[ "ッ" ]    = getFont( "ッ",5,8,16,12,"000000000000000000000000000000000000000000000000000000001010100010101000000010000001000001100000000000000000000000000000");
            fonts[ "ャ" ]    = getFont( "ャ",5,8,16,12,"000000000000000000000000000000000000000000000000010000001111100001001000010010000010000000100000000000000000000000000000");
            fonts[ "ュ" ]    = getFont( "ュ",5,8,16,12,"000000000000000000000000000000000000000000000000000000000111000000010000000100000001000011111000000000000000000000000000");
            fonts[ "ョ" ]    = getFont( "ョ",5,8,16,12,"000000000000000000000000000000000000000000000000000000001111100000001000011110000000100011111000000000000000000000000000");
            fonts[ "ヮ" ]    = getFont( "ヮ",5,8,16,12,"000000000000000000000000000000000000000000000000000000001111100010001000000010000001000001100000000000000000000000000000");
            fonts[ "ガ" ]    = getFont( "ガ",7,8,16,12,"000000000000000000000000000001010000010100100000111111100010001000100010010000100100001010001100000000000000000000000000");
            fonts[ "ギ" ]    = getFont( "ギ",7,8,16,12,"000000000000000000000000000001010000010100100000111111100001000000010000111111100000100000001000000000000000000000000000");
            fonts[ "グ" ]    = getFont( "グ",7,8,16,12,"000000000000000000000000000001010000010100100000001111100100001010000010000000100000010000111000000000000000000000000000");
            fonts[ "ゲ" ]    = getFont( "ゲ",7,8,16,12,"000000000000000000000000000001010000010101000000011111100100010010000100000001000000100000110000000000000000000000000000");
            fonts[ "ゴ" ]    = getFont( "ゴ",7,8,16,12,"000000000000000000000000000001010000010100000000111111100000001000000010000000100000001011111110000000000000000000000000");
            fonts[ "ザ" ]    = getFont( "ザ",7,8,16,12,"000000000000000000000000000001010000010101000100111111100100010001000100000001000000100000110000000000000000000000000000");
            fonts[ "ジ" ]    = getFont( "ジ",7,8,16,12,"000000000000000000000000000001010000010111000000001000001100001000100010000001000000100001110000000000000000000000000000");
            fonts[ "ズ" ]    = getFont( "ズ",7,8,16,12,"000000000000000000000000000001010000010111111110000000100000010000001000000101000010001011000010000000000000000000000000");
            fonts[ "ゼ" ]    = getFont( "ゼ",7,8,16,12,"000000000000000000000000000001010000010101000000111111100100001001000100010000000100000000111110000000000000000000000000");
            fonts[ "ゾ" ]    = getFont( "ゾ",7,8,16,12,"000000000000000000000000000001010000010110000000010000100100001000000010000001000000100000110000000000000000000000000000");
            fonts[ "ダ" ]    = getFont( "ダ",7,8,16,12,"000000000000000000000000000001010000010100111110001000100110001010011010000001100000010000111000000000000000000000000000");
            fonts[ "ヂ" ]    = getFont( "ヂ",7,8,16,12,"000000000000000000000000000001010000010100001100011100000001000011111110000100000001000000100000000000000000000000000000");
            fonts[ "ヅ" ]    = getFont( "ヅ",7,8,16,12,"000000000000000000000000000001010000010101010000010100100101001000000010000000100000010000111000000000000000000000000000");
            fonts[ "デ" ]    = getFont( "デ",7,8,16,12,"000000000000000000000000000001010000010101111100000000001111111000010000000100000001000000100000000000000000000000000000");
            fonts[ "ド" ]    = getFont( "ド",7,8,16,12,"000000000000000000000000000010100000101001000000010000000100000001110000010011000100000001000000000000000000000000000000");
            fonts[ "バ" ]    = getFont( "バ",7,8,16,12,"000000000000000000000000000001010000010101001000010001000100010001000010010000100100001010000010000000000000000000000000");
            fonts[ "ビ" ]    = getFont( "ビ",7,8,16,12,"000000000000000000000000000001010000010101000000010001100111100001000000010000000100000000111110000000000000000000000000");
            fonts[ "ブ" ]    = getFont( "ブ",7,8,16,12,"000000000000000000000000000001010000010111111110000000100000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "ベ" ]    = getFont( "ベ",7,8,16,12,"000000000000000000000000000000000000101000001010001000000101000010001000100001000000001000000000000000000000000000000000");
            fonts[ "ボ" ]    = getFont( "ボ",7,8,16,12,"000000000000000000000000000001010000010100010000111111100001000001010100010101001001001010010010000000000000000000000000");
            fonts[ "パ" ]    = getFont( "パ",7,8,16,12,"000000000000000000000010000001010000001001001000010001000100010001000010010000100100001010000010000000000000000000000000");
            fonts[ "ピ" ]    = getFont( "ピ",7,8,16,12,"000000000000000000000010000001010000001001000000010001100111100001000000010000000100000000111110000000000000000000000000");
            fonts[ "プ" ]    = getFont( "プ",7,8,16,12,"000000000000000000000010000001010000001011111110000000100000001000000010000000100000010000111000000000000000000000000000");
            fonts[ "ペ" ]    = getFont( "ペ",7,8,16,12,"000000000000000000000000000001000000101000000100001000000101000010001000100001000000001000000000000000000000000000000000");
            fonts[ "ポ" ]    = getFont( "ポ",8,8,16,12,"000000000000000000000010000001010000001000010000111111100001000001010100010101001001001010010010000000000000000000000000");            
            
            fonts[ " " ]    = getFont( " ",5,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
            fonts[ " " ]    = getFont( " ",5,8,16,12,"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
            
            fonts[ "ng" ]    = getFont( "ng",7,8,16,12,"000000001111111011000110101010101001001010101010110001101111111000000000000000000000000000000000000000000000000000000000");
            fonts[ "return" ]    = new FontData( "return" );
        }
        
        private function getFont( c:String, width:int, boxWidth:int, boxHeight:int, baseline:int, data:String ):FontData
        {
            var font    :FontData = new FontData( c );
            font.width       = width;
            font.boxWidth    = boxWidth;
            font.boxHeight   = boxHeight;
            font.baseline    = baseline;
            font.data        = data;
            return font;
        }
    }