亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

Flash教程:制作隨機畫圓弧動畫

2020-07-17 13:22:03
字體:
來源:轉載
供稿:網友
一個隨機畫圓弧的效果
有幾個屬性可調整
也不多描述了
看看就知道了

點擊這里看演示
貼一下代碼
有興趣的看一下吧
剛加了下注釋
//******************* draw_arc ************************
//******************* 作者:boenlee *******************
//舞臺元件:
//可視區域元件--mask
//移動按鈕--up_btn, down_btn, left_btn, right_btn
//文本框--angle_txt, time_txt, r_txt, thickness_txt
//復選按鈕--trace_check, leaf_check
//重畫按鈕--redraw_btn
//庫鏈接元件:
//葉子--leaf
//***************************************************
//畫小于等于45度的圓弧,任意角度開始
//mc:目標mc名稱
//ox:原點x位置
//oy:原點y位置
//r:半徑
//origin_angle:起始角度
//angle:弧的角度,正數順時針畫弧,負數逆時針畫弧
//thickness:線的粗細
//rbg:線的顏色
//alpha:線的透明度
//返回:圓弧終點坐標,終點為角度大的點,與angle符號無關
function draw_small_arc (mc:MovieClip, ox:Number, oy:Number, r:Number, origin_angle:Number, angle:Number, thickness:Number, rbg:Number, alpha:Number):Object {
var origin_angle:Number = origin_angle % 360;
var angle:Number = angle % 360;
origin_angle = angle < 0 ? origin_angle angle : origin_angle;
angle = Math.abs (angle);
angle = angle > 45 ? 45 : angle;
var ctrl_r:Number = maintain_digit (1 / cosD (angle / 2) * r, 4);
var ctrl_sin:Number = maintain_digit (sinD (origin_angle angle / 2), 4);
var ctrl_cos:Number = maintain_digit (cosD (origin_angle angle / 2), 4);
var org_sin:Number = maintain_digit (sinD (origin_angle), 4);
var org_cos:Number = maintain_digit (cosD (origin_angle), 4);
var achr_sin:Number = maintain_digit (sinD (origin_angle angle), 4);
var achr_cos:Number = maintain_digit (cosD (origin_angle angle), 4);
with (mc) {
lineStyle (thickness, rbg, alpha, false, "normal", "none");
moveTo (org_cos * r ox, org_sin * r oy);
curveTo (ctrl_cos * ctrl_r ox, ctrl_sin * ctrl_r oy, achr_cos * r ox, achr_sin * r oy);
}
return {x:achr_cos * r ox, y:achr_sin * r oy};
}
//畫小于等于360度的圓弧,任意角度開始
//參數及返回值與draw_small_arc函數相同
function draw_arc (mc:MovieClip, ox:Number, oy:Number, r:Number, origin_angle:Number, angle:Number, thickness:Number, rbg:Number, alpha:Number):Object {
var origin_angle:Number = angle < 0 ? origin_angle angle : origin_angle;
var angle:Number = Math.abs (angle);
var times:Number = int (angle / 45);
var last_angle:Number = angle % 45;
if (times >= 8) {
times = 8;
last_angle = 0;
}
for (var i:Number = 0; i < times; i ) {
draw_small_arc (mc, ox, oy, r, 45 * i origin_angle, 45, thickness, rbg, alpha);
}
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;
}
if (angle_rnd) {
angle = dir * (random (50) 50);
} else {
angle = dir * Math.abs (angle);
}
pos_obj = draw_arc (line_mc, posx, posy, r, origin_angle, angle, thickness, color_arr[random (color_arr.length)], 100);
//加載樹葉
if (leaf_grow) {
line_mc.attachMovie ("leaf", "leaf" time, time, {_x:pos_obj.x, _y:pos_obj.y, _rotation:random (360), _xscale:random (50) r * 2 thickness * 5, _yscale:random (50) r * 2 thickness * 5, _alpha:random (100) thickness * 5});
var leaf_color:Color = new Color (line_mc["leaf" time]);
leaf_color.setRGB (leaf_color_arr[random (leaf_color_arr.length)]);
}
//跟蹤
if (is_trace) {
line_mc._x = mask._x - pos_obj.x;
line_mc._y = mask._y - pos_obj.y;
}
old_dir = dir;
} else {
delete line_mc.onEnterFrame;
}
}
//獲取文本框內容,為數值
//txt_name:文本框名稱
//nan_val:文本內容非數字時所取值
//zero_val:文本內容為0時所取值
//min_val:文本內容最小值
//max_val:文本內容最大值
function get_txt_value (txt_name:TextField, nan_val:Number, zero_val:Number, min_val:Number, max_val:Number) {
if (isNaN (Number (txt_name.text))) {
txt_name.text = String (nan_val);
} else if (Number (txt_name.text) == 0) {
txt_name.text = String (zero_val);
} else if (Number (txt_name.text) < min_val) {
txt_name.text = String (min_val);
} else if (Number (txt_name.text) > max_val) {
txt_name.text = String (max_val);
}
return Number (txt_name.text);
}
//重畫
redraw_btn.onRelease = function () {
delete line_mc.onEnterFrame;
init_prop ();
line_mc.onEnterFrame = main;
};
//選擇是否跟蹤
trace_check.onRelease = function () {
is_trace = !is_trace;
this.gotoAndStop (Number (is_trace) 1);
};
//選擇是否生長樹葉
leaf_check.onRelease = function () {
leaf_grow = !leaf_grow;
this.gotoAndStop (Number (leaf_grow) 1);
};
var keep_moving:MovieClip = this.createEmptyMovieClip ("keep_moving", 2);
var speed:Number = 10;
//移動line_mc
function moving (speedx:Number, speedy:Number) {
keep_moving.onEnterFrame = function () {
line_mc._x = speedx;
line_mc._y = speedy;
};
}
//停止移動
function stop_move () {
delete keep_moving.onEnterFrame;
}
//按鈕控制
up_btn.onPress = function () {
moving (0, speed);
};
down_btn.onPress = function () {
moving (0, -speed);
};
left_btn.onPress = function () {
moving (speed, 0);
};
right_btn.onPress = function () {
moving (-speed, 0);
};
up_btn.onRelease = up_btn.onReleaseOutside = down_btn.onRelease = down_btn.onReleaseOutside = left_btn.onRelease = left_btn.onReleaseOutside = right_btn.onRelease = right_btn.onReleaseOutside = function () {
stop_move ();
};
//鍵盤控制
var key_lis:Object = new Object ();
key_lis.onKeyDown = function () {
switch (Key.getCode ()) {
case 37 :
moving (speed, 0);
break;
case 38 :
moving (0, speed);
break;
case 39 :
moving (-speed, 0);
break;
case 40 :
moving (0, -speed);
break;
}
};
key_lis.onKeyUp = function () {
stop_move ();
};
Key.addListener (key_lis);
init_prop ();
line_mc.onEnterFrame = main;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人久久五月天| 成人h视频在线观看播放| 国产有码在线一区二区视频| 国产成+人+综合+亚洲欧美丁香花| 成人性教育视频在线观看| 欧美日韩成人精品| 欧美尤物巨大精品爽| 日韩成人在线播放| 伊人男人综合视频网| 久久亚洲春色中文字幕| 国产成人97精品免费看片| 亚洲va国产va天堂va久久| 国内精品国产三级国产在线专| 日韩精品视频在线| 欧美一级视频一区二区| 日韩av影片在线观看| 日韩欧美中文在线| 久久久久久久久久久91| 亚洲国产精品99| 国产欧美亚洲精品| 国产视频999| 久久天天躁狠狠躁夜夜av| 2020欧美日韩在线视频| 国产亚洲aⅴaaaaaa毛片| 亚洲跨种族黑人xxx| 国模吧一区二区| 伊人伊成久久人综合网小说| 国模精品一区二区三区色天香| 亚洲成人久久网| 一区二区国产精品视频| 欧美性xxxx极品hd欧美风情| 中文字幕日韩视频| 国产美女被下药99| 亚洲伦理中文字幕| 久久手机精品视频| 亚洲图片在区色| 在线亚洲男人天堂| 视频在线观看一区二区| 欧美福利视频在线| 国产精品久久久| 国自在线精品视频| 亚洲一区二区在线播放| 久久成人人人人精品欧| 91精品国产自产在线| 欧美极品少妇xxxxx| 成人激情视频免费在线| 欧美日韩国产中文精品字幕自在自线| 亚洲精品久久久久久久久久久| 国产精品久久久999| 亚洲福利视频二区| 日韩有码在线电影| 国产69精品久久久久9| 色视频www在线播放国产成人| 九九久久久久99精品| 91成品人片a无限观看| 国产精品视频一区二区三区四| 国产一区二区三区日韩欧美| 国产一区视频在线| 久久精品国产视频| 久久在精品线影院精品国产| 亚洲一区二区黄| 国外成人免费在线播放| 欧美极品少妇xxxxⅹ喷水| 亚洲黄一区二区| 上原亚衣av一区二区三区| 欧美综合第一页| 26uuu另类亚洲欧美日本一| 国产精品色婷婷视频| 亚洲精品理论电影| 国产精品久久久久久影视| 欧美性在线观看| 日韩av电影中文字幕| 九九视频直播综合网| 欧美性猛交xxxxx免费看| 久久精品99国产精品酒店日本| 欧美成人黑人xx视频免费观看| 91免费视频国产| 日韩福利伦理影院免费| 69影院欧美专区视频| 成人有码在线播放| 亚洲色图美腿丝袜| 日韩欧美国产网站| 亚洲欧美制服综合另类| 精品一区二区三区四区在线| 亚洲另类激情图| 成人免费在线视频网址| 亚洲а∨天堂久久精品喷水| 亚洲www永久成人夜色| 久久黄色av网站| 欧美精品久久久久久久久久| 欧美香蕉大胸在线视频观看| 国产精品视频自在线| 777国产偷窥盗摄精品视频| 精品中文字幕乱| 成人激情视频在线观看| 久久视频免费在线播放| 亚洲一区亚洲二区| 国产精品久久久久久久久久久久久| 欧美激情精品久久久久久蜜臀| 日韩在线视频播放| 亚洲xxxx在线| 亚洲毛茸茸少妇高潮呻吟| 国产日产亚洲精品| 亚洲第一页中文字幕| 欧美午夜美女看片| 精品国产一区二区三区四区在线观看| 日本精品性网站在线观看| 丰满岳妇乱一区二区三区| 欧美成人精品在线观看| 国产一区二区免费| 色综合伊人色综合网站| 久久久亚洲国产天美传媒修理工| 久久亚洲欧美日韩精品专区| 国产美女久久精品香蕉69| 日韩精品福利在线| 亚洲成人激情图| 一区二区亚洲欧洲国产日韩| 亚洲自拍偷拍色片视频| 第一福利永久视频精品| 亚洲国产精品悠悠久久琪琪| 欧美在线一区二区三区四| 国产精品18久久久久久首页狼| 性欧美亚洲xxxx乳在线观看| 久久久精品一区二区| 亚洲成人激情小说| 日韩亚洲精品视频| 精品中文字幕在线观看| 亚洲一区二区三区四区在线播放| 亚洲乱码一区二区| 最近免费中文字幕视频2019| 欧美综合国产精品久久丁香| 欧美国产中文字幕| 有码中文亚洲精品| 久久男人的天堂| 久热精品视频在线观看一区| 一本一本久久a久久精品牛牛影视| 午夜精品蜜臀一区二区三区免费| 欧美成年人视频| 亚洲国产三级网| 欧美在线免费观看| 2019中文字幕全在线观看| 日本免费在线精品| 欧美性极品少妇精品网站| 日韩成人激情影院| 久久久999精品免费| 亚洲精品乱码久久久久久金桔影视| 欧美午夜视频在线观看| 欧美在线视频导航| 91大神在线播放精品| 欧美精品xxx| 日韩欧美精品网址| 超碰精品一区二区三区乱码| 在线观看久久av| 国产精品美女www| 欧美色播在线播放| 精品国产乱码久久久久久婷婷| 欧美老肥婆性猛交视频| 久久视频在线直播| 国产精品日韩欧美大师| 久久久久久一区二区三区| 欧美成人激情视频| 色综合天天狠天天透天天伊人| 日韩精品免费一线在线观看| 日韩免费在线电影|