我正在制作一个在运行时加载地图 .swfs 的游戏。地图将包含图形和代码,它们都可能因地图而异。我决定让所有的地图都实现一个界面,这样它们都可以在游戏中以相同的方式使用。我正在使用 .swc 来包含界面,就像在这个页面中一样。
我可以让类在 .swc 中工作,但不能在接口中工作!
我在 AS3 中使用 Flash cs5 和 flashdevelop 进行编辑。这是我一直在做的事情:
1-使用名为 Map 的符号和 Map.as 创建 map.fla:
public class Map extends MovieClip {
public function test():void {
trace("woohoo");
}
}
2- 在 Flash 中,右键单击地图符号并选择“export SWC...”和“export SWF...”。
3-在新文件夹中创建一个名为Loader的新.fla和flashdevelop项目,并复制在2中创建的.swf和.swc
4-在flashdevelop中,右键单击swc并选择“添加到库”
5-在flash中,actionscript设置->库路径,添加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();
...
它不起作用!我收到“验证错误:错误 #1014:找不到 IMap 类。” 为什么哦为什么?如果有人可以提供帮助,我将不胜感激。