玩过截图的人都知道截图是怎样一回事,通过截取图片一个地方就能够获取到图片某一个片段。这一个部分在flash 里面可以利用位图的复制像素来实现。通过copyPixels 或者draw 能够获取像素。
现在我们讨论一个话题:在flash里面怎样实现这种截图? 带着这个问题,尝试制作一个demo出来。功能就是获取位图。
所需要的材料:第一就是flash绘图API ,第二就是位图像素操作。利用这两个我们就能够实现出这种交互效果。
设计的图案:
制作思路:首先知道怎样绘制一个矩形,可以上网搜索一下,或者查询一些flash绘图API 是如何操作的。借助绘制这股矩形,我们就能截取到我们所需要的片段。
接下来,为程序写一个基类:Item.as
定义一些常用的方法和属性。
例如绘制矩形。获取位图,定义线条的样式等,判断矩形是否有效
这些方法都是定义在这个基础类当中。
基本接口:获取矩形,裁剪位图,取消操作,命令监听
通过继承这个类实现一个接口,创建如何去选取位图
这个过程当中需要使用绘图API,首先通过鼠标交互绘制一个矩形,这个矩形通过drawRect来进行绘制。
当中对一些矩形进行拖放,和矩形拉伸 则需要通过重新绘制来获取到。这里主要涉及到技术就是绘图API 和鼠标交互。当中没有很难的技术点。关键的地方 使用Rectangle 的使用上,从这个案例当中你会发现这个类会帮助你实现 截图功能。
public class Selector extends Item implements ISelector 这样实现接口方式书写。
我们需要知道怎样通过鼠标交互拖放的时候影响矩形的大小,拉伸和缩放的时候,其实Rectangle 矩形会发生改变,通过这个对象能够获取他的坐标,宽度和高度,从而重绘制矩形带来一定帮助。
思路就是这样。
制作UI:制作UI的时候,我们需要制作三个按钮也可以更加多,因为我只是实现了一个点。可以进行拖放的控制,因此这种设计会简化,然而对更加多的点支持则需要进行修改完善。
按钮的说明:
第一个按钮用于对矩形的缩放,
第二,第三分布的确定和取消的按钮。 用于交互是否裁剪
用于缩放的时候进行操作。
取消和确定按钮。
按钮路径
自定义事件:用于裁剪的位图 自定义的事件
基本用法:
首先先创建一个Selector 类,用于指定两参数,其中是一个容器,一个是stage 舞台。
在容器当中,我们创建了一个位图,这张位图可以是在库链接出来,也可以外部加载出来的
使用的方法很简单。
下面可以下载来玩一下,看看效果如何。