我正在製作一個在運行時加載map .swfs的遊戲。地圖將包含圖形和代碼,這些圖形和代碼都可能因地圖而異。我決定讓所有地圖都實現一個界面,所以它們都可以通過遊戲以相同的方式使用。我使用.swc來包含界面,如this page。創建一個.swc - 爲什麼接口不工作,當類的時候呢?
我可以讓類在.swc中工作,但不是接口!
我在AS3中使用Flash CS5和flashdevelop進行編輯。下面是我如何在做它:
1-了一個名爲地圖符號製作map.fla和Map.as:
public class Map extends MovieClip {
public function test():void {
trace("woohoo");
}
}
在Flash 2-,右鍵單擊地圖符號和選擇「導出SWC ...」以及「導出SWF ...」。
3-創建一個名爲裝載機在一個新的文件夾中的新的.fla文件和Flashdevelop中的項目,並在.swf文件中複製和2
在Flashdevelop中4-創建名爲.swc,右鍵單擊SWC並選擇「添加到圖書館」
閃光燈5,動作設置 - > lirbary路徑,添加SWC並設置鏈接類型:外部
現在Loader.as我可以在加載後訪問map.swf Map類:
public class Loaderoo extends MovieClip {
public function Loaderoo() {
var loader:Loader = new Loader()
loader.load(new URLRequest("map.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
// var map:Map = new Map(); // this would throw a VerifyError 1014
}
private function loaded(e:Event):void {
var map:Map = new Map();
addChild(map);
map.test(); // now it has loaded the class - traces "woohoo"
}
}
到目前爲止好。但是,如果我嘗試
public class Map extends MovieClip implements IMap {
...
和
private function loaded(e:Event) {
var map:IMap = new Map();
...
這是行不通的!我得到「VerifyError:錯誤#1014:無法找到IMap類。」 爲什麼哦爲什麼?如果有人能幫助,我會很感激。
真棒 - 我不知道這個選項導出整個fla作爲一個SWC。非常感謝您的回答! – joeatsalot 2011-02-06 20:17:34
歡迎您:) – Oliver 2011-07-26 01:07:18