Flash制作实例教程:两点间随机折线效果 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    教程|随机

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

   

    点击这里下载源文件

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

    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)

最新文章