flash动作代码大全控制影片剪辑.docx
- 文档编号:11897672
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:10
- 大小:77.38KB
flash动作代码大全控制影片剪辑.docx
《flash动作代码大全控制影片剪辑.docx》由会员分享,可在线阅读,更多相关《flash动作代码大全控制影片剪辑.docx(10页珍藏版)》请在冰豆网上搜索。
flash动作代码大全控制影片剪辑
flash动作代码大全-控制影片剪辑
LT
5、怎样改变某一影片剪辑的播放速度
functiongo(obj){
with(obj){
nextFrame();
if(_currentframe==_totalframes){
gotoAndStop
(1);
}
}
)
go(mc);
setInterval(go,100,mc);
6、控制影片剪辑移动的方法。
FLASH中能够移动的物体一般是舞台上的MC,并且其实例名为my_mc。
FLASH中物体的移动是在X轴(即水平)方向或Y轴(垂直)方向的运动。
因此,通过控制mc属性中的_x与_y的值就可以达到使其运动的目的。
一、匀速运动
1、水平方向上的向右匀速运动
方法一:
主场景第1帧:
varmx=5;//设定初始速度为5
主场景第2帧:
my_mc._x+=mx;//名称为my_mc的电影实例以步幅5的速度向右移动,
主场景第3帧:
gotoAndPlay
(2);//跳转到第二帧,再次激发my_mc电影实例以步幅5的速度向右移动后又会跳转到此帧,并再次激发运动,如此周而得始地激发,就达到了不断向右运动的目的.
方法二:
主场景第1帧:
varmx=5;//设定初始速度为5
this.onEnterFrame=function(){
my_mc._x+=mx;//不断刷新my_mc的向右运动
};//方法一需要3帧才能运动,而此方法二只需要一帧就可以使其运动,这是主要区别
或者:
varmx=5;//初始速度值为5
onEnterFrame=function(){
my_mc._x+=mx;
};//此方法三与方法二的区别在于,方法二中this.onEnterFrame中的this是指当前时间轴;而在此方法三中直接用onEnterFrame,并未用this时,就表示暗指当前时间轴
或者:
varmx=5;//初始速度值5
my_mc.onEnterFrame=function(){
this._x+=mx;
};//此处的my_mc.onEnterFrame指方法是加在my_mc上的.
方法三:
主场景my_mc上:
onClipEvent(load){
varmx=5;//初始速度值5
}
onClipEvent(enterFrame){
_x+=mx;//触发my_mc实例定义的动作是x轴坐标不断增值5。
}
方法四:
主场景第1帧:
functionmoveToRight(Object,xVar){//定义函数的方法
varmx=xVar;
onEnterFrame=function(){
Object._x+=mx;
};
}
moveToRight(my_mc,5);
方法五:
MovieClip.prototype.mcmove=function(Object,x){
varmx=x;
onEnterFrame=function(){
Object._x+=mx;
};
};
mcmove(my_mc,5);
2、垂直方向上或向下匀速运动
以上实例的运动方向都是水平从左向右匀速运动,如果需要垂直方向上的向下匀速运动只需要把MC的_x属性改为_y。
如:
varmy=5;
this.onEnterFrame=function(){
my_mc._y+=my;
};
MovieClip.prototype.mcmove=function(Object,y){
varmy=y;
onEnterFrame=function(){
Object._y+=my;
};
};
mcmove(my_mc,5);
3、水平方向上的向左匀速运动
水平方向上的向左匀速运动,只需要将上述实例1_系列中的变量varmx=5;更改为varmx=-5;或者,将my_mc._x+=mx;更改为my_mc._x-=mx;
如:
varmx=-5;
my_mc._x=524;//初始my_mc的x坐标。
this.onEnterFrame=function(){
my_mc._x+=mx;
};
或者:
varmx=5;
my_mc._x=524;//初始my_mc的x坐标。
this.onEnterFrame=function(){
my_mc._x-=mx;
};
4、垂直方向上的向上匀速运动
垂直方向上的向下匀速运动更改为向上的匀速运动时,方法同“3、水平方向上的向左匀速运动。
”
如:
varmy=5;
my_mc._y=370;
this.onEnterFrame=function(){
my_mc._y-=my;
};
5、斜方向上的匀速运动
如:
varmx=5,my=3;
my_mc._x=0;
my_mc._y=370;
this.onEnterFrame=function(){
my_mc._x+=mx;
my_mc._y-=my;
};
6、精确起终点代码版:
vark=200;
//速率
varstartx=my_mc._x=0,starty=my_mc._y=400;
//起点坐标
varendx=550,endy=0;
//终点坐标
onEnterFrame=function(){
my_mc._x+=(endx-startx)/k;
my_mc._y+=(endy-starty)/k;
};
二、在一定范围内的来回匀速运动
⑴水平来回:
varstartx=my_mc._x=50;
//startx起点位置
varendx=450;
//endx结束位置
vardis=100;
//dis速率
vardisx=(endx-startx)/dis;
vardisy=(endy-starty)/dis;
vark0=k=1;
//k方向系数
onEnterFrame=function(){
if(my_mc._x>=endx){
k=-k;
}
if(my_mc._x<=startx){
k=k0;
}
my_mc._x+=disx*k;
my_mc._y+=disy*k;
};
⑵斜向来回:
vark0=k=1;
vardis=200;
//dis速率
varstartx=my_mc._x=50,starty=my_mc._y=300;
//起点坐标
varendx=450,endy=50;
//终点坐标
vardisx=(endx-startx)/dis;
vardisy=(endy-starty)/dis;
onEnterFrame=function(){
if(my_mc._x<=startx){
k=k0;
}
if(my_mc._x>=endx){
k=-k;
}
my_mc._x+=disx*k;
my_mc._y+=disy*k;
};
三、变速运动
1、水平方向上的变速运动
⑴减速运动
方法一:
主场景第1帧:
varendPosition=500;
vark=12;
my_mc._x=50;
my_mc._y=200;
主场景第2帧:
my_mc._x+=(endPosition-my_mc._x)/k;
主场景第3帧:
gotoAndPlay
(2);
if(my_mc._x>=(endPosition-0.6)){
my_mc._x=endPosition;
stop();
}
方法二:
varendPosition=475;
vark=12;
my_mc._x=50;
my_mc._y=200;
onEnterFrame=function(){
my_mc._x+=(endPosition-my_mc._x)/k;
if(my_mc._x>(endPosition-1)){
my_mc._x=endPosition;
deleteonEnterFrame;
}
};
如果要实现从右向左运动时,只需要稍改上述的实例减速运动2_1_1_02
varendPosition=50;
vark=12;
my_mc._x=550;
my_mc._y=200;
onEnterFrame=function(){
trace(my_mc._x);
my_mc._x+=(endPosition-my_mc._x)/k;
if(my_mc._x<=endPosition){
my_mc._x=endPosition;
deleteonEnterFrame;
}
};
特别说明:
上述的减速运动代码可广泛运用于实际中,它不仅可用于向上、下、左、右、斜向各个方向上的运动,产生缓冲效果。
也可以运用于透明度和缩放等方面。
如下面的两个例子。
另一个减速缓冲效果:
varendPosition=500;
vark=0.7;
varc=0.2;
my_mc._x=10;
my_mc._y=200;
onEnterFrame=function(){
temp=temp*k+(endPosition-my_mc._x)*c;//此公式常用
my_mc._x+=Math.round(temp);
if(Math.round(temp)==0){
my_mc._x=endPosition;
deleteonEnterFrame;
}
};
透明度上的运用:
varendAlpha=10;
vark=5;
my_mc._alpha=100;
onEnterFrame=function(){
my_mc._alpha+=(endAlpha-my_mc._alpha)/k;
if(my_mc._alpha<=endAlpha){
my_mc._alpha=endAlpha;
deleteonEnterFrame;
}
};
缩放上的运用:
varendscale=600;
vark=6;
my_mc._xscale=my_mc._yscale=1;
onEnterFrame=function(){
trace(my_mc._yscale);
my_mc._xscale=my_mc._yscale+=(endscale-my_mc._yscale)/k;
if(my_mc._yscale>=(endscale-0.1)){
my_mc._yscale=endscale;
deleteonEnterFrame;
}
};
7、影片剪辑遮罩
在舞台中制作一个影片剪辑,并在该影片剪辑内部制作想要的动画效果。
本例中制作了一个包含滚动文字动画的影片剪辑,并将其在舞台中的实例命名为:
text_mc
制作用于遮罩的影片剪辑(无需在时间轴上将其转换为遮罩图层),可以由外部导入的PNG图片或者flash中绘制的半透明形状转化而成。
本例从外部导入了一张半透明的PNG图片,并转换成影片剪辑。
将其在舞台中的实例命名为:
mask_mc
在时间轴上添加以下代码:
mask_mc.cacheAsBitmap=true;
text_mc.cacheAsBitmap=true;
text_mc.mask=mask_mc;
至此,alpha通道遮罩效果已经完成,可以通过“ctrl+enter”测试影片。
实现原理:
通过AS脚本可设置显示对象的遮罩,如要将A作为B的遮罩,则可以写:
B.mask=A
另外显示对象具有一个位图缓存属性,即cacheAsBitmap属性。
开启该属性后(赋值true),就能在遮罩和被遮罩对象直接进行透明映射。
说明:
以上脚本为ActionScript3.0,若使用ActionScript2.0实现此效果,将上面第三点中的“text_mc.mask=mask_mc;”改为“text_mc.setMask(mask_mc);”即可。
8、如何随机设置MC颜色?
方法1、MC实例名为"mc"
mycolor=newColor("mc")
mycolor.setRGB(random(0xffffff))
方法2、MC实例名为"mc"
mycolor=newColor("mc")[
mycolor.setRGB(random(16777215))
方法3、myColor=newColor(mc);
myColorTransform=newObject();//用newObject()为
//setTrandform()创建参数并随机取值
myra=random(100);
myrb=random(255);
myga=random(100);
mygb=random(255);
myba=random(100);
mybb=random(255);
myaa=random(100);
myab=random(255);
myColorTransform={ra:
myra,rb:
myrb,ga:
myga,gb:
mygb,ba:
myba,bb:
mybb,aa:
myaa,ab:
myab};
myColor.setTransform(myColorTransform);
方法4、mycolor=newColor(mc);
mycolor.setRGB(random(255)<<16|random(255)<<8|random(255));
9、随机出现的大小不同的同一个影片剪辑特效:
帧—动作:
a=random(20);
while(Number(a)<=50){
a=Number(a)+1;
setProperty("/snow",_x,random(800));
setProperty("/snow",_y,random(300));
setProperty("/snow",_xscale,random(200));
setProperty("/snow",_yscale,random(200));
setProperty("/snow",_rotation,random(0));
duplicateMovieClip("/snow","snow_adda",a);
}
gotoAndPlay
(1);
影片剪辑,实例名:
snow。
10、复制MC并随机设定子MC的相关属性:
duplicateMovieClip("mc","mc"+i,10+i);
setProperty("mc"+i,_x,random(400));//x坐标
setProperty("mc"+i,_y,random(300));//y坐标
setProperty("mc"+i,_alpha,random(100));//透明度属性
i++;
if(i>200){//设定复制的个数;
i=1;
}
11。
如何在FLASH中重复播放部分影格N次然后再跳转?
SetVariable:
"i"=1
SetVariable:
"time"=5
comment:
time表示重复次数。
comment:
以下是想重复的内容帧名为repeat
…………
If(i<=time)
SetVariable:
"i"=i+1
GotoandPlay(repeat)
EndIf
便可。
12、如何使MC始终跟随鼠标旋转?
先计算MC横纵坐标与鼠标横纵坐标的差值,然后用Math.atan2()来计算旋转角度。
m_x=_root._xmouse-mc._x;
m_y=_root._ymouse-mc._y;
mc._rotation=PI=180/Math.PI*Math.atan2(m_y,m_x);
13、如何做鼠标跟随效果?
答:
基础代码如下,a为步长
mc._x+=(_root._xmouse-mc._x)/a
mc._y+=(_root._ymouse-mc._y)/a
14.按钮控制对象属性用法:
on(release)
{
a1=getProperty("d1",_x)
a2=getProperty("d1",_y)
a3=getProperty("d1",_rotation)
setProperty("d1",_x,a1+20);
setProperty("d1",_y,a2+20);
setProperty("d1",_rotation,a3+45);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flash 动作 代码 大全 控制 影片 剪辑