AIR ANE教程.docx

上传人:b****6 文档编号:6620766 上传时间:2023-01-08 格式:DOCX 页数:15 大小:605.06KB
下载 相关 举报
AIR ANE教程.docx_第1页
第1页 / 共15页
AIR ANE教程.docx_第2页
第2页 / 共15页
AIR ANE教程.docx_第3页
第3页 / 共15页
AIR ANE教程.docx_第4页
第4页 / 共15页
AIR ANE教程.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

AIR ANE教程.docx

《AIR ANE教程.docx》由会员分享,可在线阅读,更多相关《AIR ANE教程.docx(15页珍藏版)》请在冰豆网上搜索。

AIR ANE教程.docx

AIRANE教程

AIRANE详细教程

以下教程是用在android手机上的

首先,在这个教程里要准备的工具:

1、flashcs6

2、flashbuilder4.6(低版本的没用过,介意大家还是用我提供的这个版本);

3、adt打包工具(论坛回复本帖就能下载);

4、数字证书(就是用来签证的玩意,可以向adobe申请,也可以自己用flashcs6创建);

一、创建jar文件

 .jar就是个java文件,android系统原生就是java来写的,所以我们想扩展android上的air,就得有个jar文件来实现你要的功能。

1、先打开FB(就是flashbuilder,以后都叫它FB了)。

建一个java项目。

(文件-新建-其它-java项目|  file-new-other-java-javaproject)。

然后,随便起个名字,最后点击完成就行啦。

 

  然后,看看项目目录,应该就是这个:

 

然后,对着项目点右键(就是对着myExtensonJava点右键),点击属性,再选java构建路径,然后选库路径、再选添加外部jar,再找到flashcs6目录下AIR3.2\lib\android\的FlashRuntimeExtensions.jar文件(properties—javabuiltpath—library—AddExternalJARs——XXX目录下的FlashRuntimeExtensions.jar—打开—OK)

  如图:

 

然后,在项目的src文件下建一个包,包名自定,我这用的是com.three,接着再在这个包下建3个java类。

先看看项目结构

 

各JAVA代码如下:

1、Extension的代码

1.packagecom.three;

2.importcom.adobe.fre.*;

3.

4.//Extension这个类是AS与JAVA交互的最基础的入口,其实很简单,也就这么点东西

5.publicclassExtensionimplementsFREExtension{

6.

7.

8.@Override

9.publicFREContextcreateContext(Stringarg0){

10.//new一个新的threeExtensionContext出来;

11.returnnewthreeExtensionContext();

12.}

13.

14.@Override

15.publicvoiddispose(){

16.//这个销毁资源的方法,暂时没有什么用,空着

17.

18.}

19.

20.@Override

21.publicvoidinitialize(){

22.//初始化方法,暂时用不着,空着先

23.

24.}

25.

26.}

复制代码

2、threeExtensionContext的代码:

1.packagecom.three;

2.

3.importjava.util.*;

4.

5.importcom.adobe.fre.FREContext;

6.importcom.adobe.fre.FREFunction;

7.

8.publicclassthreeExtensionContextextendsFREContext{

9.

10.publicthreeExtensionContext(){

11.//这个貌似也用不着,空着

12.}

13.

14.@Override

15.publicvoiddispose(){

16.//空着

17.

18.}

19.

20.@Override

21.publicMapgetFunctions(){

22.//下面这个比较关键,它的作用是定义as与JAVA具体方法通信的重要接口

23.MapfunctionMap=newHashMap();

24.functionMap.put("test",newtest());

25.returnfunctionMap;

26.}

27.

28.}

复制代码

3,test的代码:

1.packagecom.three;

2.

3.importcom.adobe.fre.FREContext;

4.importcom.adobe.fre.FREFunction;

5.importcom.adobe.fre.FREInvalidObjectException;

6.importcom.adobe.fre.FREObject;

7.importcom.adobe.fre.FRETypeMismatchException;

8.importcom.adobe.fre.FREWrongThreadException;

9.

10.publicclasstestimplementsFREFunction{

11.

12.@Override

13.//这个类作用就是AS调用CALL方法给java传一个FREObject的参数组,然后,java给as返回一个FREObject

14.publicFREObjectcall(FREContextarg0,FREObject[]arg1){

15.//定义方法的具体内容

16.inta=0;//声明一个整形变量a

17.

18.FREObjectb=null;//声明一个FREObject对象b,待会返回用的;

19.try{

20.a=arg1[0].getAsInt();//读取as传过来的整理参数并赋值给a;

21.}catch(IllegalStateExceptione){

22.//不知道是啥,FB自己添加的

23.e.printStackTrace();

24.}catch(FRETypeMismatchExceptione){

25.//不知道是啥,FB自己添加的

26.e.printStackTrace();

27.}catch(FREInvalidObjectExceptione){

28.//不知道是啥,FB自己添加的

29.e.printStackTrace();

30.}catch(FREWrongThreadExceptione){

31.//不知道是啥,FB自己添加的

32.e.printStackTrace();

33.}

34.

35.

36.

37.try{

38.b=FREObject.newObject(a*100);//调用FREObject的静态方法把a这个整型变量写到b里去;

39.}catch(FREWrongThreadExceptione){

40.////不知道是啥,FB自己添加的

41.e.printStackTrace();

42.}

43.

44.//

45.returnb;//再返回b;

46.}

47.

48.}

复制代码

最后,写完了,没有报错的话,就右键项目,点导出-java-jar文件。

二、创建SWC文件

还是用FB,这次来创建swc库。

至于什么是swc,自己去谷哥XX一下吧。

1、用FB,新建一个flex库项目(flexlibrary)。

就是  文件-新建-flex库项目。

如果找不着,就文件-新建-其它-flashbuilder--flex库项目。

 

2、写代码:

1.packagecom.three

2.{

3.importflash.external.ExtensionContext;

4.publicclasscallJava

5.{

6.varcontext:

ExtensionContext;

7.publicfunctioncallJava()

8.{

9.

10.context=ExtensionContext.createExtensionContext("com.three.Extension","");

11.

12.}

13.publicfunctioncallJavaTest(value:

int):

int{

14.vara:

int;

15.a=context.call("test",value)asint;

16.returna;

17.}

18.}

19.}

20.

复制代码

OK,看看项目结构:

 

看到myExtension.swc之后右键点击它,然后复制出来,跟刚才那个jar文件放在一起。

然后,复制一个myExtension.swc的副本,把它改成myExtension.zip,并解压到当前目录;

三、extension.XML文件

extention.XML文件,上面定义了ane运行环境配置等乱七八遭的东西;

1、新建一个文本文件,打开,粘入以下代码

1.

2.com.three.Extension

3.1

4.

5.

6.

7.myExtensionJava.jar

8.com.three.Extension

9.com.three.Extension

10.

11.

12.

13.

复制代码

然后把这个文本文件改成extension.xml就行了,同样,把它跟jar和swc放在一起。

四、签证文件(P12)

这个数字签证文件,要申请正式的挺麻烦的(还得花钱,并提供公司相关信息。

)不过还好用flash可以自己创建开发版的。

以下就是自己创建签证文件的过程;

1、打开flash,新建一个air项目(airfordesktop或是airforandroid还是airforios都可以);

2、文件—AIR3.2forXXX配置—签名—创建。

然后自己慢慢填吧,填好了保存出来,跟刚才创建的那一堆东西放在一起。

五、ADT打包

注:

此ADT可不是android的那个ADT。

这个ADT只是一个打包工具,文件是adt.jar。

要使用它,你的电脑上还得安装java运行环境。

这里就不写了,去谷哥XX一下,有很多教程。

这工具回复贴子有下载,下载完后同样把它放到刚才那个文件目录下,现在目录应该是这样子:

 

然后,在这个文件夹下按着shift键点鼠标右键,在弹出的菜单里选:

在此处打开命令窗口。

 

然后就开始输入指令吧。

这玩意是命令行工具,我就直接把命令粘下来了

java-jaradt.jar-package-tsanone-storetypepkcs12-keystorea.p12-storepass123-targetanem.aneextension.xml  -swcmyExtensionAs.swc-platformAndroid-ARMlibrary.swfmyExtensionJava.jar

这些命令使用起来其实挺简单的,不过有几个地方要注意。

一个  -tsanone ,这个在很多教程里都没有写这句,也许你们那不知道,会报一个时间戳的错。

因为如果不写,adt打包会连接一个国外的网站获得时间戳,但人家那国外网站不让我们国内人民访问,所以报错。

解决方法就是让它别写时间戳,也就是加-tsanone。

  要么用fanqiang软件也行。

这两者随便选择那个;

我现在是生成了一个叫m.ane的文件了,不知道你们是不是按照我提供的教程一步一步的做的。

如果是的话,就下面可以进入代码测试啦。

现在可以写代码来测试了:

1、用flashcs6新建一个airforandroid项目;

2、打开文件—actionScript设置—库路径—点击(浏览到本机扩展(ANE)文件)—找到我们生成的那个ANE文件

 

点确定。

3、在flash面板上,点击窗口,然后组件。

打开组件面板,拖两个textArea和一个button到舞台上。

这两个textArea分别命名为txt1和txt2  button命名为btn

如图:

 

4、按F9键打开动作面板,输入代码:

1.importcom.three.callJava;

2.importflash.events.MouseEvent;

3.varcon:

callJava=newcallJava();

4.btn.addEventListener(MouseEvent.CLICK,onClick);

5.functiononClick(e){

6.varcj:

callJava=newcallJava();

7.vara:

int=int(txt1.text);

8.varb:

int=cj.callJavaTest(a);

9.txt2.text=b.toString();

10.}

复制代码

想要看效果,在Windows下是不行的,必须要连上android手机,然后在AIR3.2forandroid设置里部署面板上选上发布以后在连接的android设置运行程序。

当然,签名证书也要填上的哟。

另外一点是,手机上要安装air。

如果手机不想装air,也可以,同样,在布署面板里勾选将air运行时嵌入应用程序。

然后点发布就可以测试效果了。

如果发布的时候提示版本错误,那就回到flex库项目那,把那个myExtensinAs项目的flex库编辑器的附加的编译器参数里加上-swf-version=11

 

最终运行结果呢,因为是在手机上,不好截图,就不展示了... 

大概的样子就是,屏幕上有两个文本框,在上面那个文本框里输入一个整数,然后点击按钮,下面那个文本框就会输出上面那个文本框的10倍的整数。

 虽然这功能相当简单,而且,根本用不着这么复杂的方法。

不过,我这只是一个抛砖引玉的作用,到底ANE能干嘛,还靠大家一起发掘与探索。

最后我把要用到的东西打一下包,顺便工程也打一下吧

QQ:

2462611616

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1