应用思考-教育技术论坛

标题: 利用代码实现的遮罩功能 [打印本页]

作者: etthink    时间: 2009-5-16 23:31
标题: 利用代码实现的遮罩功能
百叶窗的效果

  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;
复制代码

(, 下载次数: 8)




欢迎光临 应用思考-教育技术论坛 (http://etthink.com/) Powered by Discuz! X3.4