九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Flash AS3.0制作飄動(dòng)的氣泡內(nèi)含詳細(xì)注釋
Flash AS3.0制作飄動(dòng)的氣泡內(nèi)含詳細(xì)注釋
本帖最后由 athenaflash 于 2011-3-28 11:52 編輯

最近在網(wǎng)上發(fā)現(xiàn)了一個(gè)很不錯(cuò)的氣泡漂浮代碼,經(jīng)驗(yàn)證沒有任何錯(cuò)誤。
效果:多個(gè)小氣泡在屏幕上自由飄動(dòng),當(dāng)氣泡與氣泡,氣泡與邊框碰撞的時(shí)候都會(huì)作出相應(yīng)的動(dòng)作。

                function ball(r:int):MovieClip {
//自定義函數(shù) ball,參數(shù)為 r,整數(shù)型,返回值為 MovieClip  

        var col:uint=0xffffff*Math.random();
//聲明一個(gè)無符號(hào)整數(shù)型變量 col,獲取任意顏色  

        var sh:MovieClip=new MovieClip();
//聲明一個(gè)影片剪輯類實(shí)例 sh  

        sh.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,col,col],[0.5,0.5,1],[0,200,255]);
//在 sh 中設(shè)置漸變填充樣式(放射狀漸變,顏色,透明度,色塊位置)  

        sh.graphics.drawCircle(0,0,r);
//在 sh 中畫圓(圓心坐標(biāo)(0,0),半徑為參數(shù)r)  

        sh.graphics.endFill();
//結(jié)束填充  

        return sh;
//返回 sh  

}

var ballArr:Array=[];
//聲明一個(gè)空數(shù)組 ballArr  

for (var i:int=0; i<10; i++) {
//創(chuàng)建一個(gè) for 循環(huán),循環(huán) 10次  

        var balls:MovieClip=ball(Math.random()*20+20);
//聲明一個(gè)影片剪輯類實(shí)例balls,調(diào)用函數(shù) ball(參數(shù)r 半徑的值為 20-40 之間的隨機(jī)值)  

        addChild(balls);
//把 balls添加到顯示列表  

        balls.x=Math.random()*(stage.stageWidth-balls.width)+balls.width/2;
//balls 的 X 坐標(biāo)  

        balls.y=Math.random()*(stage.stageHeight-balls.height)+balls.height/2;
//balls 的 Y坐標(biāo),使它出現(xiàn)在舞臺(tái)的任意位置  

        balls.vx=Math.random()*2-1;
//為 balls 設(shè)置自定義屬性 vx,數(shù)值為-1-1 之間的隨機(jī)數(shù),表示 X 方向的速度  

        balls.vy=Math.random()*2-1;
//為 balls 設(shè)置自定義屬性 vy,數(shù)值為-1-1 之間的隨機(jī)數(shù),表示 Y 方向的速度  

        ballArr.push(balls);
//把 balls 添加到數(shù)組 ballArr 中  

}

addEventListener(Event.ENTER_FRAME,frame);
//添加幀頻事件偵聽,調(diào)用函數(shù) frame  

function frame(e) {//定義幀頻事件函數(shù) frame  

        for (var i:int=0; i<ballArr.length; i++) {
//創(chuàng)建一個(gè) for循環(huán),循環(huán)次數(shù)為數(shù)組 ballArr 的元素?cái)?shù)  

                var balls:MovieClip=ballArr;
//聲明一個(gè)影片剪輯類實(shí)例 balls,獲取數(shù)組 ballArr 的元素

                balls.x+=balls.vx;
//balls的 X 坐標(biāo)每幀增加balls.vx  

                balls.y+=balls.vy;
//balls的 Y 坐標(biāo)每幀增加balls.vy  

                if (balls.x<balls.width/2) {
//如果balls 出了舞臺(tái)左邊緣  

                        balls.x=balls.width/2;
//balls 的 X坐標(biāo)獲取balls 寬度的一半  

                        balls.vx*=-1;//ba
lls.vx 獲取它的相反數(shù)  

                }

                if (balls.x>stage.stageWidth-balls.width/2) {
//如果 alls 出了舞臺(tái)右邊緣  

                        balls.x=stage.stageWidth-balls.width/2;
//balls 的 X 坐標(biāo)獲取場景寬度與 balls 寬度一半的差  

                        balls.vx*=-1;
//balls.vx 獲取它的相反數(shù)  

                }

                if (balls.y<balls.height/2) {
//如果 balls出了舞臺(tái)上邊緣  

                        balls.y=balls.height/2;
//balls 的 Y坐標(biāo)獲取 balls 高度的一半  

                        balls.vy*=-1;//balls.vy 獲取它的相反數(shù)  

                }

                if (balls.y>stage.stageHeight-balls.height/2) {
//如果 balls 出了舞臺(tái)下邊緣  

                        balls.y=stage.stageHeight-balls.height/2;
//balls 的 Y 坐標(biāo)獲取舞臺(tái)高度與 balls 高度一半的差  

                        balls.vy*=-1;
//balls.vy 獲取它的相反數(shù)  

                }

        }

        for (var j:int=0; j<ballArr.length-1; j++) {
//創(chuàng)建一個(gè) for 循環(huán),循環(huán)次數(shù)比數(shù)組 ballArr 元素?cái)?shù)少 1  

                var ball0:MovieClip=ballArr[j];
//聲明一個(gè)影片剪輯類實(shí)例 ball0,獲取數(shù)組 ballArr 的元素  

                for (var m:int=j+1; m<ballArr.length; m++)
{
//創(chuàng)建一個(gè) for 循環(huán),  

                        var ball1:MovieClip=ballArr[m];
//聲明一個(gè)影片剪輯類實(shí)例 ball1,獲取數(shù)組 ballArr 的元素  

                        var dx:Number=ball1.x-ball0.x;
//聲明一個(gè)數(shù)值型變量 dx,獲取  

                        var dy:Number=ball1.y-ball0.y;
//聲明一個(gè)數(shù)值型變量 dy,獲取  

                        var jl:Number=Math.sqrt(dx*dx+dy*dy);
//聲明一個(gè)數(shù)值型變量 jl,獲取小球的距離  

                        var qj:Number=ball0.width/2+ball1.width/2;
//聲明一個(gè)數(shù)值型變量獲取小球半徑之和  

                        if (jl<=qj)
{
//如果 jl 小于等于 qj  

                                var angle:Number=Math.atan2(dy,dx);
//聲明一個(gè)數(shù)值型變量angle,獲取ball1 相對(duì)于 ball0 的角度  

                                var tx:Number=ball0.x+Math.cos(angle)*qj*1.01;
//聲明一個(gè)數(shù)值型變量 tx,獲取目標(biāo)點(diǎn)的 X坐標(biāo)  

                                var ty:Number=ball0.y+Math.sin(angle)*qj*1.01;
//聲明一個(gè)數(shù)值型變量 ty,獲取目標(biāo)點(diǎn)的 Y坐標(biāo)

                                ball0.vx=- (tx-ball1.x);
//ball0 在X 方向的速度  

                                ball0.vy=- (ty-ball1.y);
//ball0 在Y 方向的速度  

                                ball1.vx=(tx-ball1.x);
//ball1 在 X方向的速度  

                                ball1.vy=(ty-ball1.y);
//ball1 在 Y方向的速度  

                        }

                }

        }

}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AS3.0制作逼真的噴泉?jiǎng)赢嬙敿?xì)教程
as3煙花
BufferedImage與像素級(jí)渲染
用HTML5制作一個(gè)簡單的桌球游戲的教程
Flash基礎(chǔ)理論課 第八章 緩動(dòng)與彈性運(yùn)動(dòng)Ⅱ
動(dòng)量守恒與能量守恒
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服