} return draw_small_arc (mc, ox, oy, r, 45 * times + origin_angle, last_angle, thickness, rbg, alpha); } //小数保留 //val:要处理数值 //maintain:保留位数 //返回:处理后的数 function maintain_digit (val:Number, maintain:Number):Number { var multiple:Number = Math.pow (10, Math.abs (maintain)); return Math.round (val * multiple) / multiple; } //以角度为参数计算sin值 function sinD (angle:Number):Number { return Math.sin (Math.PI / 180 * angle); } //以角度为参数计算cos值 function cosD (angle:Number):Number { return Math.cos (Math.PI / 180 * angle); } //随机颜色 function rnd_color ():Number { return random (255) << 16 | random (255) << 8 | random (255); } //弧线颜色数组,由于随机颜色比较丑,所以选择几个比较好的颜色 var color_arr:Array = [0xFF1111, 0xEDB83D, 0xEBEB1D, 0x99E91F, 0x20E91F, 0x23E4E3, 0x1DC2EB, 0x1B45ED, 0x6F1BED, 0xC21BED, 0xEB1DEB, 0xF017AF, 0xF01784, 0xFFFFFF]; //叶子颜色数组,原因同上 var leaf_color_arr:Array = [0x25EB25, 0xF3F347, 0x4AF09D, 0xF2AD48]; //起始角度 var origin_angle:Number; //弧的角度 var angle:Number; //弧度是否随机 var angle_rnd:Boolean; //方向 var dir:Number; //上一个弧的方向 var old_dir:Number; //弧的个数 var time:Number; //弧所在圆的坐标 var posx:Number; var posy:Number; //弧终点位置 var pos_obj:Object; //半径 var r:Number; //弧线粗细 var thickness:Number; //是否跟踪 var is_trace:Boolean = false; //是否有树叶生长效果 var leaf_grow:Boolean = false; //用于画弧线的mc var line_mc:MovieClip; //初始化属性 function init_prop () { line_mc.removeMovieClip (); line_mc = this.createEmptyMovieClip ("line_mc", 1); line_mc.setMask (mask); line_mc._x = mask._x; line_mc._y = mask._y; origin_angle = random (4) * 90; angle = get_txt_value (angle_txt, 0, 0, 10, 360); if (angle == 0) { angle_rnd = true; } else { angle_rnd = false; } dir = random (2) ? 1 : -1; posx = random (100) - 50; posy = random (100) - 50; time = get_txt_value (time_txt, 50, 10, 10, 200); r = get_txt_value (r_txt, 20, 5, 5, 50); thickness = get_txt_value (thickness_txt, 5, 1, 1, 10); } //主函数 function main () { if (--time > 0) { dir = random (2) ? 1 : -1; origin_angle += angle; //如果当前弧的方向与前一个的不同,计算当前弧所在圆的原点位置 if (dir + old_dir == 0) { posx += cosD (origin_angle) * 2 * r; posy += sinD (origin_angle) * 2 * r; origin_angle += 180; |