看板 Flash 關於我們 聯絡資訊
※ 引述《fake01 (ya da)》之銘言: : 請問如何抓取匯入外部AS檔的變數? : var Tlke:URLRequest = new URLRequest("MOVE_GAME/NewGame.swf"); : var Tlkeloader:Loader = new Loader(); : Tlkeloader.load(Tlke); : addChild(Tlkeloader); 這問題我剛好最近遇到 而且你要問的應該是怎麼抓取匯入外部 "SWF" 的變數吧? 首先給 Tlkeloader 加個 event Tlkeloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); private function onLoaded(e:Event):void { var childMC:MoiveClip = e.currentTarget.content as MovieClip; // 這時候childMC就等於載入的.swf了 // 然後要怎麼抓變數,call function都沒問題了! childMC.roleName; // 抓變數 childMC.run(); // call function } -------------- 這邊是 NewGame.swf 的內容 看要寫在 .as 或是 frame 都可以 假設寫在 frame var roleName:String = "jeaby"; function run():void { // do something } --------------- 補充一下你前面文章的問題 假設你要在 NewGame.swf 中的某個按鈕remove自己 //用剛剛上面的 run function run():void { parent.removeChild(this); // 但是實際跑了之後會跑出錯誤說loader沒有removeChild這個函數 } 所以要修改"this"的型態 回到最上面的 onLoaded private function onLoaded(e:Event):void { var childMC:MoiveClip = e.currentTarget.content as MovieClip; // .swf 載入完成後再addChild // addChild(Tlkeloader) 所以這行也不用加了; addChild(childMC); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.252.179
fake01:請問沒給路徑怎麼載入swf 第一段的程式碼內的function 07/21 11:52
fake01:不會執行耶 07/21 11:52
jeaby:這是範例 http://dl.dropbox.com/u/26636791/sample.rar 07/21 12:24
fake01:了解,如果我要抓child的as檔 07/21 12:30
fake01:變數? 該如何做 07/21 12:30
jeaby:一樣在child.as給個變數 public var abc:string = "abc"; 07/21 12:38
jeaby:main.as裡在去抓 childmc.abc 就可以了 07/21 12:38
※ 編輯: jeaby 來自: 59.104.252.179 (07/21 12:39)
fake01:我新增child.as 可以點擊按鈕刪除自己 07/21 13:12
fake01:但在main.fla執行會出錯 07/21 13:13
fake01:TypeError: Error #2007: 參數 child 不能是 Null。 07/21 13:14
fake01:trace(childmc); 等於 NULL 07/21 13:18
fake01:已經了解 謝謝高手J 加入this.addchild(...); 07/21 13:27
fake01:不對,後來發現還是錯 會出現 Child 不能是null 07/21 13:58