快速业务通道

点点萤火虫

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11


看效果先。
点击浏览该文件
  先说,头次发这么么复杂的东东,说得不明白的勿砸,后面有源文件的。
1、打开MX,将影片属性的背景设为黑色。
2、新建一MC,名boundbox,内画无填充矩形一个,大小随喜,
3、新建一MC,名yuan,画一填充圆形,大小为4*4,亮黄色。
按此在新窗口浏览图片
4,新建一MC,名fly,在第二帧插入刚才做的MC,yuan.然后在第20帧插入关键帧,把第20帧的alpha改为0。补间动画。然后,新建一层,于第1帧上写上stop();最后一帧关键帧,写上:

lightsoff = true;
gotoAndStop(1); 按此在新窗口浏览图片
5。新建一MC,把fly导入。新建一层,在上面写上AS:stop();选中MCfly,给它写上AS:

onClipEvent(load) {
var flySpeed = 40; // set the speed at which they travel
var lightsoff = true;
//获取活动范围,getBounds()为返回实例最大、最小的X、Y坐标。
var myBounds = _root.boundbox.getBounds(_root);
_parent._x = random(myBounds.xMax); // randomize the starting positions
_parent._y = random(myBounds.yMax);
var a = 6; // 最好取1.1-10数值越小,萤火虫越活跃。
var d = 1.2; // 最好取1.1 - 4,数值越小,移动越快。
var newX = _parent._x;
var newY = _parent._y;
var myXspeed = 0;
var myYspeed = 0;
}
onClipEvent(enterFrame) {
var blink = random(30); //产生随机闪耀效果。越小闪耀越频繁,
if (!blink && lightsoff) {
gotoAndPlay(2);
lightsoff = false;
}
var change = random(5); // randomize the movement
if (change) {
newX = _parent._x + random(flySpeed)-(flySpeed/2);
newY = _parent._y + random(flySpeed)-(flySpeed/2);
}
if (newX > myBounds.xMax) { // check the bounds
newX = myBounds.xMax;
} else if (newX < myBounds.xMin) {
newX = myBounds.xMin;
} else if (newY > myBounds.yMax) {
newY = myBounds.yMax;
} else if (newY < myBounds.yMin) {
newY = myBounds.yMin;
}
myXspeed = ((_parent._x-newX)/a+myXspeed)/d; // find the new point, and start moving in that direction
myYspeed = ((_parent._y-newY)/a+myYspeed)/d;
_parent._x -= myXspeed;
_parent._y -= myYspeed;
}   以上注解,英文是原文件有的,汉字部分是自己试出来的。
最后,给这个元件在库中设置链接,标识符名取:fly。
按此在新窗口浏览图片
6、回到场景,从库中导出boundbox,实例名也取boundbox.。
按此在新窗口浏览图片
7、最后,在主场景中新建一层,上面写上AS。 //随机产生萤火虫数量。

var bugs = random(15)+8;
for (i=0; i<=bugs; i++) {
attachMovie("fly", "fly"+i, i);
}
_root.boundbox._visible=false;
stop ();   好了,回车看看效果。 当然这个还很粗糙,(本人部分还看不懂)可以在细节上多处理一下,让萤火虫的光芒更柔和,还可以写一段随机产生萤火虫大小的AS,让这一切更真实。
  顺便也向高手们请教下下:

if (!blink && lightsoff) {
gotoAndPlay(2);
lightsoff = false;
}
var change = random(5); // randomize the movement
if (change) 这部分不太懂。change和blink都是随机产生的数字,和这个判断条件有什么作用?
源文件:
点击浏览该文件

关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号