Flash AS绘图操作:随意切割位图实验

原创:ybzjllj 。
效果:用鼠标随意画一个形状,拖动此形状,就从原图上切出绘图区域的图来。
注意:非遮罩,感觉比就遮罩简单。
使用了:AS绘图、位图对象、位图填充。 import flash.display.BitmapData;
import flash.geom.Matrix;
//导入一张图片,放在舞台上,转为MC,实例名为“原图”
//“mc”是用来在里面绘图的
var 原图:MovieClip, mc:MovieClip;
var 画线 = false;//画线标志
var bmpImage:BitmapData=new BitmapData(原图._width,原图._height);//创建位图对象
bmpImage.draw(原图,new Matrix());//用“原图”描绘位图对象
//当鼠标按下时
原图.onPress = function() {
if (mc.hitTest(_xmouse, _ymouse, true)) {
  mc.startDrag();  //如果鼠标在mc上,就开始拖动它   
} else {
  //按下鼠标时,鼠标不在复制的MC上,启动画线
  画线 = true;
  mc = this.createEmptyMovieClip("mc", 1);//创建空MC,此操作会同时删除原来绘的图,如果不想删除原来的,就改用数组。
  mc.lineStyle(1, 0xFF0000);  //线条样式
  mc.beginBitmapFill(bmpImage,new Matrix(),false);   //标识位图填充开始
  mc.moveTo(_xmouse-this._x, _ymouse-this._y); //移动画线起点到此
}
};
原图.onMouseUp = function() {
if (画线) {
  画线 = false;
  mc.endFill(); //填充结束
} else {
  mc.stopDrag();
}
};
原图.onMouseMove = function() {
if (画线) {
  mc.lineTo(_xmouse-this._x, _ymouse-this._y); //如果画线状态为真,移动鼠标就画线  
}
};

时间: 2024-10-30 00:10:28

Flash AS绘图操作:随意切割位图实验的相关文章

Android 通过onDraw实现在View中绘图操作的示例

以下是对Android通过onDraw实现在View中绘图操作的示例代码进行了详细的分析介绍,需要的朋友可以过来参考下   Android绘图操作,通过继承View实现,在onDraw函数中实现绘图.下面是一个简单的例子: 复制代码 代码如下: public class AndroidTest extends Activity {     /** Called when the activity is first created. */     @Override     public void

Android 通过onDraw实现在View中绘图操作的示例_Android

Android绘图操作,通过继承View实现,在onDraw函数中实现绘图.下面是一个简单的例子: 复制代码 代码如下: public class AndroidTest extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(save

Android绘图操作onDraw

做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案.不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的 Canvas.不同的时,Android里没有Graphics,而用 Paint代之,当然用法也稍有不同.以下是自定义View的一段代码: @Override public void onDraw(Canvas canvas) { // 首先定义一个paint Paint pa

封装CoreGraphics的API简化绘图操作

封装CoreGraphics的API简化绘图操作   效果   说明 1. 将CoreGraphics的API接口抽象为对象,让绘图变得简单易懂 2. 简化常用的绘制操作 3. 源码长期更新   源码 https://github.com/YouXianMing/CGContextObject // // CGContextObject.h // DrawRect // // Created by YouXianMing on 15/7/2. // Copyright (c) 2015年 You

Android canvas画图操作之切割画布实现方法(clipRect)_Android

本文实例讲述了Android canvas画图操作之切割画布实现方法.分享给大家供大家参考,具体如下: android切割画布的历程不算很难,可是理解起来也比较麻烦,这里写一下我的理解 但是不一定正确: canvas.clipRect(30, 30, 70, 70, Region.Op.XOR); 最后一个参数有多个选择分别是: //DIFFERENCE是第一次不同于第二次的部分显示出来 //REPLACE是显示第二次的 //REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示

网页的超级链接-Adobe Flash Professional CS6操作

问题描述 Adobe Flash Professional CS6操作 Adobe Flash Professional CS6里面怎样做网页的超级链接?谢谢大家

MFC对于static控件在界面上的绘图操作,绘图的擦除

问题描述 MFC对于static控件在界面上的绘图操作,绘图的擦除 用MFC语言画图,每次绘图的时候自动擦除之前的图像,用的是什么函数呢? 解决方案 强制刷新客户区,然后画上新的图形,自然就把原来的清除掉了.http://www.cppblog.com/tx7do/archive/2010/02/27/108564.html 解决方案二: Invalidate(TRUE); 解决方案三: 在static控件上绘图(一)

MFC对于static控件在界面上的绘图操作,绘图的擦除操作

问题描述 MFC对于static控件在界面上的绘图操作,绘图的擦除操作 在MFC中画波纹图,需要先事先擦除旧的数据,具体的函数调用是什么? 解决方案 在Static控件上画图的方法.. 声明两个变量在view或Dialog的头文件中. CWnd* pWnd; //表示控件窗口的变量 CDC* pControlDC; //表示控件窗口的设备描述表.DC 在OnInitialUpdate()函数中进行赋值(View) pWnd=GetDlgItem(IDC_STATICRCT); pControlD

Android canvas画图操作之切割画布实现方法(clipRect)

本文实例讲述了Android canvas画图操作之切割画布实现方法.分享给大家供大家参考,具体如下: android切割画布的历程不算很难,可是理解起来也比较麻烦,这里写一下我的理解 但是不一定正确: canvas.clipRect(30, 30, 70, 70, Region.Op.XOR); 最后一个参数有多个选择分别是: //DIFFERENCE是第一次不同于第二次的部分显示出来 //REPLACE是显示第二次的 //REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示