设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

两点间随机折线效果

来源:136z.Com 作者:佚名 时间:2006-03-15 11:47:35

Flash.rar


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

 * 折线效果
 *
 * Code by 木頭(13tds.com)
 *
 * Flash 8.0 ActionScript 2.0
 *
***/
 Stage.scaleMode = "noScale";
 Stage.showMenu = false;
 
 import Flash.geom.Point; //注册Point類,如果不用此类可以使用其它方式代替点的位置
 
var Flash: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<Q; 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點
 
};
 var A:Point = new Point(0, 0); //初始A點
 var B:Point = new Point(400, 300); //初始B點
 var C:Number = 2; //初始段數
 
 setInterval(Flash,50,A,B,10,25)

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: