开启左侧

利用代码实现的遮罩功能

[复制链接]
etthink 发表于 2009-5-16 23:31:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
百叶窗的效果

  1. //----------画方块前的准备----------
  2. //方块容器的建立与添加,也就是遮罩
  3. var rect:Sprite = new Sprite();
  4. addChild(rect);

  5. //方块的起始宽度为0,高度为舞台宽,坐标的y值。变化的数目为rectnum.每次变化的宽度为rectaddwidth
  6. var rectwidth:Number = 0;
  7. var rectheight:Number = stage.stageWidth;
  8. var rectY:Number = 0;
  9. var rectnum:Number = 25;
  10. var rectaddwidth:Number = 1;

  11. //新建立数组,储存方块坐标值
  12. var myArray:Array = new Array();

  13. //取得舞台完度的方块总数分之一,以便分配方块变化宽度
  14. var i:Number= stage.stageWidth/rectnum;

  15. //找到每个方块的起始x坐标值,并推进数组内
  16. var j:Number;
  17. for (j = 0; j <=rectnum; j ++) {
  18.         myArray.push(i*j);
  19. }

  20. //---------------每帧不断画方块----------
  21. //添加进度帧侦听
  22. rect.addEventListener(Event.ENTER_FRAME,rectwidthchange);
  23. //设置方块宽度随帧的变化而增加
  24. function rectwidthchange(event:Event):void {
  25.         //如果方块宽度小于最终宽度,不断加宽;否则,移去进度帧侦听.
  26.         if ( rectwidth < i-1) {
  27.                 rectwidth += rectaddwidth;
  28.         } else {
  29.                 rect.removeEventListener(Event.ENTER_FRAME,rectwidthchange);
  30.         }
  31.         //每一帧都要清除容器,重新画方块
  32.         rect.graphics.clear();
  33.         rect.graphics.beginFill(0xfc2002);
  34.         //利用for循环逐个画出所有方块
  35.         for (j = 0; j <= rectnum; j ++) {
  36.                 rect.graphics.drawRect(myArray[j],rectY,rectwidth,rectheight);
  37.         }
  38.         rect.graphics.endFill();
  39. }


  40. //--------图片载入---------
  41. var imageloader:Loader = new Loader();
  42. var imageurl:URLRequest = new URLRequest("fd99f5343a73a996a71e122a.jpg");
  43. imageloader.load(imageurl);
  44. addChild(imageloader);

  45. //--------设置遮罩----------
  46. imageloader.mask = rect;
复制代码

mask.zip (67.74 KB, 下载次数: 7)
学教育技术,上教育技术论坛!http://www.etthink.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7846帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )