作者cjcat2266 (CJ Cat)
看板Flash
標題Re: [問題] 5000:類別n必須有子類別 因為它連結至렠…
時間Fri May 28 15:28:58 2010
decompiler解出來的FLA通常都是無法正compile的
目的只是要讓你了解code的內容,而不是讓你可以重新編譯
請不要期望decompile出來的原始檔可以馬上讓你正常編譯
解出來的HelvecRounded class之所以會出錯
表示是原本FLA中的字體Exported for ActionScript的結果
但是decompiler以為外部還有一個AS檔
所以建了一個空白的AS檔
理論上這個檔案應該要繼承Fons class的
把font資料夾連同AS檔刪掉就可以消除該錯誤
進一步編譯會發現"找不到PrivateConstructorEnforcer"的錯誤
這是Nodename自己發明的一套private constrcutor實作方法
目的是用AS實作相同於C++/C#/Java等語言中private constructor
詳細說明請自己看
http://bit.ly/bA5s3M
最快速的解決方法就是在最上層class path加入此class
package {
public class PrivateConstructorEnforcer {}
}
但是正確的作法卻是在用到PrivateConstructorEnforcer class的AS檔中
最後段各字加上
class PrivateConstructorEnforcer
如此一來才是真正的製造private constructor同等功能
接下來再編譯,就會發現decompiler解出來的code完完全全出錯了
var _loc5:String = this; //this並不是String
於是
想要直接編譯這個decompile出來的原始檔是不可能的
但是至少你學到了修正一些特殊decompiler錯誤的技巧
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.27.67
※ 編輯: cjcat2266 來自: 118.168.27.67 (05/28 15:30)
推 versitility:感謝CJ大撥冗提點 我得花點時間理解它 拜讀了 <0> 05/28 15:48
推 versitility:請教 CJ 大 我再AS裡看到一個 for ( ;; ) {statement} 05/28 16:01
→ versitility:第一次看到這種寫法..這樣的 for 會怎麼跑呢 @@? 05/28 16:02
→ cjcat2266:相當於 while (true) 無窮迴圈 05/28 16:04
→ cjcat2266:遇到 break 才會跳出 05/28 16:05
→ aquarianboy:其實你只要按Ctrl+Enter應該就知道答案了不是嗎 05/28 16:05
→ cjcat2266:那如果沒有break不就當機了XD 05/28 16:07
推 versitility:因為他這個for裡面包了26個if 2個while..我實際試寫 05/28 16:09
→ versitility:trace 一測試影片flash就當掉 0.0 05/28 16:10
→ aquarianboy:其實我的意思說,原po可以直接開個空白的fla 05/28 17:33
→ aquarianboy:然後寫for(;;){trace 1;} 就知道了 05/28 17:34
→ aquarianboy:沒有break跳出點應該也會看到一堆的output :) 05/28 17:34
→ versitility:我上面16:10說的就是照板大那樣寫 一執行就當了XD 05/28 19:07
→ versitility:連output都沒跳 :( 05/28 19:08
→ aquarianboy:其實稍微等它一下,它就會有output了 05/28 19:16
→ aquarianboy:script 已經執行超過預設的 15 秒逾時時段。 <--這個 05/28 19:16
→ aquarianboy:別急著關掉就行了,不過不確定是不是每台電腦都有一樣 05/28 19:20
→ aquarianboy:的執行結果就是了 05/28 19:20