flash动作脚本8例.docx
- 文档编号:11389338
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:20
- 大小:20.09KB
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;i this.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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flash 动作 脚本
![提示](https://static.bdocx.com/images/bang_tan.gif)