雖然這次的目的是弄一個仿iPod的CoverFlow效果
而其實大概要弄的東西也都有點雛形了(還有點卡卡的@@)
不過這篇要筆記的是關於Loading的部分
以前在AS2時我習慣用兩個影格來做Loading效果
第一格放Loading的部分,判斷自己本身元件都Load進來後進到第二格
第二格就是真正的內容跟UI
但是在AS3中我開始練習把主類別指向Main.as
這麼一來FLA檔就像是只負責儲存元件庫一樣
其他所有的AS檔都可以分割開來
但這麼作的缺點好像就是不能使用時間軸來做Loading了
不管我用stop()或nextFarme()都會出現”1180: 呼叫可能未定義的方法”這樣的錯誤
後來換個想法
直接再弄個loader.swf來載入main.swf就OK了
雖然我還是很懷疑這是否為正確的做法
不過這樣做其實也是有好處拉
以後不管任何的main.swf都可以先用這個loader.swf來做載入測試了^^”
簡化一下必要的部分在這篇做個筆記吧
main.as
1 2 3 4 5 6 7 8 9 10 11 | package { import flash.events.*; public class Main extends Sprite { public function Main() { addEventListener(Event.ADDED_TO_STAGE,init); } private function init(e:Event){ //初始化 } } } |
Loader.as
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var loader:Loader=new Loader(); var request:URLRequest=new URLRequest('Main.swf'); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,done); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); loader.load(request); function done(evt:Event):void{ //可以先作隱藏LOADING的動作再把MAIN實體化 initMain(); } function initMain(){ loaded.text = ""; //在舞台上命名為loaded的動態文字 addChild(loader); } function onProgress(evt:ProgressEvent):void{ txt.loaded.text = int(evt.bytesLoaded / evt.bytesTotal *100)+"%"; } |
簡化掉了一堆Tweener的動作
所以就邏輯來看有些變得有點多此一舉
不過變化性應該會大一點囉~
等把Cover Flow效果真正完成後再來作主要的AS檔筆記…
謝謝,幫了很大的忙~~
這也是用Flash做出來的?
是阿~
等完整點在放CLASS檔上來~
喔喔!MOUSEEVENT我有用過~
我是想說用鍵盤比較有打電動的感覺 XD
感謝版大~我繼續去奮鬥了 (又遇到無解的BUG)
加油…你行的!!
喔喔!!多謝!!
我還有個問題~(真是不好意思打擾了)
就是用鍵盤對應flash做遊戲,感覺都滿鈍的
譬如方向鍵沒辦法按著就能連續反應
而是要先按一下,再接著按,才能連續反應..
想請教..這種現象不知道有沒有解決辦法呢?
感恩!!
我是沒有試過用鍵盤控制FLASH
不過我想…用addEventListener去傾聽MOUSEEVENT應該可以解決這問題
你可以參考一下MOUSEEVENT有哪些可以使用再試試看
版大@@
我又來了~!這次想請教的不是技術上的問題~
而是~我有想做專職的flash..但是不知道程度要到哪裡!!
不知道版大有沒有這方面的概念呢~?
恩 其實我不知道要怎麼回答這個問題耶
你可以參考一下104阿^^”
不過我個人是覺得能夠好好理解如何應用在網路上已經有高手寫好的CLASS是非常可以事半功倍的~
說實話,我看不懂@@
嗯 我下次會改進@@
很棒的教學
謝謝~
能幫上忙就好
不用客氣的啦~