加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash打包ane在安卓上使用笔记

发布时间:2020-12-15 17:54:31 所属栏目:百科 来源:网络整理
导读:http://www.111cn.net/flash_a/As3/48977.htm ? 一篇关于flash打包ane在安卓上使用笔记,有需要学习的朋友不防进行参考。 ? 1.as3中的ExtensionContext是其核心类,负责与Java代码的交互。 ExtensionContext需要调用createExtensionContext方法创建和初始化Ja

http://www.111cn.net/flash_a/As3/48977.htm

?

一篇关于flash打包ane在安卓上使用笔记,有需要学习的朋友不防进行参考。

?

1.as3中的ExtensionContext是其核心类,负责与Java代码的交互。

ExtensionContext需要调用createExtensionContext方法创建和初始化Java端的本地代码。

而是用call方法可以调用具体的Java代码并获得返回结果。同时Extension还会接受从java代码抛出的事件。

生成的jar会在extension.xml标识

?

2.本地java项目部分

关键接口 FREExtension 是java端自定义代码的入口,生成ane时,会在extension.xml里设置这个入口类

关键类 FREContext(保存"key":FREFunction的键值映射)

关键接口 FREFunction 只有一个call方法需要实现,

?

3.flash调用java流程:

1)extContext = ExtensionContext.createExtensionContext(EXTENSION_ID,""); //EXTENSION_ID要与extension.xml中的id标签一致

这行代码会使得java里的FREExtension被new,接着FREContext被new ,键值映射生效

2)extContext.call(字符串)//这个字符串就是java 的FREContext里定义的键值的键,这时相关的FREFunction就会被new 并自动调用call方法

?

4.java返回数据给flash:

1)flash里:extContext.addEventListener(StatusEvent.STATUS,onStatusHandler);

2)java里:FREContext.dispatchStatusEventAsync("code","level");

3)onStatusHandler(e:StatusEvent){e.code 就=="code",e.level=="level"}

?

5.生成ANE文件

随便新建一个目录作为工作目录(AneBuild),并为其建立子文件夹Android-ARM

将Flex Library项目中自动生成的.swc文件和extension.xml复制到AneBuild目录下

以ZIP方式解压.swc文件获取catalog.xml和library.swf文件并存到Android-ARM文件夹下

拷贝AneTestNative.jar到Android-ARM文件夹下

拷贝自己的签名文件.p12到AneBuild文件夹下

最终结果

AneBuild:Android-ARM文件夹、.swc文件、extension.xml、.p12文件

Android-ARM:catalog.xml、library.swf、AneTestNative.jar

使用命令提示符进入到AneBuild文件目录下,使用adt命令对上述文件打包

[plain] view plaincopy

"D:developAdobeAdobe Flash Builder 4.5sdks4.5.0-air3.0binadt" -package -storetype PKCS12 -keystore linxcool.p12 -storepass 08002615 -target aneTest.ane extension.xml -swc *.swc -platform Android-ARM -C Android-ARM .

linxcool.p12:签名文件

08002615:签名密码

aneTest.ane:生成的ANE文件名

?

6.制作ane时的swc注意:flash builder4.6需要在编译器附带参数中加入“-swf-version 13”否则打包ane时会出现Invalid swc file.The extension NameSpace requires the swf verison to be 13 or lower

?

7,如果ane打包时,Android-ARM/res文件夹下有这个的文件:dpay_btn_gray_press.9.png,那么flash builder发布apk时就会出错:aapt tool failed:Error:C盘下的应用程序临时文件找不到图片!

?

8.如果java项目的lib里有文件夹,如armeabi,那么在打包ane的时候,也要放在Android-ARMlibs下

?

9.bat批处理命令学习:

(1)得到当前.bat文件的所在目录:set root_directory=%~dp0

(2)输出:echo

(3)使用变量:%root_directory%

?

10.FREFunction call方法只有两个参数call(FREContext arg0,FREObject[] arg1) ,不管flash里传来多少参数,都被放在FREObject[] arg1中

FREObject用来包装flash的对象,返回参数给flash,用的也是这个类型

更多详细内容请查看:http://www.111cn.net/flash_a/As3/48977.htm

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读