在 FlashDevelop 的移动项目 (Adobe AIR) 中使用 ane

http://blog.csdn.net/dofy/article/details/7955104

现在手机项目开发市场异常繁荣, 各种技术层出不穷, 作为一名跟随 Flash 多年的屌丝前端程序猿来说, Adobe Air 技术让我们看到一丝曙光(可以说很大一束 XDD ), 而且在游戏领域已经有很多成功案例, 效果丝毫不亚于原生语言开发的应用.

但是, 再好的技术也有其不足之处, 目前来说 Air 提供的对移动设备底层功能支持还比较有限, 很多 IOS/Android 公共功能都不支持. 好在 Adobe 提供了很好的解决方案, 那就是 ane (AIR Native Extensions), 他为设备与 Air 之间的沟通起到了很好的桥梁作用.

下面简单介绍下在 FlashDevelop (以下简称 FD)中创建和发布包含 ane 的移动项目的一些注意事项:

当然首先你要有必要的 ane 文件, 下面这个地址描述了如何创建自己的 ane 文件:
http://help.adobe.com/en_US/air/extensions/index.html
你也可以直接使用第三方提供的 ane (包括 Adobe 官方的)

http://www.adobe.com/devnet/air/native-extensions-for-air.html

有了 ane 文件就可以在移动项目中应用一些 Air 原生不支持的功能了, 下面是一些注意事项(例子中用到了上面地址中的 Notification 和 Vibration 两个 ane):

  • 引入 ane: 
    将 ane 文件拷贝到项目目录(一般是 lib 或 ane 文件夹中), 右键->Add To Library
  • 修改 ane 引入方式:
    ane 文件上右键->Options..., 修改为 External library(not included);
  • 修改 application.xml 描述文件, 引入 ane 支持:
    本例中引入了两个 ane 文件, 因此需要增加如下代码:
    [html]  view plain copy print ?
    1. <extensions>  
    2.    <!-- Vibration ane 的 extension id -->  
    3.    <extensionID>com.adobe.Vibration</extensionID>   
    4.    <!-- notification ane 的 extension id -->  
    5.    <extensionID>com.adobe.mobile</extensionID>  
    6. </extensions>  
    当然 FD 4 为此也提供了 UI 支持, 单击图一中所示按钮, 进入 Extensions 选项卡(图二)进行编辑.
    (图一)
    (图一)
    (图二)
    (图二)
  • 增加一些额外支持描述:
    本例中 Vibration 需要增加权限描述, Notification 要增加服务描述(相应的 ane 下载页面中有相关说明), 你可以直接修改 application.xml 或者在上面提到的界面中设置(图三)

    (图三)
  • 修改打包批处理命令:
    由于 FD 的编译打包过程都是通过批处理来实现的, 要增加 ane 支持, 需要对 Packager.bat 文件稍作修改,
    在 %FILE_OR_DIR% 后面增加 -extdir lib/ 一段(不换行), lib 为 ane 所在目录相对路径.

提供本例测试 ane 部分代码(直接放在文档类构造函数里就行):

[javascript]  view plain copy print ?
  1. // 震动实现  
  2. if (Vibration.isSupported)  
  3. {  
  4.     var v:Vibration = new Vibration();  
  5.     v.vibrate(2000);  
  6. }  
  7.   
  8. // 系统提醒  
  9. try  
  10. {  
  11.     var nom:NotificationManager = new NotificationManager();  
  12. }  
  13. catch (err:Error)  
  14. {  
  15.     return;  
  16. }  
  17.   
  18. var n:Notification = new Notification();  
  19.   
  20. n.tickerText = '提醒时状态栏中显示的文字';  
  21. n.title = '提醒的标题';  
  22. n.body = '和内容';  
  23. // 提醒图标类型  
  24. n.iconType = NotificationIconType.INFO;  
  25.   
  26. nom.notifyUser('MY_NOTIFY_TYPE', n);  

基本上需要注意的就这么多, 现在可以在设备上测试一下了, 可能会发生的状况是: 运行程序后, 手机震动的同时在状态栏出现一条提示, 打开状态栏看到带有 info 图标以及标题和内容的一条提醒.

-EOF-


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值