我正在做一些简单的代码。我有一个类插件,是为了进行扩展,具有功能INITIALISE():错误#1034:类型强制失败:无法将类转换为同一类?
package me.bleachisback.cocmod {
import me.bleachisback.cocmod.CoCMain;
public class Plugin {
private var _main:CoCMain;
private var _name:String;
private var _desc:String;
private var _ver:String;
private var _auth:String;
internal var _enabled:Boolean = false;
internal function initialise(main:CoCMain, name:String, description:String, version:String, author:String):void {
_main = main;
_name = name;
_desc = description;
_ver = version;
_auth = author;
}
}
}
我的主类加载插件,然后初始化它们:
package me.bleachisback.cocmod {
import me.bleachisback.cocmod.Plugin;
public class CoCMain extends MovieClip {
private function pluginLoadingComplete(e:Event):void {
//This class extends Plugin
var plugin:Object = new e.target.content.mainClass();
var desc:XML = new XML(e.target.content.description);
trace(this); //outputs: [object CoCMain]
plugin.initialise(this, desc.name[0], desc.description[0], desc.version[0], desc.author[0]);
}
}
}
但在最终,当我尝试使用INITIALISE功能,它给了我这个错误:
TypeError: Error #1034: Type Coercion failed: cannot convert me.bleachisback.cocmod::[email protected] to me.bleachisback.cocmod.CoCMain.
at me.bleachisback.cocmod::CoCMain/pluginLoadingComplete()
难不成我不能在一个类转换为自身???
你试图沿...'VAR插件线做一些事情:e.target.content.mainClass()=新e.target.content.mainClass ();'或设置一个类变量...'var newClass:Class = e.target.content.mainClass();'然后'var plugin:newClass = new newClass();' –
是的,那就是我然后它给了我这个错误:'1046:Type找不到或者不是编译时常量:newClass'。我也尝试过'var plugin:Plugin = new e.target.content.mainClass();'但是它只是给了我这个错误:'错误#1034:类型强制失败:无法转换plugin.bleachisback.testPlugin :: TestMain @ afc6309 to me.bleachisback.cocmod.Plugin'即使TestMain扩展插件。 – user2885503
在初始化函数中,尝试初始化'_main',然后将它设置为'main',即'_main = new CoCMain();'然后'_main = main'。错误是说你试图将'CoCMain @ 4dfc041'这个'CoCMain对象'在内存位置'4dfc041'上转换成'Class'。 –