[問題] 請教目前想的一個角色系統架構

看板Flash作者 (全力少年)時間16年前 (2009/07/01 04:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
藉由這幾天的努力,以及在Flash板的求助 (一直發文詢問實在很不好意思,也很感謝CJ貓和板主給我的一些方向及指示) 目前正在Flash弄的一個角色處理部份總算有些進展,不過也還是有一些問題... 所以這次想說附上整個fla檔及code ( http://www.badongo.com/file/15771506 ) 想跟大家討論、請益一下是不是最基本的架構部份我就走錯方向了 囧 整體的概念是,將整個角色的部份做成一個swf,可以在場景中載入 在這個角色swf裡包含了所有角色可能會有的動作,以及衣服狀態 再藉由對這個角色swf做跳影格的方法 可以得到可以在場景上看到角色有換衣服以及做動作的效果 目前架構如.fla檔所示,最外面是一個BaseMC包著所有的資料 接著下一層是構想說放置所有動作的部份(包含靜止不動) 以關鍵影格做為區分,每一格代表一個動作的MC 在每個動作的MC裡面,再使用元件庫裡各身體部位的元件,去拼湊出角色以及拉出其動作 所以用到的身體部位元件基本上都是一樣的,只是被放在不同的動作MC內去使用 至於身體部位MC裡,也有分幾個關鍵影格,每一格代表的是不同的服裝 因此在換服裝或是換動作的部份,都是採取跳不同的關鍵影格來實做 而在實做的時候,有想了也試了幾種方法: 1. 在外部載入,以及在外部去控制裡面的動作MC和身體部位MC去跳影格 結果問題在於,在動作A換好衣服(身體MC所停的影格),跳到動作B之後就一切重來了... 2. 記錄著換裝的資訊,等換動作之後再去設定衣服 記得這個方法的問題好像在於 換動作之後會先在預設的衣服(第一格),再閃爍一下切換到記錄著的衣服 3. 就是目前的做法,在swf裡的最上層stage記錄著換裝的資訊,也寫了一個換裝的函式 在每個動作影格裡,寫著用swf記錄的換裝資訊先去跑換裝函式 接著才會進入動作影格的動作MC裡播動作 這樣是解決了之前的一些問題 不過在之中有發生個問題就是,剛跳過去的關鍵影格裡的MC不能馬上使用,會是null 像是一開始就跳到動作2的影格,再馬上去對動作2裡的MC做事就會回傳接觸未定義的錯誤 (也因此目前檔案裡面的code有檢查null...) 4. 為解決3而改良的做法,也就是在每個MC的影格內再去寫跳下一層的影格 因為已經進入MC的影格,所以不會有MC還沒跑完而是null的狀態 不過這種做法還有一些問題,最明顯的就是code會很分散,這讓我覺得很可怕 另外還有像是必須跑過其影格,才能順利換裝 假如用gotoAndStop,就沒辦法跑到後面影格所寫的換裝code 也因此目前還在3的階段苦惱中,昨天試了一下CJ貓指引的方向也遇到了一些問題 雖然身體部位都是同樣MC,但動作跟動作間的MC因為不一樣 所以似乎不能使用同步化元件 以及對null的MC去加EventListener好像也會有問題 (還是說要對其上一層的MC去監聽ADDED_TO_STAGE事件?) 所以想請教大家目前我的方向是對的嗎?或是說有哪些地方可能走錯了? 這幾天一邊弄一邊產生了不少問題出來 實在是讓我越寫越心虛... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.145.78
文章代碼(AID): #1AId4B0_ (Flash)
文章代碼(AID): #1AId4B0_ (Flash)