02
2015
02

ane入门

尝试用as3做移动端开发,发现好多功能都实现不了,然后发现adobe提供了方法:ane(AdobeAir的本地扩展)。

从天地会下载了好多打包好的ane,尝试了无数次,都不成功,真的感觉都要放弃了。断断续续的试了好几个星期,总算成功了。所以记录一下。

参考文章:

制作ane参考的下面这篇文章:

http://bbs.9ria.com/forum.php?mod=viewthread&tid=418251&highlight=ane

完全按照文章写的来做,结果就是不成功。

后来参考了下面这篇文章:

http://bbs.9ria.com/thread-156257-1-1.html

试了好多次,终于成功了。

对比一下,两篇文章有什么不同,发现:

1、java里边继承FREFunction的类里边写的不一样:

1)第一篇文章是用的“Toast.makeText(arg0.getActivity(), "调用了 MyFun 的 call", Toast.LENGTH_SHORT).show();”,不懂java,但是后来看效果是弹出一条提示"调用了 MyFun 的 call",然后会自动消失。第二篇文章用的是,as调用的时候传参,然后返回值(其实初次测试,连传参最好都省了,直接返回值,出错的几率会降低);

2)extension.xml中id不一样,第一篇用的是“包名”,第二篇用的是“包名”+“类名”;

3)swc里边定义ExtensionContext的方式不一样,第一篇是静态变量,第二篇是成员变量(其实我一直不知道什么是成员变量);

4)打包的方式不一样。

成功后个人总结:

1)建议用返回值的方式,可以在flash里边显示返回值,这个我们比较熟悉。具体怎么返回,参考第二篇文章。

2)extension.xml中的id,只要保证和你ExtensionContext.createExtensionContext函数里边第一个参数一样就行。

3)swc里边定义ExtensionContext不建议用静态变量,官方说是用到的时候在创建,否则会占用资源,其实我倒不在乎,只是静态变量创建的比较早,容易看不到效果,比如你用第一篇文章的方法,就可能界面出现的时候,效果已经结束了。

4)两种打包方式都可以。

调试的时候,可能会报错“Error: Requested extension com.hanyeah is not supported for Windows-x86.”如果是这个错误,其实已经成功了,发布,然后放到手机上看效果就可以了。如此看来用ane调试起来确实很麻烦,连用trace调试的的机会都没有。

========================================================

成功之后,再来看一看怎么用。

as调用ane,传参数,接收返回值已经成功了。

ane貌似不能调用as,ane要调用as,可以通过事件,ane里边context调用dispatchStatusEventAsync,发送事件,可以填写两个参数,as里边通过侦听status事件来接收,传递的两个参数是code和level,可以是任意字符串。(测试成功)

而且ane和as之间还可以共享对象,actionScriptData,as里边和ane里边都可以访问(可读写)。

这样双向通信就都没有问题了。

java里边context的api看这里:http://help.adobe.com/zh_CN/air/extensions/WS39e706a46ad531be-fd70de2132a8f3874e-8000.html

========================================================

ane还是可用的,第一次用比较麻烦,一次成功,之后就简单多了。只是没法调试确实是个比较麻烦的问题。

关于调试:

如果用flash builder,可以参考一下:

http://tmtbe.blog.163.com/blog/static/3965819420144128244510/

如果和作者一样用flash pro,好好看一下这个,写的很好,顺便解决“Error: Requested extension com.hanyeah is not supported for Windows-x86.”的问题:

http://www.tuicool.com/articles/NJbeqe




第二篇参考文章中的sample是可以直接用的,可以先下载试一试。去下载实例

« 上一篇下一篇 »

相关文章:

闪电效果  (2017-11-28 15:4:19)

线段与椭圆的交点  (2017-1-6 14:43:41)

as3录制swf并保存flv视频  (2016-12-28 8:43:41)

解九连环  (2016-12-1 20:58:11)

as3实现setTimeout和trace  (2016-11-10 16:47:37)

registerCursor注册系统光标  (2016-9-14 9:49:40)

鼠标光标管理  (2016-9-13 17:44:3)

变形框(transform)实现  (2016-9-13 16:56:6)

flash文本消除锯齿不显示  (2016-8-25 11:43:31)

greenSock的easing曲线  (2016-8-24 18:30:11)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。