ビットマップの取り扱いテスト

by maxcaffy
http://www.picamatic.com/show/2010/04/20/01/16/6747911_151x151.png
ビットマップのマトリクスの使い方を身につけたい。あやふやふやねんもこもこ
4/19 ねむい!今日はここまで!っていうか明日最終面接じゃん!
4/20 即日で内定一つ頂きました。すんまそん引き続き勉強中ですー。なかなか時間が取れない!
4/21 内定蹴りました。(えー!
4/23 新入生歓迎会に参加してきました。24帖くらいに100人詰め込むとか無理すぎ。
とりあえず楽しかったけどツメが甘い彼らに頼るのはもうやめようと思った
去年と同じとこにすればよかったのに…
4/24 なんかブログみたいになってるぞコレ。いい加減終わらそう。
画像を差し替えました。
死ぬほどぐねぐね悩んだ結果、URLの冒頭にassets.つけるとうまく行くのね…なんじゃーいサーバー側かーい(ガシャーン)
まとめ:タイトル,タグ,ライセンスを編集→more+→アップロード→画像URLコピー→URLの冒頭に"assets."
4/24 なんだこれ…速いぞ…
4/24 なんか透過がうまくいかない。今日はここまで。進んだ! 
4/25 透過できた!copyPixelsの引数が足りなかったのか!
ところでサムネイルが怖すぎ。
♥0 | Line 64 | Modified 2010-04-25 19:47:24 | MIT License | (replaced)
play

Related images

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/8AuI
 */

//http://www.picamatic.com/show/2010/04/20/01/16/6747911_151x151.png
//ビットマップのマトリクスの使い方を身につけたい。あやふやふやねんもこもこ


// 4/19 ねむい!今日はここまで!っていうか明日最終面接じゃん!
// 4/20 即日で内定一つ頂きました。すんまそん引き続き勉強中ですー。なかなか時間が取れない!
// 4/21 内定蹴りました。(えー!
// 4/23 新入生歓迎会に参加してきました。24帖くらいに100人詰め込むとか無理すぎ。
// とりあえず楽しかったけどツメが甘い彼らに頼るのはもうやめようと思った
// 去年と同じとこにすればよかったのに…

// 4/24 なんかブログみたいになってるぞコレ。いい加減終わらそう。
// 		画像を差し替えました。
//		死ぬほどぐねぐね悩んだ結果、URLの冒頭にassets.つけるとうまく行くのね…なんじゃーいサーバー側かーい(ガシャーン)
//		まとめ:タイトル,タグ,ライセンスを編集→more+→アップロード→画像URLコピー→URLの冒頭に"assets."

// 4/24 なんだこれ…速いぞ…
// 4/24 なんか透過がうまくいかない。今日はここまで。進んだ! 

// 4/25 透過できた!copyPixelsの引数が足りなかったのか!
// ところでサムネイルが怖すぎ。

package {
	import flash.display.*;
    import flash.net.URLRequest;
    import flash.geom.Matrix;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.system.LoaderContext;
    import flash.text.TextField;
    import flash.display.Stage;
    import flash.events.MouseEvent;
    import flash.ui.*;
    
    [SWF(width = "465", height = "465", frameRate = "30", backgroundColor = "#404040")]
    import flash.geom.Point;
    import flash.geom.Rectangle;
    public class FlashTest extends Sprite {
    	
     //   private var trace_tf:TextField = new TextField();
      //  private var trace_set:TraceSet = new TraceSet();
        private var bmd_load:BitmapData;
        private var bm_load:Bitmap;
        
        private var bmd_all:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0xFFFFFFFF);
        private var bm_all:Bitmap = new Bitmap(bmd_all);
        
        public function FlashTest() {
			initFunc();
			initAdd();
        }
        
        private function initFunc():void{
			//stage.addChild(trace_set);
			stage.addChild(bm_all); 
        		loadFunc();
        		Mouse.hide();
        }
        
        private function initAdd():void{
        		stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMove);
        	}
        
        private function loadFunc():void{ 
        		var loader:Loader = new Loader();
        		loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComp);
        		loader.load(
        			new URLRequest("http://assets.wonderfl.net/images/related_images/1/16/1634/163476b853dc1fe20f1f49d4e3a620b15518d43a"),
        			new LoaderContext(true)
        		);
        }
        
        private function loadComp(event:Event):void{
        	   	bmd_load = Bitmap(Loader(event.currentTarget.loader).content).bitmapData;
        		bm_load = new Bitmap(bmd_load);
        		
        		//trace_set.trace("finished");
        		//stage.addChild(trace_set);
        }
        
        private function mouseMove(event:Event):void{
        		bitmapPaint(mouseX,mouseY);
        	}
        	
        	private function bitmapPaint(mx:Number = 0,my:Number = 0):void{
			var point:Point = new Point(mx-bmd_load.width/2,my-bmd_load.height/2);
			var rect:Rectangle = new Rectangle(0,0,bmd_load.width,bmd_load.height);
			bmd_all.copyPixels(bmd_load,rect,point,null,null,true);
			//trace_set.trace(String(bmd_load.getPixel32(0,0)));
        		//stage.addChild(trace_set);
        	}
        
    }
}

/*///////////////////////////////////////////////////////
トレース用クラス
///////////////////////////////////////////////////////*/
import flash.display.*;
import flash.text.TextField;
import flash.display.Sprite;

class TraceSet extends TextField{

	public function TraceSet(){
		trace("started");
	}
	
	public function trace(t:String):void{
		this.text = t;
	}
}