Flash Flex學習筆記 24 粒子效果

2022-01-31 15:26:45 字數 1993 閱讀 3673

粒子**:

仍然要用到以前的小球類,不過稍加改造

package 

private function init():void

}}

增加了x,y軸的速度,其它沒變

原理:在舞台的某一區域放置大量小球例項,然後在某個時刻讓其向四面八方運動即可(即改變每個小球在x,y軸上的座標)

問題:效率!讓cpu在每幀對於大量物件進行重繪是很耗資源的,所以當小球跑出舞台邊界時,得想辦法通知cpu:這些小球不需要再處理了(反正也看不見)!否則純屬折騰cpu,下面的**用乙個陣列存放所有物件例項的引用,然後在enterframe事件中不斷檢測,一旦有物件跑出邊界了,就將其清除,不再理會了.

import fl.controls.label;

import flash.text.textfieldautosize;

stage.scalemode=stagescalemode.no_scale;

stage.align=stagealign.top_left;

var count:number=1500;

var radius:uint=30;

var centerx:uint=stage.stagewidth/2;

var centery:uint=stage.stageheight/2;

var arrball:array=new array(count);

//讓小球呈圓形隨機分布

for (var i=0; i=0; i--)

//如果陣列已經為空,則清除enterframe事件

if (arrball.length==0)

//trace(arrball.length);

}}

粒子噴射:

如果看過上篇flash/flex學習筆記(23):運動學原理 並動手實踐過"自由落體運動"的朋友,對於這種粒子效果可能比較容易理解。

原理:將所有粒子聚集於螢幕上某點(本例中為螢幕底部中心點),然後賦給乙個隨機向上的速度(這樣就能向上噴射出),同時為了更效果更自然,還要加入隨機的x軸方向速度(以實現噴射過程中的擴散),最後再加入重力加速度,以實現粒子的自由回落。

效率:為了能最大限度的利用現有物件,當粒子跑出舞台邊界時,重新用**將其定位到發射點,以便下次繼續噴射。

互動:本例中為增強互動性,用滑鼠的x軸位置模擬了風力影響。(在水平方向移動滑鼠可看到噴射方向略有變化)

package 

private function init():void

addeventlistener(event.enter_frame, onenterframe);

} private function onenterframe(event:event):void

}} }

}

粒子跟隨:

除了利用邊界檢測移除粒子外,在實際開發中也經常利用時間來判斷,比如乙個物件在舞台上存活幾秒後,便將其乾掉。

stage.addeventlistener(mouseevent.mouse_move,mousemovehandler);

function mousemovehandler(e:mouseevent):void

function enterframehandler(e:event):void

}

注:

模擬布朗運動:

var count:number=200;

//初始化

for (var i:number=0; i<=count; i++)

function enterframehandler(e:event):void

//加入摩擦力因子,看起來更自然

ball.vx=ball.vx*0.9;

ball.vy=ball.vy*0.9;

}

Flash Flex學習筆記 22 濾鏡學習

silverlight中稱之為 效果 effect 的東東,在flash裡叫 濾鏡 filter 而且flash裡內建的濾鏡要比silverlight豐富很多,幾乎所有物件都有乙個filters的屬性,它是乙個陣列,可以將乙個或多個濾鏡同時應用於某一物件,類似的,如果要去除已經應用的濾鏡效果,只要將...

Flash Flex學習筆記 14 按鍵捕獲

先來看簡單的單個按鍵捕獲 package privatefunctioninit void publicfunctionkeydownhandler e keyboardevent void if e.ctrlkey if e.shiftkey if e.altkey 再來看下類似 a b c 的這...

Flash Flex學習筆記 34 彈性運動

動畫中的彈性運動 從視覺效果上接近 物理經典力學中的單擺運動或彈簧 胡克定律f kx 振動 先看下面的模擬演示 規律 小球先從出發點 初始為最左側 向目標點 中心點 加速狂奔,奔的過程中速度越來越大,但加速度越來越小,等經過目標點時,發現速度太大剎不住車 此時速度達到最大值,但加速度減為0 奔過頭了...