- onLoad() in ActionScript 3.0
- Snow
Download: snow.zip
雖然這已經不是個新問題,但是許多從ActionScript 1.0/2.0跳到3.0的設計者剛開始都會在找onLoad()這個function,在ActionScript3.0裡已經沒有onLoad這個event,取而代之的是class constructor,或者是使用Event.ADDED這個Event,這裡我用一個簡單的範例來展示如何在ActionScript 3.0做到像以往的onLoad()的功能。
Snow特效算是Flash很經典的題目,幾乎很多書籍都喜歡拿這種特效來做教材,下載版裡我使用SnowDemo這個Class來完成Snow的特效。
Class Constructor
將所有初始化要做的設定放在SnowDemo的Constructor裡(這也是平常我們在OO的語言裡會做的方式),遞增x,y的位置我把它擺在TimerEvent.Timer的handler裡(onTimerStart)。
一旦Snow這個物件超出影片的高度,再將此物件拉回到最上面並且把alpha的值歸原1。
在Snow.fla的影格一裡面載入SnowDemo這個Class並且產生50個SnowDemo這個物件,如此Snow的特效就完成了,更詳細的細節請參照原始檔。
Event.ADDED
前面是使用Class Constructor來替代onLoad的Event,如果你不習慣使用Class的形式,你還是可以使用以往ActionScript 2.0的型態來產生特效,寫法如下:
在將snow加入MovieClip之前先加上Event.ADDED這個eventlisnter,當snow被加上到MovieClip之後就會去執行onSnowAdded這個function,效果也會跟onLoad一樣。
關於更新x,y的值最好使用timer來達成才不至於受限於fps的更新速度。
No comments:
Post a Comment