Re: [問題] 繼承 vs 轉型
若 Lobby.swf 中,完全不認識 class Sector 的話,
則當 Lobby.swf 將 Sector.swf 載入完成後,
getDefinition() 取得的 Class 所建立的 instance,將無法轉型為 class Sector
但如果 Lobby.swf 編譯時,程式碼中就有包含 Sector.as,
有將 class Sector 編入 Lobby.swf 中的話,
那麼 Lobby.swf 載入完 Sector.swf 後,動態建立的 instance 就可轉型為 class Sector,
不過,這種作法有很多缺點,最顯而易見的缺點就是:
Lobby.swf 與 Sector.swf 中,都包入了 class Sector,增加了檔案大小,
對於版本同步也會很麻煩,譬如若改了 Sector.as 的話,就必須將兩個 swf 都重新編譯過
另一個討厭的問題是,若是有使用 混淆,那麼就算都使用了相同的 class,
但分別混淆過後,也有可能這兩個 class 都已經不是原本的名字了,
而成為兩個相異的 class
我之前有針對這部分提出一些作法,不過我現在對以前的作法又有其他想法了~
http://blog.ben.idv.tw/2009/12/applicationdomain.html
主 swf 與 子 swf 之間若要互相呼叫對方的 function,
我的建議做法是 互相提供一個 object 給對方,
這個 object 中,使用字串定義了每個要 public 的 function 的參考,
彼此可以藉由拿到的 obhect 中的 function 字串來呼叫對方,
譬如
objPublicAPI["doJob1"](param1, param2);
objPublicAPI["doJob2"](param3);
※ 引述《chengchieh (cc)》之銘言:
: 因為最近開始寫flash搭純as的project...
: 然後有碰上一個問題
: 在很多畫面都是從flash那邊抓出來的情況
: 會使用到一層又一層的movieclip
: public class mcPro extends MovieClip....
: 主要是因為有些常用的方法要寫在裡面...
: 但是當我從swf中取出movieclip時
: 卻沒有辦法直接轉型成該class....
: 不知道有沒有人可以提供這部分的經驗呢?....
: (那個class沒有要放其他的物件...就只是存在一些method而已...)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.147.239.66
討論串 (同標題文章)