[Flash] onLoad() in ActionScript 3.0

  • onLoad() in ActionScript 3.0
  • 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
  • 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

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas