论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

有关正确复制图片的方法

文章类别:Flash AS | 发表日期:2009-8-12 10:49:31

有关正确复制图片的方法

拖动鼠标生成选择框的时候是正确的,可以在左上角生成复制的内容,但是生成选择框之后拖动的话,怎样正确复制的图像内容?

代码如下:

//stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
var selectBox:Sprite = new Sprite();//生成选择框
var recordX:Number;//记录初始x坐标
var recordY:Number;//记录初始y坐标
var endX:Number;//记录结束x坐标
var endY:Number;//记录结束y坐标
var moveX:Number;//记录移动之后x坐标
var moveY:Number;//记录移动之后y坐标
var myImage:Bitmap;//显示图片的容器
var dragFlag:Boolean=false;//用于判断selectBox是否正在拖动
var clickPoint:Point;
initStage();
function initStage() {
    myImage=new Bitmap();
    addChild(myImage);
}
bg.addEventListener(MouseEvent.MOUSE_DOWN,startDraw);
selectBox.addEventListener(MouseEvent.MOUSE_DOWN,dragSelectBox);//拖动selectBox事件
selectBox.addEventListener(MouseEvent.MOUSE_UP,stopDragSelectBox);
function dragSelectBox(_evt:MouseEvent):void {
    _evt.currentTarget.startDrag();
    dragFlag=true;
}
function stopDragSelectBox(_evt:MouseEvent) {
    if (dragFlag==true) {
        createJPG(mc_image,selectBox,selectBox.localToGlobal(clickPoint).x,selectBox.localToGlobal(clickPoint).y);
        selectBox.stopDrag();
        dragFlag = false;//
    }
}
//开始绘制
function startDraw(_evt:MouseEvent):void {
    stage.addEventListener(Event.ENTER_FRAME,drawSelectBox);
    recordX = mouseX;
    recordY = mouseY;
    clickPoint = new Point(recordX,recordY);
    trace("sbssb")
}
//绘制选择框
function drawSelectBox(_evt:Event):void {
    selectBox.x=selectBox.y=0;//让坐标回去
    selectBox.graphics.clear();
    selectBox.graphics.lineStyle(1,0x000000);
    selectBox.graphics.beginFill(0xffffff,0.7);
    selectBox.graphics.drawRect(recordX,recordY,mouseX-recordX,mouseY-recordY);
    selectBox.graphics.endFill();
    addChild(selectBox);
    stage.addEventListener(MouseEvent.MOUSE_UP,endDraw);// 鼠标在舞台上放开时的事件.
}
//绘制结束
function endDraw(_evt:MouseEvent):void {
    stage.removeEventListener(Event.ENTER_FRAME,drawSelectBox);
    selectBox.stopDrag();
    dragFlag = false;//
    endX = mouseX;
    endY = mouseY;
    createJPG(mc_image,selectBox,Math.min(recordX,endX),Math.min(recordY,endY));
    stage.removeEventListener(MouseEvent.MOUSE_UP,endDraw);// 鼠标在舞台上放开时的事件.
}
function createJPG(m:MovieClip,box:Sprite,originX:Number,originY:Number) {
    removeChild(myImage);
    var jpgSource:BitmapData= new BitmapData (m.width, m.height);
    jpgSource.draw(m);
    var rect:Rectangle = new Rectangle(originX,originY,box.width,box.height);
    //var pt:Point = new Point(box.x, box.y);
    var pt:Point = new Point(0, 0);
    var jpgOut:BitmapData= new BitmapData(box.width, box.height);
    jpgOut.copyPixels(jpgSource, rect, pt);
    myImage = new Bitmap(jpgOut);
    addChild(myImage);
}

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058