艺虎动画 > Flash AS3 任意点旋转 变形工具6DN Transfrom tool 类

Flash AS3 任意点旋转 变形工具6DN Transfrom tool 类

翼虎动漫   2010/6/19

transform. tool看起来挺简单,写起来还不是一般复杂,其实功能上跟老外写的那几个没什么大的区别,实现方式不一样,放上demo,稍后放上源代码:

下面就简单介绍下:
1.使用的是位图自定义鼠标,这样比较清析漂亮些~位图是取点颜色,保存在string里,再解码转bitmapdata
2.只侦听stage的MOUSE_MOVE,MOUSE_DOWN,MOUSE_UP事件
3.自写的反应区域判断,包括一般的rect区域和变形的rect区域判断
4.自写的SetMatrix和GetMatrix函数,通过SetMatrix可设置matrix中的tx,ty,scalex,scaley,skewx,skewy,实际上是通过matrix中的(a,b,c,d,tx,ty)算法转换,同样GetMatrix可以取这些值(关键地方,不过对于矩阵理解还是不是很透彻);
5.自写的GetCrossPoint函数,获取能过直线方程获取两直线相交点,这个也很重要
6.状态控制

先放上携带版(整合在一起的单一类文件)的,稍候放上FD项目版的源文件,功能可能还要增加。
用法很简单,usage:

var _transfom:TansformTool = new TansformTool(root as DisplayObjectContainer);
_transfom.AddControl( m1 );
_transfom.AddControl( m2 );
_transfom.AddControl( m3 );
_transfom.AddControl( m4 );
_transfom.Init();

//移除控制:_transfom.AddControl( m1 );
//移除_transfom:_transfom.Clear();