Adobe Flash CS6如何制作百叶窗效果? 5
展开全部
//如下代码复制到F9动作面板中并运行,效果见附件:
/*
* @author Jusbe
*
*
*/
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
var page:uint=new uint(10);//页数
var speed:uint=new uint(5);//速度,秒
var isIn:Boolean=new Boolean(true);//进=true;出=false;
var pageHeight:Number=new Number(stage.stageHeight/page);
var pageWidth:Number=new Number(stage.stageWidth);
var p:Number=new Number(stage.frameRate*speed/pageHeight);
var mcMask:Sprite=new Sprite();
addChild(mcMask);
if(isIn){
addEventListener(Event.ENTER_FRAME,onEnterFrameIn);
for(var i:uint=0;i<page;i++){
this["mc_"+i.toString()]=getShape(.1);
this["mc_"+i.toString()].x=0;
this["mc_"+i.toString()].y=i*pageHeight;
mcMask.addChild(this["mc_"+i.toString()]);
}
}else{
addEventListener(Event.ENTER_FRAME,onEnterFrameOut);
for(var a:uint=0;a<page;a++){
this["mc_"+a.toString()]=getShape(pageHeight);
this["mc_"+a.toString()].x=0;
this["mc_"+a.toString()].y=a*pageHeight;
mcMask.addChild(this["mc_"+a.toString()]);
}
}
this.mask=mcMask;
function onEnterFrameIn(event:Event=null):void{
for(var a:uint=0;a<mcMask.numChildren;a++){
if(mcMask.getChildAt(a).height<pageHeight)
mcMask.getChildAt(a).height+=p;
else
removeEventListener(event.type,onEnterFrameOut);
break;
}
}
function onEnterFrameOut(event:Event=null):void{
for(var a:uint=0;a<mcMask.numChildren;a++){
if(mcMask.getChildAt(a).height>1)
mcMask.getChildAt(a).height-=p;
else{
removeEventListener(event.type,onEnterFrameOut);
break;
}
}
}
function getShape(h:Number):Shape{
var mc:Shape=new Shape();
mc.graphics.beginFill(0x000000);
mc.graphics.drawRect(0,0,pageWidth,h);
mc.graphics.endFill();
return mc;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询