home > BitmapData

ムービーをBitmapDataで表示

August 06, 2007

ムービーをBitmapDataで表示して、形を自由に変形できるサンプルを作りました。




import flash.display.BitmapData;
import sandy.util.DistortImage;

//ビットマップ設定
var bmd1:BitmapData = new BitmapData(300, 200,false,0);
var clip1:MovieClip = this.createEmptyMovieClip("holder1", 1);
var di1:DistortImage = new DistortImage(clip1, bmd1, 4, 4);

this.onEnterFrame = function(){
  di1.setTransform(f0._x, f0._y, f1._x, f1._y, f2._x, f2._y, f3._x, f3._y);
  di1.texture.draw(mov);
}


//関数

for(var n:Number=0;n<4;n++){
 var point:MovieClip = this["f"+n];
 point.num.text = n;
 point.onPress = function(){
  this.startDrag(true);
 };
 point.onRelease = point.onReleaseOutside = function(){
  this.stopDrag();
 };
}

//FLV表示設定
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
stream_ns.Play();

this.mov.myvideo.attachVideo(stream_ns);
stream_ns.play("video.flv");


Permalink | Comments (0)

dispose()

June 03, 2007

BitmapDataを使うと、結構メモリーをくっているので、それを解放する関数。ちなみに、ビットマップを構成する1つのピクセルを格納するために4バイトのメモリが必要らしいです。つまり、500×500 ピクセルのビットマップを 1 つ作るだけで1MB近のメモリを消費することになります。

myBitmap.dispose()

これで、こまめに開放するように。


Permalink | Comments (0)

BitmapData

April 03, 2007





import flash.display.BitmapData;

var data_bd:BitmapData;

createBitmapData();
function createBitmapData():Void {
data_bd = new BitmapData(240, 180, true);
}
function drawPict():Void {
data_bd.draw(pict_mc);
}
function attachDisplay():Void {
display_mc.attachBitmap(data_bd, 0);
}

drawBtn.onRelease = function():Void {
drawPict();
};
attachBtn.onRelease = function():Void {
this.enabled = false;
attachDisplay();
};
resetBtn.onRelease = function():Void {
resetBitmapData();
};
function resetBitmapData():Void {
data_bd.dispose();
attachBtn.enabled = true;
createBitmapData();
}


// BitmapData オブジェクトを生成
var data_bd:BitmapData = new BitmapData(240, 180, true);

// ソースイメージを BitmapData オブジェクト上に描画
data_bd.draw(pict_mc);

// BitmapData オブジェクトをムービークリップに関連付け
display_mc.attachBitmap(data_bd, 0);

BitmapData オブジェクト(data_bd)を生成して、draw() すると、
BitmapData オブジェクト(data_bd)上に、ソースイメージ(pict_mc)が描画される。

そこで、MovieClip.attachBitmap() を用いて、
BitmapData オブジェクト(data_bd)をムービークリップ(display_mc)と関連付けすると、
display_mc に描画したソースイメージが表示される。

----------------------------------------------------------
BitmapData コンストラクタ

public BitmapData(width:Number, height:Number, [transparent:Boolean], [fillColor:Number])

指定された幅と高さでBitmapDataオブジェクトを作成します。fillColor パラメータに値を指定した場合、ビットマップのすべてのピクセルにその色が設定されます。

パラメータ
width:Number
ビットマップイメージの幅(ピクセル単位)です。
height:Number
ビットマップイメージの高さ(ピクセル単位)です。
transparent:Boolean (オプション)
ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。デフォルト値は true です(透明)。完全に透明なビットマップを作成するには、transparent パラメータの値を true に、fillColor パラメータの値を 0x00000000(または0) に設定します。
fillColor:Number (オプション)
ビットマップイメージ領域を塗りつぶすのに使用する32ビット ARGB カラー値です。デフォルト値は 0xFFFFFFFF(白) です。

----------------------------------------------------------
attachBitmap (MovieClip.attachBitmap メソッド)

public attachBitmap(bmp:BitmapData, depth:Number, [pixelSnapping:String], [smoothing:Boolean]) : Void

ビットマップイメージをムービークリップに割り当てます。

パラメータ
bmp:flash.display.BitmapData

透明または不透明なビットマップイメージ。
depth:Number
ビットマップイメージを配置するムービークリップ内の深度を指定する整数。
pixelSnapping:String (オプション)
ピクセルへの吸着モード。auto、 always、never のいずれかを指定できます。デフォルトのモードは auto です。
smoothing:Boolean (オプション)
スムージングモードを有効にする場合は true 、無効にする場合は false を指定します。スムージングモードはデフォルトでは有効です。


Permalink | Comments (0)