:::: 菜单 ::::

Flash编译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已经把参数加进去了。

我prefer方法1。

延伸阅读