万卷书   首页 > 电脑书籍 > Flash > 用flash做随心控制的火焰(2)
 
  接着新建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);

上一页 下一页