Flash制作实例教程:两点间随机折线效果

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

效果如下:(用鼠标任意点击Flash动画)

映象中以前还是菜鸟时看的一个闪电特效的模式,因为没有看过源文件,一直没去琢磨算法,今天数学课复习三角函数的时候突然想到了这个思路,于是就操起笔在本子上写了一下面的AS.

回家打开Flash, 测试通过.

源文件中有图解.:

*折线效果

*

*Codeby木钷(13tds.com)

*

*Flash8.0ActionScript2.0

*

***/

Stage.scaleMode="noScale";

Stage.showMenu=false;

importflash.geom.Point;//注册Point?,如果不用此类可以使用其它方式代替点的位置

varFlash:Function=function(A:Point,B:Point,Q:Number,P:Number){

_root.clear();//清屏

_root.moveTo(A.x,A.y);//移?到A?

_root.lineStyle(1);//初始化狙??式

len=Math.sqrt(Math.pow(B.x-A.x,2)+Math.pow(B.y-A.y,2));//樘度

qlen=len/Q;//平均每段樘度

angle=Math.atan2(B.y-A.y,B.x-A.x);//弧度

deg=angle*180/Math.PI;//角度

for(i=1;i

temp={x:A.x+qlen*Math.cos(angle)*i,y:A.y+qlen*Math.sin(angle)*i};//?找第i?位置

tempangle=(deg-90)*Math.PI/180;//垂狙的角度

templen=P-random(P*2);//幅度(樘度)P~-P

lineTo(temp.x+Math.cos(tempangle)*templen,temp.y+Math.sin(tempangle)*templen);//移?到temp?

}

_root.lineTo(B.x,B.y);//到B?

};

varA:Point=newPoint(0,0);//初始A?

varB:Point=newPoint(400,300);//初始B?

varC:Number=2;//初始段?

setInterval(Flash,50,A,B,10,25)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航