选择显示字体大小

用flash做随心控制的火焰(2)

下面我们在图层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也能做出非常漂亮的效果的。

  点击:下载源代码


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons