应用思考-教育技术论坛
标题:
利用代码实现的遮罩功能
[打印本页]
作者:
etthink
时间:
2009-5-16 23:31
标题:
利用代码实现的遮罩功能
百叶窗的效果
//----------画方块前的准备----------
//方块容器的建立与添加,也就是遮罩
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;
复制代码
(, 下载次数: 8)
上传
点击文件名下载附件
欢迎光临 应用思考-教育技术论坛 (http://etthink.com/)
Powered by Discuz! X3.4