Flash编译Robotlegs的项目导致运行时报错
search :robotlegs 无法访问空对象引用的属性或方法。
在Flash IDE里编译使用了robotleges的项目,运行时总是报null(无法访问空对象⋯⋯)的错误。
以前一直都只在FDT里编译就没这种问题,我纳闷地把DocumentClass用FDT编译了一下,居然没任何问题。仅仅是在Flash IDE里编译就会运行时报错。
分析原因可能是注入失败,因为报错的都是Inject的变量。
最终原因是Flash编译时候忽略了[Inject]这个Metadata导致的。
解决方法
方法1:只要把发布设置里的“发布SWC”打钩,就可以强制Flash编译器让所有Metadata生效。
方法2:增加编译器参数 -keep-as3-metadata+=Inject -keep-as3-metadata+=PostConstruct
。
平时用FDT编译之所以不会出这种错误是因为robotlegs的swc已经把参数加进去了。