flash动作脚本8例.docx
《flash动作脚本8例.docx》由会员分享,可在线阅读,更多相关《flash动作脚本8例.docx(20页珍藏版)》请在冰豆网上搜索。
flash动作脚本8例
FLASH实例动作脚本8例代码集锦
1、下雨:
新键一个影片剪辑。
在里面作出来一滴雨落下得效果。
然后设置他的实例名称为“CC”然后返回到场景1。
在之后就是从库里面把那个影片剪辑托到舞台上。
在之后在第2。
3贞上面插入关键贞。
在第一贞动作里面写上
vari;i=1;
在第2贞上面写上
duplicateMovieClip("CC","CC"+i,i);m=this["CC"+i];m._x=random(550);
m._y=random(450);i=i+1;if(i==50){i=10}
第3贞上面写上
gotoAndPlay
(2);
2、下雪
将雪花拖入到主场景中,放置于舞台外,并封装为snow_mc,
在第一帧as编辑区里加入下面的AS语句:
stop();
vari;
//产生60个小雪花
for(i=1;i<60;i++){
//产生新的雪花剪辑元件
snow_mc.duplicateMovieClip("snow"+i+"_mc",i);
//新的雪花的X,Y坐标
eval("snow"+i+"_mc")._x=random(800);
eval("snow"+i+"_mc")._y=random(560);
//新的雪花的形变
scale=random(60)+50;
//不同的透明度,产生层次感
eval("snow"+i+"_mc")._alpha=scale;
//不同的大小,产生层次感
eval("snow"+i+"_mc")._xscale=scale;
eval("snow"+i+"_mc")._yscale=scale;
//加入控制雪花的AS语句
snow(eval("snow"+i+"_mc"));
}
//这个函数是用来产生一个新的雪花
functioncreateSnow(){
//深度递加
i++;
//产生实例
snow_mc.duplicateMovieClip("snow"+i+"_mc",i);
eval("snow"+i+"_mc")._x=random(800);
eval("snow"+i+"_mc")._y=random(560);
scale=random(60)+50;
eval("snow"+i+"_mc")._alpha=scale;
eval("snow"+i+"_mc")._xscale=scale;
eval("snow"+i+"_mc")._yscale=scale;
snow(eval("snow"+i+"_mc"));
}
//加入控制雪花的AS语句的函数
functionsnow(snow_mc){
snow_mc.onLoad=function(){
//舞台大小
stage_x=800;
stage_y=560;
//用来判断是否降落
this.moving=true;
//风向和风力
windx=(_xmouse-stage_x/2)/100;
};
//风向和风力随鼠标的移动而改变
snow_mc.onMouseMove=function(){
windx=(_xmouse-stage_x/2)/100;
updateAfterEvent();
};
snow_mc.onEnterFrame=function(){
//判断moving
if(this.moving){
//随机数用来产生摇摆效果
s=random
(2);
//雪花下落
this._y+=10;
if(s==0){
this._x+=5;
}elseif(s==1){
this._x-=5;
}
//加上风力
this._x+=windx;
//超出舞台就初始化
if(this._y>stage_y||this._x<0){
this._y=0;
this._x=random(stage_x);
}
//产生旋转效果
this._rotation=random(180);
}
}
}
3、点播:
在场景中添加输入文本框,使变量名为x。
设置四个影片剪辑,实例名分别为:
a、b、c、d。
帧-动作:
functionplay(name)
{tellTarget(name)
{gotoAndPlay
(2);
}}
在场景中添加按钮,按钮-动作:
on(release){name=x;this.play(name);
}
发布后,在文本框中输入实例名,按按钮就播放对应的影片剪辑。
4、画笔:
画笔一:
帧-动作:
this.createEmptyMovieClip("canvas_mc",999);
varisDrawing:
Boolean=false;
//
clear_btn.onRelease=function(){
canvas_mc.clear();
};
//
varmouseListener:
Object=newObject();
mouseListener.onMouseDown=function(){
canvas_mc.lineStyle(5,0xFF0000,100);
canvas_mc.moveTo(_xmouse,_ymouse);
isDrawing=true;
};
mouseListener.onMouseMove=function(){
if(isDrawing){
canvas_mc.lineTo(_xmouse,_ymouse);
updateAfterEvent();
}
};
mouseListener.onMouseUp=function(){
isDrawing=false;
};
Mouse.addListener(mouseListener);
建一个清除按钮,实例名:
clear_btn。
——————————————————————————————————————————————
画笔二:
帧-动作:
varempiremue=newContextMenu();
//删除原始菜单状态!
empiremue.hideBuiltInItems();
//自定义菜单项目!
empiremue.customItems.push(newContextMenuItem("鼠标写字",h1));
empiremue.customItems.push(newContextMenuItem("清除字迹",h2));
empiremue.customItems.push(newContextMenuItem("退出程序",h3,true));
empiremue.customItems.push(newContextMenuItem("退出写字",h4));
functionh3(){
fscommand("quit");
}
functionh4(){
Mouse.show();//显示鼠标
_root.clear();
//_root.pen=false;
_root.onMouseMove=function(){
updateAfterEvent();
pen._x=_root._xmouse+1200;
pen._y=_root._ymouse+800;
}}
functionh1(){
stop();
//_root.mc._visible=false;//影片不可见
varxx=Math.random()*0xFFFFFF;
//Mouse.show();//显示鼠标
_root.createEmptyMovieClip("pen",1);
pen.lineStyle(4,0x0082FF);
pen._x=200;
pen._y=200;
//浅兰色笔体
pen.beginFill(0x0082FF,100);
pen.lineTo(20,-8);
pen.lineTo(65,-8);
pen.lineTo(65,8);
pen.lineTo(20,8);
pen.lineTo(20,-8);
pen.beginFill(0x0082FF,100);
endFill(pen);
pen.beginFill(xx,100);
pen.lineStyle(4,xx)
pen.lineTo(0,0);
pen.lineTo(20,8);
pen.lineTo(20,-8);
endFill(pen);
pen._rotation=-50;
Mouse.hide();
//定义onMouseDown函数
//Math.random()*0xFFFFFF用代替可使每笔的颜色不同
_root.onMouseDown=function(){
//设定线条样式
_root.lineStyle(4,xx,100);
//绘制直线;
_root.moveTo(_root._xmouse,_root._ymouse);
//定义变量isdrawing,并赋值为真
isdrawing=true;
}
_root.onMouseMove=function(){
updateAfterEvent();
pen._x=_root._xmouse;
pen._y=_root._ymouse;
//如果变量为真
if(isdrawing==true){
//绘制直线断
_root.lineTo(_root._xmouse,_root._ymouse);
//刷新画面;
updateAfterEvent();
}
}
_root.onMouseUp=function(){
//设定变量isdrawing的值为假
isdrawing=false;
}
}
functionh2(){
Mouse.hide();
_root.clear();
}
_root.menu=empiremue;
画笔三:
用鼠标画线
onMouseDown=function(){
lineStyle(2,0*000000,100)
lineTo(_xmouse,_ymouse)
}
onMouseMove=function(){
if(a){
lineStyle(2,0x000000,100);//指定线条的粗度为2,颜色为黑色,透明度为100;
lineTo(_xmouse,_ymouse);//画线至鼠标所在位置;
}
updateAfterEvent();//强制刷新;Flash强制进行显示刷新工作。
该语句不依赖于时间帧的触发。
};
onMouseDown=function(){
a=true;//鼠标按下,给a变量赋值true,即执行上面的if后面括号内的语句,开始画线;
moveTo(_xmouse,_ymouse);//重新定位开始点;
};
onMouseUp=function(){
a=false;//鼠标松开,给a变量赋值false,不执行上面的if后面括号内的语句,停止画线;
};
画笔四:
*两点间画直线
*画螺旋线
*画正方形、圆、椭圆
*抛物线
*正弦、余弦线
使用方法:
加到帧中就可
//画直线
///x1,y1:
起点坐标
//x2,y2:
终点坐标
//k是层次
Movieclip.prototype.drawline=function(x1,y1,x2,y2,k){
this.linestyle
(1);
this.moveTo(x1,y1);
this.lineTo(x2,y2);
};
//从(0,0)到(100,100)画一条线
_root.createEmptyMovieClip("mc",10);
mc.drawline(0,0,100,100);
//画螺旋线
//w、h为宽和高
//f控制线的长短,用弧度表示
Movieclip.prototype.drawhelix=function(w,h,f){
for(vari=0;ithis.lineTo(x=Math.sin(i)*i*w,y=Math.cos(i)*i*h);
this.linestyle
(1);
}
};
//以(100,100)为中心画螺旋线
_root.createEmptyMovieClip("luo",1);
with(luo){
drawhelix(5,5,13);
_x+=100;
_y+=100;
}
//多功能函数,可画圆,椭圆,正多边形等
//n为边数
Movieclip.prototype.drawmany=function(w,h,n){
f=2*Math.PI;
for(vari=0;i<=f/n*(n+1);i+=f/n){
this.lineTo(x=Math.sin(i)*w,y=Math.cos(i)*h);
this.linestyle
(1);
}
};
//画一正五边形
_root.createEmptyMovieClip("duobian",2);
with(duobian){
drawmany(50,50,5);
_x+=250;
_y+=100;
//5为多边形的边数,6.3为2pai
}
//画一椭圆
_root.createEmptyMovieClip("tuo",3);
with(tuo){
drawmany(25,50,100);
_x+=400;
_y+=100;
}
//圆
_root.createEmptyMovieClip("yuan",4);
with(yuan){
drawmany(50,50,100);
_x+=400;
_y+=300;
}
//抛物线
Movieclip.prototype.drawparabola=function(l,r,k){
for(vari=-l;i<=r;i+=1){
this.lineTo(x=i,y=k*i*i);
this.linestyle
(1);
}
};
//调用
_root.createEmptyMovieClip("parabola",100);
with(parabola){
drawparabola(50,50,0.05);
_x+=200;
_y+=200;
//顶点坐标
}
//正弦线,余弦类似
Movieclip.prototype.drawsin=function(n,k){
for(vari=0;i<=90*n;i+=1){
this.lineTo(x=i,y=k*Math.sin(i*Math.PI/180));
this.linestyle
(1);
}
};
_root.createEmptyMovieClip("sin",101);
with(sin){
drawsin(4,50);
_x+=200;
_y+=200;
//顶点坐标
}
Movieclip.prototype.drawwave=function(w,h){
for(vari=0;i<=6.3;i+=0.01){
this.lineTo(x=w/Math.cos(i),y=h*Math.sin(i)/Math.cos(i));
this.linestyle
(1);
}
};
_root.createEmptyMovieClip("wave",105);
with(wave){
drawwave(100,100);
_x+=200;
_y+=200;
//顶点坐标
}
5、鼠标跟随时钟:
建一个实例名为ttmove的影片剪辑,其中有一个动态文本框(实例名:
textclock)和一个背景层。
把该影片剪辑放到一帧中。
帧的动作代码:
_root.onEnterFrame=function(){
//startDrag(this.ttmove,true);
ttmove._x+=(_xmouse-ttmove._x)/5;
ttmove._y+=(_ymouse-ttmove._y)/5;
//ttmove._x+=_xmouse-ttmove._x;
//ttmove._y+=_ymouse-ttmove._y;
myDate=newDate();
varseconds=myDate.getSeconds();
varminutes=myDate.getMinutes();
varhours=myDate.getHours();
varyears=myDate.getFullYear();
varmonths=myDate.getMonth()+1;
vardates=myDate.getDate();
//if(hours<12){
//ampm="AM";
//}
//else{
//ampm="PM";
//}
//while(hours>12){
//hours=hours-12;
//}
if(hours<10){
hours="0"+hours;
}
if(minutes<10){
minutes="0"+minutes;
}
if(seconds<10){
seconds="0"+seconds;
}
if(months<10){
months="0"+months;
}
if(dates<10){
dates="0"+dates;
}
myclock.hourHand._rotation=myDate.getHours()*30+myDate.getMinutes()/2;
//hourhand2._rotation=myDate.getHours()*15+myDate.getMinutes()/4;
myclock.minuteHand._rotation=myDate.getMinutes()*6+myDate.getSeconds()/10;
myclock.secondHand._rotation=myDate.getSeconds()*6;
//monthhand._rotation=myDate.getDate()*12;
//weekhand._rotation=myDate.getDay()*51;
//now=newDate();
dagen=newArray("星期天","星期一","星期二","星期三","星期四","星期五","星期六");
day=dagen[myDate.getDay()];
ttmove.textclock.text=years+"-"+months+"-"+dates+""+day+""+hours+":
"+minutes+":
"+seconds;
};
stop();
varbgcolorp=Math.round(Math.random()*13);
_root.bgcolor.gotoAndStop(bgcolorp);
varmouseListener:
Object=newObject();
mouseListener.onMouseWheel=function(delta:
Number){
trace(delta);
myclock._xscale+=delta*3;
myclock._yscale=myclock._xscale;
if(myclock._yscale<=0){
mycloce._yscale=1;
}
if(myclock._xscale<=0){
myclock._xscale=1;
}
};
Mouse.addListener(mouseListener);
6、影片剪辑跟随鼠标自动缩放:
建两个影片剪辑,实例名分别是:
1、3。
建两个帧,第一帧-动作:
setProperty("1",_x,_root._xmouse/2);
setProperty("1",_y,_root._ymouse/2);
setProperty("1",_xscale,Number(_xmouse)/550*100);
setProperty("1",_yscale,Number(_ymouse)/200*100);
setProperty("3",_x,_xmouse/2);
setProperty("3",_y,_ymouse+(400-_ymouse)/2);
setProperty("3",_xscale,_xmouse/550*100);
setProperty("3",_yscale,(400-_ymouse)/200*100);
第二帧-动作:
gotoAndPlay
(1);
7、影片剪辑跟着鼠标转动:
建一个影片剪辑,影片剪辑动作:
//Thisonechouldbeprettyselfexplanatory.
//Basicallyitusesbasictrigonometrytofigureouttheangle
//atwhichtheclipshouldberotated
//Questions?
patrickmineault@sympatico.ca
onClipEvent(load){
X=this._x;
Y=this._y;
}
onClipEvent(mouseMove){
Xm=_root._xmouse;
Ym=_root._ymouse;
Xdiff=Xm-X;
Ydiff=-(Ym-Y);
radAngle=Math.atan(Yd