今天在写一个小项目时,发现我在flash CS6里做好的UI(每个UI都有绑定好的类)在flash develop里不能取到这些类,这可恶心了,做这些UI我花了好长时间。以前一直能用,怎么现在就不行呢!
先说我是怎么获取绑定类的:
/**
* 获取加载好的swf里绑定的类
* @param className swf里绑定的类的名称
* @return
*/
public function getClass(className:String):Class
{
if (!inited) throw new Error("资源没加载");
try
{
return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
}
catch (e:Error)
{
throw new IllegalOperationError(className + " definition not found in " + swfLib);
}
return null;
}
比如我在flash cs6 有一个MC,他的绑定类是LoginView,那么我就可以调用以上方法getClass("LoginView"),来new出这个MC。
可是我的不起作用,老抛出
throw new IllegalOperationError(className + " definition not found in " + swfLib);
后来经我用以前项目来做对比发现在我的这个项目里的某个MC我用了字体(flash cs里的),于是我就把这个mc里的字体删掉,然后问题解决了。
至于为什么,我真不知道。但可以知道,有字体的话就会使mc的绑定类失效。
但是我在flash cs建一个文档类,在这个文档类里直接new 绑定类是可以的,不解。。。。