| 新手先不要吐血,让我们一步步深入察看
第一步:产生我们Flash MX的初始化//init 到//init end部分,这段开始决定了屏幕的显示模式是拉伸式显示全部;接着产生我们需要的一切mc;产生以后读入一个jpg雪的图片,并附带一个读入的loader,当图片完全读入的时候设置图片的相应属性并“自杀”(自动踢出内存);
第二步,进入程序主循环。使用idDream来代表主循环timer 的id,并且每10毫秒刷新一次,这样就进入了内部子程序,里面也有自己的初始化、运行期、结束处理。
做光柱的算法我已经优化到这样子:
tempx+= i*2*keynum/10 //reverse set
keynum=tempx<250 ? 1 : -1; //reverse key
状态每2次换一次,分别获得光柱当前划线的左右位置,而且通过keynum变量方便的设置中点,即250(随意一个什么位置)。
结合
mc.moveTo(tempx,tempy);
mc.lineTo(tempx, tempy+offy);
即可画出一个光柱的模型,稍加处理即可得到下面的样子。(图2)
而所谓的光射的环境效果,我们可以简单尝试下面的算法:
var tempcolor=clr.getTransform();
tempcolor.rb+=i/200; //color to sun
tempcolor.gb+=i/150; //color to leaf
clr.setTransform(tempcolor);
算法以速度为先,不考虑太多的客观因素,只按照程序当前的状态往太阳和绿色的生命感觉走(红色和绿色的增量补偿,rb要大于gb,否则没有光感)
最后就是结束条件:if(i>=700) clearInterval (idDream)。当程序运行了700/3次后,结束子程序,清除timer并返回主程序。
返回主程序后,无其他语句即保持静止状态,除非用户关闭窗口来结束程序。
|