flash on 2010-10-6

by maxcaffy
テスト中
てきとーに画面をランダムな色で埋めて、pixelを走査、白い色の座標を特定する…
ってFD+FlashCS4でやってみたのをコピペしたけれど、そういえば、wonderflはtrace使えないんだった。寝る

...
@author maxcaffy
♥0 | Line 63 | Modified 2010-10-06 05:48:23 | MIT License
play

ActionScript3 source code

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

//テスト中
//てきとーに画面をランダムな色で埋めて、pixelを走査、白い色の座標を特定する…
//ってFD+FlashCS4でやってみたのをコピペしたけれど、そういえば、wonderflはtrace使えないんだった。寝る

package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Graphics;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.ColorTransform;
    import flash.geom.Matrix;
    import flash.geom.Rectangle;
    /**
     * ...
     * @author maxcaffy
     */
    public class main extends Sprite
    {
        private var bmd:BitmapData;
        private var bm:Bitmap;
        private var sh:Shape;
        private var arr:Array;
        
        public function main(){
            initFunc();
        }
        
        private function initFunc():void {
            bmd = new BitmapData(stage.stageWidth, stage.stageHeight,true,Math.floor(Math.random()*0xFFFFFFFF));
            bm = new Bitmap(bmd);
            arr = new Array();
            stage.addChild(bm);
            pixelRandom(bmd);
            arr = pixelCheck(bmd);
            //trace(arr.length);
//            for (var i:int = 0; i < arr.length; i++) {
//               trace(arr[i]);
//          }
        }
        
        private function testFunc():void {
            sh = new Shape();
            sh.graphics.beginFill(0, 1);
            sh.graphics.drawCircle(50, 50, 20);
            bmd.draw(sh);
        }
        
        private function pixelRandom(bmd:BitmapData):void {
            for (var i:int = 0; i < stage.stageWidth; i++ ) {
                for (var k:int = 0; k < stage.stageHeight; k++ ) {
                    bmd.setPixel32(i, k, Math.floor(Math.random() * 0xFFFFFF)+0xFF000000);
                }
            }

        }
        
        private function pixelCheck(bmd:BitmapData):Array {
            var col:uint;
            var _alp:uint;
            var _red:uint;
            var _gre:uint;
            var _blu:uint;
            var arr:Array = new Array();
            for (var i:int = 0; i < stage.stageWidth; i++ ) {
                for (var k:int = 0; k < stage.stageHeight; k++ ) {
                    col = bmd.getPixel32(i, k);
                    _alp = (col >> 24) & 0xFF;    //この意味あとで調べねば。
                    _red = (col >> 16) & 0xFF;
                    _gre = (col >> 24) & 0xFF;
                    _blu = (col >> 24) & 0xFF;
//                    if (_alp > 0x90) {            //ある程度不透明
                        if ((_red == 0xFF) && (_gre == 0xFF) && (_blu == 0xFF)) {    //かなりの輝度
                            arr.push([i, k, _alp, _red, _gre, _blu]);
                        }
//                    }
                }
            }
            return arr;
        }
        
    }
}