[問題] 關於在 class 當中與主程式共享物件?

看板Flash作者 (星之影)時間14年前 (2010/07/31 18:16), 編輯推噓1(1021)
留言22則, 4人參與, 最新討論串1/1
大家午安... 最近發現 AS3 真是一種行數成長頗快的語言... 隨便一個物件都要設定一下 x, y, 程式碼的長度真是飛快的增加.... 手上正在寫的程式已經增加到超過 3000 行了!! >< 長度太長就無法有效的 debug!!! 同時找東西也不方便 所以我終於開始研究 class 的用法了!! 想請教一下版上的達人!! 主程式 -> Main.Fla 分出來的 class -> bench.as (這是一個 sprite 裡面放圖) 由於圖片幾乎都是從外面讀進來的... 所以我用 Loader 讀取檔案後會把檔案存在一個 dictionary 物件當中 假設檔案是 pic1.png 讀取後就會存在 dic["pic1"] (這是一個dictionary物件) 可是我拆檔案寫 class 的時候碰到一個問題 Main.Fla 可以透過 new 實體化一個 bench 物件 (簡稱 _spr) 可是我不知道要怎麼樣把圖片共享出來!! 這點好苦惱阿.... bench.as 要怎麼主動把讀好的圖片傳給 Main 當中的 dic 物件 ?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.124.225

07/31 18:19, , 1F
還有... 我弄了半天還是搞不懂!!
07/31 18:19, 1F

07/31 18:19, , 2F
要怎麼樣寫一個 function 放在 .as 檔當中...
07/31 18:19, 2F

07/31 18:20, , 3F
讓 fla 需要那個 function 的時候直接呼叫 ...
07/31 18:20, 3F

07/31 19:25, , 4F
可以弄成Static function,像Math.round() 一樣
07/31 19:25, 4F

07/31 19:49, , 5F
設成static funtion然後import進去就可以直接使用了~
07/31 19:49, 5F

08/01 22:27, , 6F
也可以弄個function,名稱跟AS檔相同這樣
08/01 22:27, 6F

08/02 09:52, , 7F
感謝指導!! 直接使用的部份我大概了解了...
08/02 09:52, 7F

08/02 09:53, , 8F
不過我還是沒搞懂要怎麼讓 as 檔 使用 fla 當中的函示
08/02 09:53, 8F

08/02 10:01, , 9F
如果都寫到外部的as檔了,為什麼還要用fla裡的呢?
08/02 10:01, 9F

08/02 10:15, , 10F
對不起 >< 因為我對 class 不熟悉... 所以現在
08/02 10:15, 10F

08/02 10:15, , 11F
還有大量的程式都在 fla 當中....
08/02 10:15, 11F

08/02 10:15, , 12F
才會想說先拆簡單的出來 其他的讀取 fla 就好@@"
08/02 10:15, 12F

08/02 10:16, , 13F
我先來測試看看把我讀圖片的弄出來....
08/02 10:16, 13F

08/02 10:17, , 14F
再來看看問題有沒有解決 @@“
08/02 10:17, 14F

08/02 12:28, , 15F
我反而比較常反過來做,我的程式放在document class裡
08/02 12:28, 15F

08/02 12:29, , 16F
fla裡沒有method,需要的時候通常只放method call
08/02 12:29, 16F

08/02 12:30, , 17F
所以我的fla裡還是會放程式碼,只是不是定義,而是使用
08/02 12:30, 17F

08/02 15:07, , 18F
我是太菜了 ><" 剛開始就想做在外面可是沒動手....
08/02 15:07, 18F

08/02 15:08, , 19F
等到看到程式破 3000 行想做已經變得很困難了...
08/02 15:08, 19F

08/02 15:27, , 20F
http://bit.ly/c5fjq6 可以參考看看
08/02 15:27, 20F

08/02 18:49, , 21F
感謝版主分享 這是很棒的教學!!
08/02 18:49, 21F

08/04 17:24, , 22F
我放棄了... 直接把物件丟進去 function 比較快
08/04 17:24, 22F
文章代碼(AID): #1CK_VwCZ (Flash)