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,用的也是这个类型

时间: 2024-10-27 10:36:53

flash打包ane在安卓上使用笔记的相关文章

Flash打包软件 AGE FlashPacker官方下载_常用工具

AGE FlashPacker是一款操作极为简便的Flash打包软件,它可将一个主Flash动画和数个相关的资源文件(不限文件类型)打包成一个独立的exe程序.  该软件可用于Flash电子杂志.Flash课件演示.光盘安装向导动画等的打包整合,并且打包后的动画播放效率不受任何影响.同时我们在开发中充分考虑了用户操作上的便捷性需求,使得操作简便这一特点在同类软件中堪称最佳.  AGE FlashPacker普及版提供了打包Flash动画所需的各项基本功能,完全能够胜任大多数Flash电子杂志整合

Edge浏览器在网页上做笔记和画图的功能在哪里?

  win10的Microsoft Edge浏览器可以直接在网页上做笔记,并且可以保存或者分享,本文介绍如何使用这个功能? 1.打开Edge浏览器,并且任意打开一个页面(或者打开想做笔记的页面),然后点击右上角的"Web笔记"图标,如图所示 2.这时会出现Web笔记工具栏,如图所示 3.可以在工具栏中选择不同的画笔工具在网页上做标记,主要有 1) 画笔 2)荧光笔 3)橡皮擦 4.点击如图所示图标,在页面上加入文字描述 5.点击如图所示的剪刀图标,可以截图 6.把截图复制到其他软件,比

这个json安卓上传数据代码怎么写?

问题描述 这个json安卓上传数据代码怎么写? public static void chuanzhi(){Http c = new Http();String params = ""{'name':'test1''pwd':'123''ruid':'test2'}"";Eryptogram eryptogram = new Eryptogram();params = eryptogram.encryptData(params);String d = url + &

usb-请问一个安卓上的RFID读卡器问题

问题描述 请问一个安卓上的RFID读卡器问题 要在安卓的pad上开发一个刷m1卡的项目, 请问有经验的朋友, 哪种RFID读卡器好, 可以直接插在安卓的micro usb上的

swiper 页面 在安卓上 有白色区块 在ios上表现的很好没有白色区块 看图

问题描述 swiper 页面 在安卓上 有白色区块 在ios上表现的很好没有白色区块 看图 解决方案 应该是swiper bug,和软件开发商百捷科技联系

关于安卓上图像处理的问题

问题描述 关于安卓上图像处理的问题 想写个程序,将手机对着一个明暗闪烁的led灯,如何调用摄像头编写程序能够识别灯的亮灭,亮的话返回1灭的话返回0,有没有思路或是相似的例程?求大神解惑 解决方案 如果你不能确保背景一直是纯黑的话,果断opencv,深入研究一下:http://www.opencv.org.cn/ 解决方案二: 印象中有一个传感器吧,好像是光传感器,可以捕捉外界的数据,建议你试一试咯.希望对你有用 解决方案三: 这个都不用什么图像处理库吧,只要原生api能够判断图像中出现了led的

ios-html5能代替IOS和安卓上的原生程序吗?

问题描述 html5能代替IOS和安卓上的原生程序吗? html5能代替IOS和安卓上的原生程序吗? 看网上很多人讨论这个? 解决方案 不能 受权限限制,调用不了硬件,比如手电筒 或读取联系人信息等 解决方案二: 要看什么类型的程序.HTML5非常适合跨平台,不需要安装和部署,也不需要从app store下载,对于大多数应用来说,它都是一个理想的选择.同时html5对本地资源的访问比以前也有了很大的进步.但是在那些深度需要和本地系统交互以及对性能有要求的场合,它还是不如原生的应用,比如游戏. 解

在安卓上怎样实现百度地图定位

问题描述 在安卓上怎样实现百度地图定位 百度的demo,我用了之后程序崩溃,在网上找的代码又都不对.有没有大神给我发个具体流程.最好能详细一点. 解决方案 首先你得有这些包,其中android-surport-v4.jar不是必须有的,新建项目自动生成的,可以不管它,但是其他的jar包以及文件夹以及so文件都是必须的 其次AndroidMainfest.xml文件中至少有以下内容 1.权限,这个你可以从Demo中考一部分你需要的出来 2. android:name="com.baidu.lbsa

机器学习:如何在安卓上集成TensorFlow

我们都知道,谷歌有一个开源库叫做TensorFlow,可被用在安卓系统中实现机器学习.换言之,TensorFlow是谷歌为机器智能提供的一个开源软件库. 我在网络上搜寻了很久,都没有找到在安卓上搭建TensorFlow的简单的方法或实例.仔细查阅许多资料以后,我终于可以搭建它了.于是,我决定把我搭建的过程写出来,这样其他人就不必再浪费时间了. 这篇文章是写给那些熟悉机器学习并且知道怎样为机器学习搭建模型的人的(在这个示例中我会使用一个预训练模型).近期,我会写一系列关于机器学习的文章,这样每个人