[转]渐变填充

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

  3. //转换矩阵
  4. var matr:Matrix = new Matrix();
  5. matr.createGradientBox(300, 150, 0, 100, 100);

  6. container.graphics.lineStyle(4,0xff0000);
  7. //container.graphics.beginFill(0x00ff00,1);
  8. container.graphics.beginGradientFill(GradientType.RADIAL,[0xff0000,0x00ff00,0x000000],[1,1,1],[0,10,200], matr);
  9. 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)的位置,因为是放射性填充,所以填充角度多少都没所谓。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值