在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。

相关文章:

  • 2021-11-04
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
  • 2021-11-08
  • 2021-08-31
  • 2021-05-12
猜你喜欢
  • 2021-04-13
  • 2021-09-12
  • 2022-12-23
  • 2021-08-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案