我在做放大鏡效果?As3繪製位圖+鼠標左右複製像素X和鼠標Y
我有一個工作版本。然而,平板電腦的性能還不夠好。
是我迄今所做的:
我有一個enterFrame事件上的鼠標按下
所以它開始捕捉畫面時,鼠標點擊,並遵照mouseX和mouseY的
它可以工作,但它保持的唯一問題是繪製整個舞臺,而不是圍繞mouseX和mosueY繪製(300px * 300px)。有沒有一種方法可以根據你的鼠標X和鼠標Y來繪製繪製區域。我想這也有助於表現。 :)
e.target.removeEventListener(Event.ENTER_FRAME, startCapture);
function startCapture(e:Event):void{
var glassWidth:uint=80;
var glassHeight:int=80;
var curBd:BitmapData;
var curBmp:Bitmap;
var posX:int = _parentStage.mouseX - 40;
var posY:int = _parentStage.mouseY - 40;
//-------------------------------------------------------------
//var subArea:Rectangle = new Rectangle(0,0,500,500);
//var newBmp:Bitmap = new BitmapData(500,500);
//var cutoutBmp:Bitmap = new Bitmap(newBmp, PixelSnapping.ALWAYS, true);
//cutoutBmp.bitmapData.draw(jpgSource, new Matrix(1, 0, 0, 1, -357, -341) , null, null, subArea, true);
//-------------------------------------------------------------
bd = new BitmapData(1024, 768, true, 0);
var subArea:Rectangle = new Rectangle(_parentStage.mouseX, _parentStage.mouseY, 500, 500);
// bd = new BitmapData(500, 500);
bd.draw(_parentStage.mc_mainContainer);
// bd.draw(_parentStage.mc_mainContainer);
curBmp=new Bitmap(new BitmapData(glassWidth,glassHeight), PixelSnapping.ALWAYS);
curBmp.bitmapData.copyPixels(bd,new Rectangle(posX,posY,_parentStage.mouseX,_parentStage.mouseY),new Point(0,0));
curBd=curBmp.bitmapData;
var ma:Matrix = new Matrix(1, 0, 0, 1, -40, -40);
glass.name = 'glass';
glass.alpha = 1;
glass.graphics.clear();
glass.graphics.beginBitmapFill(curBd, ma);
glass.graphics.drawCircle(0, 0, 35);
//glass.graphics.drawCircle(0, 0, 35);
glass.graphics.endFill();
//var imageCircle:Bitmap = new _magGlass();
//trace(_magGlass);
//glass.addChild(_magGlass);
if(!_parentStage.contains(glass))_parentStage.addChildAt(glass, _parentStage.numChildren - 2);
glass.x = _parentStage.mouseX;
glass.y = _parentStage.mouseY - 75;
}
什麼是'bd',你爲什麼要畫'_parentStage.mc_mainContainer'呢? – 2012-10-25 01:06:53
@atonparker bd是位圖和_parentStage.mc_mainContainer幾乎是舞臺 – Bruce
在你的問題中,你問爲什麼它正在繪製整個舞臺,這可能是這樣做的線? – 2012-10-25 14:15:59