百叶窗的效果
- //----------画方块前的准备----------
- //方块容器的建立与添加,也就是遮罩
- var rect:Sprite = new Sprite();
- addChild(rect);
- //方块的起始宽度为0,高度为舞台宽,坐标的y值。变化的数目为rectnum.每次变化的宽度为rectaddwidth
- var rectwidth:Number = 0;
- var rectheight:Number = stage.stageWidth;
- var rectY:Number = 0;
- var rectnum:Number = 25;
- var rectaddwidth:Number = 1;
- //新建立数组,储存方块坐标值
- var myArray:Array = new Array();
- //取得舞台完度的方块总数分之一,以便分配方块变化宽度
- var i:Number= stage.stageWidth/rectnum;
- //找到每个方块的起始x坐标值,并推进数组内
- var j:Number;
- for (j = 0; j <=rectnum; j ++) {
- myArray.push(i*j);
- }
- //---------------每帧不断画方块----------
- //添加进度帧侦听
- rect.addEventListener(Event.ENTER_FRAME,rectwidthchange);
- //设置方块宽度随帧的变化而增加
- function rectwidthchange(event:Event):void {
- //如果方块宽度小于最终宽度,不断加宽;否则,移去进度帧侦听.
- if ( rectwidth < i-1) {
- rectwidth += rectaddwidth;
- } else {
- rect.removeEventListener(Event.ENTER_FRAME,rectwidthchange);
- }
- //每一帧都要清除容器,重新画方块
- rect.graphics.clear();
- rect.graphics.beginFill(0xfc2002);
- //利用for循环逐个画出所有方块
- for (j = 0; j <= rectnum; j ++) {
- rect.graphics.drawRect(myArray[j],rectY,rectwidth,rectheight);
- }
- rect.graphics.endFill();
- }
- //--------图片载入---------
- var imageloader:Loader = new Loader();
- var imageurl:URLRequest = new URLRequest("fd99f5343a73a996a71e122a.jpg");
- imageloader.load(imageurl);
- addChild(imageloader);
- //--------设置遮罩----------
- imageloader.mask = rect;
复制代码
mask.zip
(67.74 KB, 下载次数: 7)
|