在Adobe Air Mobile项目中,使用ANE包

Adobe Air Mobile项目中,有两种情况下,必须借助ANE(Adobe Native Extension)的帮助,才能实现想要的功能。

1  需要访问移动设备的某些状态值,比如,网络连接情况
2  一些第三方扩展库提供的功能只有ios版本,各种大牛编写了对应的第三方ANE后,可以通过这些ANE实现想要的功能,例如:GameCenter。
下面,以检查网络连接为例,简述一下如何在项目中使用ANE包。
1 请在 [这里](http://www.adobe.com/devnet/air/native-extensions-for-air.html) 下载,NetworkInfo的ANE包。
2 打开项目的属性面板,切换到 ActionScript构建路径 --> 本机扩展选项卡,如图:
[![](http://tiger-a-s-s.tobybai.cn/2012.10.29.25.png)](http://tiger-a-s-s.tobybai.cn/2012.10.29.25.png)
项目属性中的本地扩展选项
3  点击添加ANE,定位到刚刚下载的ANE包。
[![](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.33.26.png)](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.33.26.png)
选定ane包
4  在上面一步操作之后,你已经可以在项目中使用ANE的扩展功能了,和使用普通的swc包一样,引入类,并进行开发。此时如果你在本机进行调试,会弹出这样的对话框:
[![](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.40.30.png)](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.40.30.png)
如果点击确定的话,未必会在项目运行中出现什么错误,但是ANE的相应机能就完全没有发挥出来了。可以通过注释掉对应的引用代码,实现开发调试,在发布之前,再将对应的代码还原回去即可。这里确实有些麻烦,希望下一个版本的Flash Builder中,将这个问题弄得更智能一些。
5  发布成ipa时,如果要让ane奏效,需要在打包选项中,勾选对应的ANE包。这个选项的框隐藏在最右方,需要滚动条才能看见它,我在一开始的时候找了半天。
[![](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.48.26.png)](http://tiger-a-s-s.tobybai.cn/%2525E5%2525B1%25258F%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A7%2525202012-12-20%252520%2525E4%2525B8%25258A%2525E5%25258D%25258810.48.26.png)
以上,就完成了引入和打包一个ANE包的过程,使用ANE的代码部分,在连接中有详细讲解,不再赘述。