宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3渐变填充(放射性填充)的写法

2016-10-13 00:16:48 点击量:4 标签: 收藏本文

那是因为渐变填充默认的起始点是(0, 0),也就是说,放射性填充的中心点是在所要绘制的对象的左上角,而楼主所绘制的矩形位于(100, 100)的位置,所以只能填充到最外面的黑色。
需要给渐变填充传入一个转换矩阵,将填充的中心点移到矩形的中间:

  1. var container:Sprite = new Sprite(); 
  2. addChild(container); 
  3.  
  4. //CuPlayer.com转换矩阵 
  5. var matr:Matrix = new Matrix(); 
  6. matr.createGradientBox(300, 150, 0, 100, 100); 
  7.  
  8. container.graphics.lineStyle(4,0xff0000); 
  9. //container.graphics.beginFill(0x00ff00,1); 
  10. container.graphics.beginGradientFill(GradientType.RADIAL,[0xff0000,0x00ff00,0x000000],[1,1,1],[0,10,200], matr); 
  11. container.graphics.drawRect(100, 100, 300, 150); 

Matrix表示转换矩阵,它的createGradientBox方法的有5个参数:
第一个参数width:渐变填充范围的宽度
第二个参数height:渐变填充范围的高度
第三个参数rotation:渐变填充的角度
第四个参数tx:渐变填充的中心点在x轴上的偏移量
第五个参数ty:渐变填充的中心点在y轴上的偏移量

createGradientBox(300, 150, 0, 100, 100)
把填充范围设置为宽300、高150的矩形(宽高不同会把填充圆压扁,如果需要保持正圆,设置宽高的值一样就行了,例如把高也设置为300),并将中心点移动到(100,100)的位置,因为是放射性填充,所以填充角度多少都没所谓。

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室