Adobe Flash CS6如何制作百叶窗效果?

2025年03月18日 06:29
有3个网友回答
网友(1):

先新建原件,做一个和舞台等宽,舞台五分之一高长方体,在第二十帧插如关键帧,再将第一帧的长方形选中,打开属性面板,讲长方体的高改为一,创建形状补间。再回到场景,拖入背景图片,新建图层,再第二十帧处插入关键帧,拖如另一张背景图片。再次新建元建,讲刚才的原件用deco工具填充进去,再回到主场景。新建图层,再第二十帧处插入关键帧,再将第二次创建的原件拖入到舞台,最后,将这个图层改为遮罩层。

网友(2):

//如下代码复制到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 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 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 if(mcMask.getChildAt(a).height mcMask.getChildAt(a).height+=p;
else
removeEventListener(event.type,onEnterFrameOut);
break;
}
}
function onEnterFrameOut(event:Event=null):void{
for(var a:uint=0;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;
}


网友(3):

……