flash动作代码大全控制影片剪辑.docx

上传人:b****1 文档编号:10659881 上传时间:2023-05-27 格式:DOCX 页数:16 大小:19.49KB
下载 相关 举报
flash动作代码大全控制影片剪辑.docx_第1页
第1页 / 共16页
flash动作代码大全控制影片剪辑.docx_第2页
第2页 / 共16页
flash动作代码大全控制影片剪辑.docx_第3页
第3页 / 共16页
flash动作代码大全控制影片剪辑.docx_第4页
第4页 / 共16页
flash动作代码大全控制影片剪辑.docx_第5页
第5页 / 共16页
flash动作代码大全控制影片剪辑.docx_第6页
第6页 / 共16页
flash动作代码大全控制影片剪辑.docx_第7页
第7页 / 共16页
flash动作代码大全控制影片剪辑.docx_第8页
第8页 / 共16页
flash动作代码大全控制影片剪辑.docx_第9页
第9页 / 共16页
flash动作代码大全控制影片剪辑.docx_第10页
第10页 / 共16页
flash动作代码大全控制影片剪辑.docx_第11页
第11页 / 共16页
flash动作代码大全控制影片剪辑.docx_第12页
第12页 / 共16页
flash动作代码大全控制影片剪辑.docx_第13页
第13页 / 共16页
flash动作代码大全控制影片剪辑.docx_第14页
第14页 / 共16页
flash动作代码大全控制影片剪辑.docx_第15页
第15页 / 共16页
flash动作代码大全控制影片剪辑.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

flash动作代码大全控制影片剪辑.docx

《flash动作代码大全控制影片剪辑.docx》由会员分享,可在线阅读,更多相关《flash动作代码大全控制影片剪辑.docx(16页珍藏版)》请在冰点文库上搜索。

flash动作代码大全控制影片剪辑.docx

flash动作代码大全控制影片剪辑

flash动作代码大全

(二)---控制影片剪辑

控制影片剪辑

    

1、控制影片剪辑的播放与停止:

tellTarget命令

     如:

tellTarget(“C1”)

     {gotoAndStop

(2);}//跳影片剪辑实例C1的第2帧并停止。

2、拖动影片剪辑:

影片剪辑-动作:

on(release){

stopDrag();

}

on(press){

startDrag(this);

mx.behaviors.DepthControl.bringToFront(this);

}

3、固定区域内拖动影片剪辑:

影片剪辑-动作:

onClipEvent(mouseDown){startDrag(this,true,50,100,666,200);

}

onClipEvent(mouseUp){stopDrag();

mx.behaviors.DepthControl.bringToFront(this);}

4、简单的控制影片的播放、暂停、前进、后退、停止

1、打开flash,按ctrl+F8,新建立一个影片剪辑,并起名字为mc。

需要先做一个简单的移动动画的影片剪辑。

就做一个圆形的滚动效果吧。

2、回到舞台工作区,按F11打开库,将mc影片剪辑拖放到舞台中。

并给这个实例起个名字叫mc。

(现在就可以按ctrl+回车测试效果,你可以看到这个圆形一直在不停的移动。

3、添加脚本,现在要让这个mc在影片一开始不要自动播放,不然怎么来控制它呢。

咱们把脚本写在时间轴的关键桢上。

选中时间轴的第一桢,按F9打开动作面板,选择专家模式,输入:

_root.mc.stop();(_root代表舞台,这个脚本的意思就是,舞台上名字叫mc的实例停止播放。

4、现在咱们来制作几个按钮,分别表示播放、暂停、前进、后退、停止。

并摆放在舞台上。

关于按钮的制作方法我就不多介绍。

 5、现在要添加控制影片的脚本。

这次把脚本直接写在舞台上这些按钮的身上。

选中播放按钮,打开动作面板,输入:

on(release){

_root.mc.play();

}

  如果要在按钮身上写脚本的话,必须使用on(事件){//脚本程序}的格式来写!

上面的脚本作用就是:

当你在这个按钮上按一下鼠标(release事件)的时候,就会执行下面的_root.mc.play();程序,它的意思是让舞台上的mc开始播放!

  6、同理:

咱们选中舞台上的暂停按钮,在它上面输入:

on(release){

_root.mc.stop()

}

  然后依次在快退上输入:

on(release){

_root.mc.prevFrame();//prevFrame表示回到动画的上一桢

}

  在快进的按钮上输入:

on(release){

_root.mc.nextFrame();

}

  在停止的按钮上输入:

on(release){

_root.mc.gotoAndStop

(1);//跳到mc影片的第一桢,并停止播放!

}

  好了,到现在为止就结束啦,你可以按ctrl+回车测试一下你的成果咯。

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);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2