欢迎来到天天文库
浏览记录
ID:51675192
大小:2.23 MB
页数:13页
时间:2020-03-14
《FlashActionScript3.0代码控制图形的变化.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、代码控制图形的变化显示对象的缩放方法基本上大同小异,scaleX和scaleY是display.Object的基类的重要属性之一,它们决定了从注册点开始水平方向和垂直方向的缩放比例。无论我们对矢量图还是位图都可以使用这样的方法。我们先来画一个矩形。这个矩形是(0,0)为起点,(200,200)为终点,填充红色的矩形。如果我这个时候trace(canvas.scaleX,canvas.scaleY);输出2个1。这个scaleX和scaleY分别代表的是水平方向和垂直方向的缩放。如果我为scaleX赋值2,代表水平方向放大2倍。还有一种比较特殊的缩放方式叫九切片方式sc
2、ale9Grid,它是对图形当中的不同区域采取不同的缩放策略。来看例子,我们先用矢量绘图绘制一个分为9个部分的图形。在绘制完后,我可以指定一个新的类Rectangle。Rectangle与Point的概念比较类似,它是一个矩形的区域和范围,也是抽象意义上的概念,并不是要在显示的场景上画一个矩形,而是说有这样一个空间概念。这个矩形区域指定的是在(50,50)坐标上开始,宽50,高50的这样一个区域。然后我可以为这个矩形区域指定一个九切片的范围。实际上是为canvas的scale9Grid指定一个我们刚才定义区域。然后把原来的图形变为2倍。我们看一下结果。整个图形的宽和高
3、放大2倍,4个角的图形没有变化,其他部分都发生了变化。实际上刚才指定的范围就是中央的范围。中央的部分作最大填充,四个角的部分不作缩放,四个边只做x轴和y轴的缩放这是九切片的一个基本原则。除了scaleX,scaleY,scale9Gird之外,还有一种方式,就是通过Matrix类转换矩阵来进行缩放。Matrix本身也是数学概念,是一个转换矩阵,转换矩阵的时候它有2个参数,a对应横向的缩放值,d对应纵向的缩放值。再来看例子,前面的代码跟前边例子一样。新声明一个Matrix的实例mrx。然后把横向跟纵向变为原来的2倍,mrx.a=2;mrx.d=2;把然后我们把mrx赋给
4、transform下的matrix属性。这就是第三种缩放方法。实际上Matrix包含着六个有效参数,这六个有效参数分别有以下不同的规律,a和d刚刚讲过,代表横纵向的缩放比例;b和c分别代表了它的倾斜程度;tx和ty分别代表的是在横坐标和纵坐标上图形的偏移量。比如说tx指定200的偏移,输出结果是这样的。来看倾斜,首先声明一个变量θ作为倾斜度,c代表水平方向的倾斜,它有具体计算公式。另外还有比较复杂的旋转。我们先让图形向右向下移动200个像素,然后定义一个旋转的角度,下面是计算公式,只有当4个配合的时候才会发生旋转。前边的旋转可能比较复杂,因为他要分别设置4个不同的参数
5、。为了能够更方便,其实AS里边也提供了MatrixTransform这样一个静态的类。它可以像Matrix一样直接计算一些具体的变化。这里举一个比较简单的例子,要使用MatrixTransform这个静态类,首先要导入类包,然后setRotation设置旋转,后边是旋转的矩阵mtx,旋转角度45。因为没有让它移动了,所以有一部分旋转到场景外去了。要使用MatrixTransform类一定要提前导入相应的类包。类似于存取器函数get和set,既然setRotation可以设置它的旋转角度,那么也可以通过getRotation来读出它的旋转角度。比如我用Matrix的a,
6、b,c,d旋转之后,我可以导入必要的包,然后输出getRotation(mtx);这样就可以在输出面板看到旋转的角度。
此文档下载收益归作者所有