首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

Bit地图Data抠图小实验

2012-11-22 
BitmapData抠图小实验先看看效果:?代码如下:package?{ import?flash.display.* import?flash.events.* i

BitmapData抠图小实验

先看看效果:
?
代码如下:
package?{
import?flash.display.*;
import?flash.events.*;
import?flash.net.URLRequest;
import?flash.geom.*;
import?flash.filters.*;
/**
??*?@author?CYPL
??*?设置图片元件实例名为Image
??*/
public?class?CutImageTest?extends?Sprite?{
??private?var?_imageBitmapData?:?BitmapData;
??private?var?_imageHotAreaData:BitmapData;
??private?var?_imageBitmap?:?Bitmap;
??private?var?_mouseRectContainer:Sprite;
??private?var?_mouseRectStartX:Number;
??private?var?_mouseRectStartY:Number;
??private?var?_imageClipDraging:Boolean;
??private?var?_currentDragClip:Sprite;
??public?function?CutImageTest()?{
???
???_mouseRectContainer=new?Sprite;
???Image.visible=false;
???_imageBitmapData=new?BitmapData(Image.width,Image.height,true,0),_imageBitmapData.draw(Image);
???_imageBitmap=Bitmap(addChild(new?Bitmap(_imageBitmapData)))
???_imageBitmap.x=30
???_imageBitmap.y=30
???configMouseEvent();
???//----------hitTestArea------------------------
???var?c:ColorTransform=new?ColorTransform;
???c.color=0xff0000;
???_imageHotAreaData=_imageBitmapData.clone();
???_imageHotAreaData.draw(_imageHotAreaData,null,c);
??}
??private?function?configMouseEvent():void?{
???stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler,false,0,true);
???stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler,false,0,true);
??}
??/**************************drawRect?handler*******************************/
??private?function?mouseDownHandler(evt:MouseEvent):void?{//mouse_down
???if?(_imageClipDraging)?{
????return;
???}
???addChild(_mouseRectContainer);
???_mouseRectStartX=evt.stageX;
???_mouseRectStartY=evt.stageY;
???stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
??}
??private?function?mouseUpHandler(evt:MouseEvent):void?{//mouse_up
???
???//_currentDragClip&&();
???_imageClipDraging&&(_currentDragClip.stopDrag(),_imageClipDraging=false,_currentDragClip.alpha=1)||(cutImage(checkIntersection()),_mouseRectContainer.graphics.clear(),stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler))
???
??}
??private?function?mouseMoveHandler(evt:MouseEvent):void?{//mouse_move
???evt.updateAfterEvent();
???var?minX:Number=Math.min(evt.stageX,_mouseRectStartX)
???var?minY:Number=Math.min(evt.stageY,_mouseRectStartY)
???var?maxX:Number=Math.max(evt.stageX,_mouseRectStartX)
???var?maxY:Number=Math.max(evt.stageY,_mouseRectStartY)
with(_mouseRectContainer.graphics){
???clear();
???lineStyle(0);
???beginFill(0xffff00,.5);
???drawRect(0,0,maxX-minX,maxY-minY);}
???_mouseRectContainer.x=minX;
???_mouseRectContainer.y=minY;
??}
??/************************************************************************/
??/**************************drag??handler*******************************/
??private?function?clipMouseDownHandler(evt:MouseEvent):void?{//mouse_down
???var?target:Sprite=evt.target?as?Sprite;
???_currentDragClip=target;
???_currentDragClip.alpha=.5;
???_imageClipDraging=true;
???addChild(target);
???_currentDragClip.startDrag(false);
??}
??/************************************************************************/
??private?function?checkIntersection():Rectangle?{
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/3009.html

热点排行