flash on 2010-10-6
テスト中
てきとーに画面をランダムな色で埋めて、pixelを走査、白い色の座標を特定する…
ってFD+FlashCS4でやってみたのをコピペしたけれど、そういえば、wonderflはtrace使えないんだった。寝る
...
@author maxcaffy
♥0 |
Line 63 |
Modified 2010-10-06 05:48:23 |
MIT License
archived:2017-03-20 12:23:25
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;
}
}
}