[問題] SWFLoader裡面的swf的method

看板Flash作者 (心靈律動^^)時間16年前 (2009/06/21 11:48), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
目的: 在主檔案裡面想要呼叫load進來的swf裡面的function 該讀進來的swf 名稱為Sample.mxml 裡面有一個函式是public function setText(str:String):void 做了什麼: 一開始先在SWFLoader 宣告的時候 creationComplete="init()" private function init():void { this.swfContent = this.swfLoader.content as SystemManager; } 然後寫按鈕A按下時觸發的函式: private function callFuncHandler():void { Sample(this.swfContent.application).setText("Hello World!!"); } =================以上是可以通過的正確版本=============================== 因為印象中 this.swfContent.application[元件名稱] 是可以找到對應的!! 也會compile過!! 想問一下以下方式問題會出現在哪呢!? (替換掉黃色那一行) this.swfContent.application[setText("aaa")] this.swfContent.application.setText("aaa") 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.196.70

06/21 12:16, , 1F
附個完整的原始檔會比較容易懂
06/21 12:16, 1F

06/22 07:53, , 2F
[setText('aaa')]抓到的是[setText的return值]
06/22 07:53, 2F

06/22 07:54, , 3F
跟xxx.setText同義的是xxx['setText']
06/22 07:54, 3F

06/22 14:54, , 4F
其實打包成一個壓縮檔會比貼程式碼來得清楚..
06/22 14:54, 4F
//這是可以的!! //Sample_4_3_3_SWF(this.swfContent.application).swfLabel.text = "Hello World"; //Sample_4_3_3_SWF(this.swfContent.application).setText("Hello World"); 成功的原因在於有轉型 就像String(number) => String 3 "3" 才可以使用裡面的方法!! this.swfContent.application['setText']("Hello World"); 屬性可以直接被找到所以不用轉型 其實...果然是江湖一點訣.... 我本來以為Sample_4_3_3_SWF() 括號裡面是丟參數進去@@a 原來是轉型 ... 那就比較能理解了... 謝謝 ^____^ ※ 編輯: fatcats 來自: 219.70.196.70 (06/22 15:41)
文章代碼(AID): #1AFQrsaY (Flash)