packageの外にクラスを書く練習2

by mikelito33bdx
...
@author masaoka
♥2 | Line 153 | Modified 2010-09-07 20:03:59 | MIT License
play

ActionScript3 source code

/**
 * Copyright mikelito33bdx ( http://wonderfl.net/user/mikelito33bdx )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/kbRr
 */

package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.TextField;
    import flash.text.TextFormat;
    
    /**
     * ...
     * @author masaoka
     */
    [SWF(frameRate = "30", width = "465", height = "465")]
    
    public class Main extends Sprite {
        
        private var _pixelsX:Array;
        private var _pixelsY:Array;
        private var _canvasSec01:Sprite;
        private var _canvasSec10:Sprite;
        private var _canvasMin01:Sprite;
        private var _canvasMin10:Sprite;
        private var _canvashour01:Sprite;
        private var _canvashour10:Sprite;
        private var _sec1:String;
        private var _sec10:String;
        private var _min1:String;
        private var _min10:String;
        private var _hour1:String
        private var _hour10:String;
        private var _preSec01:Number;
        private var _preSec10:Number;
        private var _preMin01:Number;
        private var _preMin10:Number;
        private var _prehour01:Number;
        private var _prehour10:Number;
        
        public function Main() {
            _canvasSec01 = new Sprite();
            _canvasSec10 = new Sprite();
            _canvasMin01 = new Sprite();
            _canvasMin10 = new Sprite();
            _canvashour01 = new Sprite();
            _canvashour10 = new Sprite();
            
            this.addChild(_canvasSec01);
            this.addChild(_canvasSec10);
            this.addChild(_canvasMin01);
            this.addChild(_canvasMin10);
            this.addChild(_canvashour01);
            this.addChild(_canvashour10);
            this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
        
        private function enterFrameHandler(e:Event):void {
            var date:Date = new Date();
            var sec:uint = date.getSeconds();
            var min:uint = date.getMinutes();
            var hour:uint = date.getHours();
            var hour10:uint = Math.floor(hour / 10);
            var hour1:uint = hour - hour10 * 10;
            var min10:uint = Math.floor(min / 10);
            var min1:uint = min - min10 * 10;
            var sec10:uint = Math.floor(sec / 10);
            var sec1:uint = sec - sec10 * 10;
            _hour10 = new String(hour10);
            _hour1 = new String(hour1);
            _min10 = new String(min10);
            _min1 = new String(min1);
            _sec10 = new String(sec10);
            _sec1 = new String(sec1);
            
            if (hour10 != _prehour10) {
                this.removeChild(_canvashour10);
                _canvashour10 = new Sprite();
                creatBalls(_hour10, _canvashour10, -20, 100);
            }
            _prehour10 = hour10;
            if (hour1 != _prehour01) {
                this.removeChild(_canvashour01);
                _canvashour01 = new Sprite();
                creatBalls(_hour1, _canvashour01, 45, 100);
            }
            _prehour01 = hour1;
            
            if (min10 != _preMin10) {
                this.removeChild(_canvasMin10);
                _canvasMin10 = new Sprite();
                creatBalls(_min10, _canvasMin10, 130, 100);
            }
            _preMin10 = min10;
            if (min1 != _preMin01) {
                this.removeChild(_canvasMin01);
                _canvasMin01 = new Sprite();
                creatBalls(_min1, _canvasMin01, 195, 100);
            }
            _preMin01 = min1;
            if (sec10 != _preSec10) {
                this.removeChild(_canvasSec10);
                _canvasSec10 = new Sprite();
                creatBalls(_sec10, _canvasSec10, 280, 100);
            }
            _preSec10 = sec10;
            if (sec1 != _preSec01) {
                this.removeChild(_canvasSec01);
                _canvasSec01 = new Sprite();
                creatBalls(_sec1, _canvasSec01, 345, 100);
            }
            _preSec01 = sec1;
        }
        
        private function creatBalls(str:String, canvas:Sprite, _x:Number, _y:Number):void {
            getColor(str);
            var pixelsLength:uint = _pixelsX.length;
            var i:uint;
            var j:uint;
            var ball:Ball;
            for (i = 0; i < pixelsLength; i++ ) {
                canvas.addChild(new Ball(_pixelsX[i], _pixelsY[i]));
            }
            this.addChild(canvas);
            canvas.x = _x;
            canvas.y = _y;
        }
        
        private function getColor(str:String):void {
            _pixelsX = [];
            _pixelsY = [];
            
            var format:TextFormat = new TextFormat();
            format.size = 25;
            format.bold = true;
            format.font = "_typewriter"
            var _tf:TextField = new TextField();
            _tf.defaultTextFormat = format;
            _tf.text = str;
            
            var _bitmapData:BitmapData = new BitmapData(30, 30, false, 0xcFFFFF);
            _bitmapData.draw(_tf);
            var _bitmap:Bitmap = new Bitmap(_bitmapData);
            
            var pixelValue:Number;
            var pixelValue16:String;
            var i:uint;
            var j:uint;
            for (i = 3; i <= 28; i++ ) {
                for (j = 3; j <= 28; j++ ) {
                    pixelValue = _bitmapData.getPixel(i, j);
                    pixelValue16 = pixelValue.toString(16);
                    if (pixelValue16 == "0") {
                        _pixelsX.push(i * 7);
                        _pixelsY.push(j * 7);
                    }
                }
            }
            
            this.addChild(_bitmap);
            
        }
        
    }
    
}
//円を描く
import flash.display.*;
import caurina.transitions.Tweener;
class Ball extends Sprite{
    
    function Ball (_x:Number, _y:Number) {
        
        this.graphics.beginFill(0xFF9900, 1 - 0.8 * Math.random());
        this.graphics.drawCircle(0, 0, 10 - 5 * Math.random());
        this.graphics.endFill();
        this.scaleX = this.scaleY = 0;
        this.x = _x + Math.random() * (5 - 10 * Math.random());
        this.y = _y + Math.random() * (5 - 10 * Math.random());
        
        Tweener.addTween(this, { scaleX:1, scaleY:1, time:0.2, delay:(0.7 - 0.5 * Math.random()), transition:"easeInOut"  } );
        
    }
}