package
{
import com.greensock.TweenMax;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.ByteArray;
/**
* 改變BitmapPixcel應用
* ...
* @author Ray Cheng
*/
public class BitmapPixcelDemo extends Sprite
{
[Embed(source = "../bin/fb.jpg")]
private static const BitmapJpg:Class;
public function BitmapPixcelDemo()
{
setBitmapSingleLine();
setBitmapRectangle();
}
private function setBitmapSingleLine():void
{
var myBitmapData:BitmapData = new BitmapData(100, 100, false, 0x00ffff);
for (var i:uint = 0; i < 50; i++)
{
TweenMax.to(this, 0, { delay:0.2 * i,onCompleteParams:[i], onComplete:function(pI:uint):void
{
var red:uint = 0xFF0000;
myBitmapData.setPixel(pI, pI*2, red);
myBitmapData.setPixel(50+pI, 100-pI*2, red);
}})
}
var myBitmapImage:Bitmap = new Bitmap(myBitmapData);
addChild(myBitmapImage);
//--取得pixcel資訊
var pixelValue:uint = myBitmapData.getPixel(50, 50);
trace(pixelValue.toString(16));
}
private function setBitmapRectangle():void
{
var bitmapImage1:Bitmap = new BitmapJpg();
addChild(bitmapImage1);
var bitmapDataObject1:BitmapData = bitmapImage1.bitmapData;
var bitmapDataObject2:BitmapData = new BitmapData(150, 150, false, 0x00FF0000);
var rect:Rectangle = new Rectangle(0, 0);
var bytes:ByteArray;
for (var i:uint = 0; i < 100; i++)
{
TweenMax.to(this, 0, { delay:0.2 * i,onCompleteParams:[i], onComplete:function(pI:uint):void
{
rect.width = pI;
rect.height = pI;
bytes = bitmapDataObject1.getPixels(rect);
bytes.position = 0;
bitmapDataObject2.setPixels(rect, bytes);
}})
}
//trace(BitmapJpg)
var bitmapImage2:Bitmap = new Bitmap(bitmapDataObject2);
addChild(bitmapImage2);
bitmapImage2.x = 160;
bitmapImage1.y = bitmapImage2.y = 200;
var $text0:TextField
setTextField($text0,"改變原有的Bitmap內的單點像素",105);
var $text1:TextField
setTextField($text1,"改變原有的Bitmap內的矩形區域像素",355);
}
private function setTextField(pText:TextField,pTxtCont:String,pY:uint):void
{
pText = new TextField();
pText.y = pY;
pText.width = 350;
pText.defaultTextFormat = new TextFormat("", 20, 0xffffff);
pText.text = pTxtCont;
addChild(pText);
}
}
}
2012年10月10日 星期三
Flash Native As3 基礎總整理(1-2)Bitmap與BitmapData
1.操作個別像素setPixel();
2.操作個別矩形區域像素setPixels(rect, bytes);
訂閱:
張貼留言 (Atom)

沒有留言:
張貼留言
我的留言版