FLEX-蒙板处理

同事在处理绘图时,总有些超出边界,flex可不管你超不超,照样show出来,而在window编程中有API
selectClipRng来处理,在flex中可以实现,示例如下:

in maskExample.mxml
 1  <? xml version="1.0" ?>
 2  < mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"
 3       width ="100%"  height ="100%" >
 4       < mx:CheckBox  id ="cb1"  label ="enable mask"  x ="26"  y ="258"
selected
="false"  click ="enableMask(cb1.selected);" />
 5       < mx:TextArea  id ="t1"  x ="26"  y ="58"  width ="352"  height ="192"  wordWrap ="true" >
 6           < mx:text > <![CDATA[
       省略
12  ]]> </ mx:text >
13       </ mx:TextArea >
14       < mx:creationComplete >
15           <![CDATA[
16              //enableMask(cb1.selected);
17           ]]>
18       </ mx:creationComplete >
19       < mx:Script >
20           <![CDATA[
21 
22              private function enableMask(mode:Boolean):void
23              {
24                  var mask:Sprite = t1.getChildByName("_masker") as Sprite;
25                  if(mode){
26                      if(!mask){
27                          mask = new Sprite();
28                          mask.name ="_masker";
29                          t1.addChild(mask);
30                          t1.mask = mask;
31                          
32                          var w:int = t1.width;
33                          var h:int = t1.height;
34                          var g:Graphics = mask.graphics;
35                          g.beginFill(0x000000);
36                          g.drawRect(20,20,w-10,h-10);
37                          g.endFill();
38                      }
39                  }else{
40                      if(mask){
41                          t1.mask = null;
42                          t1.removeChild(mask);
43                      }
44                  }
45              }
46           ]]>
47       </ mx:Script >
48       < mx:Label  x ="26"  y ="21"  text ="蒙板示例"  color ="#D72626"  width ="112"  fontSize ="19" />
49      
50 
51  </ mx:Application >
52 
29行:蒙板也必须是目标对象的child.故采用addChild;
30行:就是将sprite设置为蒙板。


转载于:https://www.cnblogs.com/jssy/archive/2007/09/11/889709.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值