[AIR] NativeExtension在IOS下的开发实例 --- Flex库项目的创建(二)

来源:http://bbs.9ria.com/thread-102038-1-1.html

上一章,我已经介绍了如果创建IOS库文件,并定义了两个方法ShowIconBadageNumber和InitNativeCode。好了。这一篇,我们主要来学习一下,如果创建Flex库项目。
(小提示,要安装Flash Builder4.6的时候,要把以前的Flash BUilder4.5卸载,不然会造成安装不成功的。)
1,打开安装好的Flash Builder 4.6 Prelease,创建一个Flex库项目。(小提示,这里建议用SDK4.5.1.不要用4.6.因为本人在发展用4.6的时候打包ANE有点问题。)
     (在配置一项确保选中的是通用库(适用于Web,桌面和手机项目),Flash SDK选4.5.1.如果安装好后没有。请去opensource.adobe.com下载一下该SDK)

2,OK,创建好之后,新建一个类文件,用来供后面的测试ANE可用。我们这里为了测试之前在Xcode定义的两个方法,内容如下:

  1. package com.coolexp
  2. {
  3.         import flash.external.ExtensionContext;
  4.         public class ANELibUtils
  5.         {
  6.                 private static var extContext:ExtensionContext = null;
  7.                 public function ANELibUtils()
  8.                 {
  9.                         if (!extContext)
  10.                         {
  11.                                 initExtension();
  12.                         }
  13.                 }
  14.                 public static function showBadageNum(num:int):int{
  15.                         if (!extContext)
  16.                         {        
  17.                                 initExtension();
  18.                         }
  19.                         return int(extContext.call("ShowIconBadageNumber",num));
  20.                 }
  21.                 //Initialize the extension by calling our "initNativeCode" ANE function
  22.                 private static function initExtension():void
  23.                 {
  24.                         trace ("Vibration Constructor: Create an extension context");
  25.                         
  26.                         // The extension context's context type  is NULL, because this extension
  27.                         // has only one context type.
  28.                         extContext = ExtensionContext.createExtensionContext("com.coolexp.ANELib", null);
  29.                         //com.coolexp.ANELib这里我们用这个ExtensionID,确保后面在打包ANE文件的时候一致就可以了。
  30.                         extContext.call("initNativeCode");
  31.                 }
  32.         }
  33. }
复制代码

3,OK,Build项目,会生成一个SWC后缀后的文件,复制一份出来,把SWC改成ZIP,解压,里面有一个XML文件,一个SWF文件,复制出来。各用。再把SWC文件也复制出来,备用。

4.新建一个extension.xml的文件,内容如下:
(如果下面的com.coolexp.ANELib,要跟上面的AS类文件里一致,libCoolExpLibANEIOS.a. 就是我们第一篇文章里得到文件)

  1. <extension xmlns="http://ns.adobe.com/air/extension/2.5">
  2.         <id>com.coolexp.ANELib</id>
  3.         <versionNumber>1</versionNumber>
  4.         <platforms>
  5.                 <platform name="iPhone-ARM">
  6.                         <applicationDeployment>
  7.                                 <nativeLibrary>libCoolExpLibANEIOS.a</nativeLibrary>
  8.                                 <initializer>ExtInitializer</initializer>
  9.                                 <finalizer>ExtFinalizer</finalizer>
  10.                         </applicationDeployment>
  11.                 </platform>
  12.         </platforms>
  13. </extension>
复制代码

5.OK,这部分到此就OK了。

下面是Actionscript Library的项目下载地址:   <ignore_js_op> CoolExpANELib.fxpl.zip (2.22 KB, 下载次数: 194)

posted @ 2014-07-04 10:32  sunminmin2011  阅读(274)  评论(0编辑  收藏  举报