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");
Tweet
dispose()
June 03, 2007
BitmapDataを使うと、結構メモリーをくっているので、それを解放する関数。ちなみに、ビットマップを構成する1つのピクセルを格納するために4バイトのメモリが必要らしいです。つまり、500×500 ピクセルのビットマップを 1 つ作るだけで1MB近のメモリを消費することになります。
myBitmap.dispose()
これで、こまめに開放するように。
Tweet
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 を指定します。スムージングモードはデフォルトでは有効です。
Tweet