下面我们在图层action中设置相应的action,以便对动画片进行控制,首先在第一桢设置如下as:
if (Number(/:flameTop) == 1) {
//如果mc名字为1
gotoAndPlay("a");
//跳转到祯a
} else if (Number(/:flameTop) == 2) {
//如果mc名字为2
gotoAndPlay("b");
//跳转到祯b
} else if (Number(/:flameTop) == 3) {
//如果mc名字为3
gotoAndPlay("c");
//跳转到祯c
} else if (Number(/:flameTop) == 4) {
//如果mc名字为4
gotoAndPlay("d");
//跳转到祯d
} else if (Number(/:flameTop) == 5) {
//如果mc名字为5
gotoAndPlay("e");
//跳转到祯e
}
分别在第10桢,第20祯,第30祯,第40祯,第50祯设置如下as:
tellTarget ("flameBottom") {
gotoAndStop(/:flameBottom);
}
分别在第19桢,第29祯,第39祯,第49祯,第60祯设置as为stop():
下面新建一个button 组件drag_button,在组件的hit桢插入一个关键桢,并画一个正方形,其它祯不放任何对象,我们把组件drag_button用做隐形按钮,如图14所示:
图14
接着新建mc命名为drag_MC,将组件drag_button拖到编辑区中,然后在插入两个关键桢,再第一关键祯中加as: looper = 1;// 设置变量并赋初值为1
在第二个关键桢中加as:
oldX = newX;
oldY = newY;
//定义两个表示左边的变量
newX = getProperty("", _x);
//取得对象的x坐标值
newY = getProperty("", _y);
//取得对象的y坐标值
Xspeed = oldX-newX;
//给变量赋值为新旧x 坐标的差
Yspeed = oldY-newY;
//给变量赋值为新旧y 坐标的差
if (Number(Xspeed)<0) {
//如果火焰摆动到最左方
Xspeed = Xspeed*-1;
//开始向右摆动
}
if (Number(Yspeed)<0) {
//如果火焰摆动到最上方
Yspeed = Yspeed*-1;
//开始向下摆动
}
/:totSpeed = Number(Xspeed)+Number(Yspeed);
if (Number(/:totSpeed)<10) {
/:totSpeed = 10;
//设置最小速度为10
} else if (Number(/:totSpeed)>20) {
/:totSpeed = 20;
//设置最大速度为20
}
第三个关键祯中加as:
if (Number(looper)<1000) {
//如果循环次数不到1000的话
duplicateMovieClip("/smoke_0", "smoke_" add looper, looper);
//不断的复制smoke_0对象
setProperty("/smoke_" add looper, _x, getProperty("", _x));
//设置复制出的smoke_0对象的x坐标
setProperty("/smoke_" add looper, _y, getProperty("", _y));
//设置复制出的smoke_0对象的x坐标
set("/smoke_" add looper:myDepth, looper);
//设置复制出的smoke_0对象的深度
looper = Number(looper)+1;
//循环次数加一
} else {
looper = 1;
}
gotoAndPlay(2);
//循环结束后跳转到第2祯
最后我们需要建立一个空的mc命名为smoke_0,里面不放置任何对象,只写一些控制用的as,设立三个关键桢,第一个关键祯加as:
orgY = getProperty("", _y);
//取的对象的y坐标
myXstep = /:windSpeed/(Number(-1)+Number(random(3)));
myYstep = -10-random(/:smoothness);
mySCALEstep = 100;
//分别给三个变量赋值
第二关键祯加如下as:
setProperty("", _x, Number(getProperty("", _x))+Number(myXstep));
//设置对象的x坐标
setProperty("", _y, Number(getProperty("", _y))+Number(myYstep));
//设置对象的y坐标
setProperty("", _alpha, mySCALEstep);
//设置对象的透明度
mySCALEstep = mySCALEstep-/:totSpeed;
if (Number(mySCALEstep)<0) {
removeMovieClip("");
}
第三个关键祯加as: gotoAndPlay(2);
最后回到主场景中,将组件flame_graphic和组件smoke_0放置到主场景的合适位置,如图15所式:
图15
这样,一个可以随意控制的火焰效果就做好了,虽然其中用到了许多as, 但是都是一些基本as的结合应用,只要你开阔自己的思路,用简单的as也能做出非常漂亮的效果的。
点击:下载源代码
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
Flash CS4基础入门
如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页
人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼
查看所有0条评论>>