flex ane的使用方法
更新时间:2024-06-16 19:11:01 阅读量: 综合文库 文档下载
- flexible推荐度:
- 相关推荐
这几天用air做android项目,发现个功能air实现不了。得用android原生技术,但小弟菜蔬学浅,android原生是搞不懂了,还是AS用着顺手。于是跟度娘求助,然后就发现了ANE这东东,但发现关于ane的中文资料灰常少,度娘上的资料基本都是官方性质的,用词都很官方(神马是上下文环境啊,完全不懂 - -#),后来还是谷哥靠谱,资料稍多点,但都是E文的呃,但这小小的困难怎么能难倒哥呢,要知道,哥电脑上可是装了有道词典的! 于是在走了N多弯路后终于把这玩意弄懂了(不容易啊 - -#)。本着造福后人的思想,小生就把这个东西的玩法用天朝文写下来啦。
OK,先简单说说ANE是啥吧(不想看废话的请跳过这段)。 ANE(AIR Native Extension),就是本机扩展,顾名思 就是对air运行的本机的扩展(还是没听懂?)。好吧,我的理解就是air不能实现的功能,就用ane来实现。比如我要用air来控制电脑的鼠标移动,这个功能貌似air做不到吧,如果能做到,那air就可以用来做病毒了 - -! 显然,adobe不会让你这么做的。 但C语言能完成这功能,于是乎,ANE的作用就出来了——把C和as打包起来,AS调用C来完成AS不能完成的任务。好吧,至于ANE还能干嘛,你们自己慢慢YY,下来我就开始写教程了。
以下教程是用在android手机上的: 首先,在这个教程里要准备的工具: 1、flash cs6
2、flash builder 4.6 (低版本的没用过,不是很清楚); 3、adt打包工具(回复本帖就能下载哟,亲);
4、数字证书(就是用来签证的玩意,可以向adobe申请,也可以自己用flash cs6创建);
OK,东西准备好了吧? let's go!
一、创建jar文件
.jar就是个java文件,android系统原生就是java来写的,所以我们想扩展android 上的air,就得有个jar文件来实现你要的功能。
1、先打开FB(就是flash builder,以后都叫它FB了)。建一个java项目。(文件-新建-其它-java项目| file-new -other-java-java project)。然后,随便给它起个名字,完成。
然后,看看项目目录,应该就是这个:
然后,对着项目点右键(就是对着myExtensonJava点右键),点击属性,再选java构建路径,然后选库路径、再选添加外部jar,再找到flash cs6目录下AIR3.2\\lib\\android\\ 的FlashRuntimeExtensions.jar文件(properties—java built path—library—Add External JARs ——XXX目录下的FlashRuntimeExtensions.jar—打开—OK) 如图:
然后,在项目的src文件下建一个包,包名自定,我这用的是com.three,接着再在这个包
下建3个java类。先看看项目结构各JAVA代码如下:
1、Extension的代码
? ? ? ? ? ? ? ? ?
package com.three; import com.adobe.fre.*;
//Extension这个类是AS与JAVA交互的最基础的入口,其实很简单,也就这么点东西 public class Extension implements FREExtension {
@Override
public FREContext createContext(String arg0) {
?? // new一个新的threeExtensionContext出来; ?? return new threeExtensionContext(); ?? } ??
?? @Override
?? public void dispose() {
?? // 这个销毁资源的方法,暂时没有什么用,空着 ?? ?? } ??
?? @Override
?? public void initialize() {
?? // 初始化方法,暂时用不着,空着先
?? ?? } ?? ?? }
复制代码 2、threeExtensionContext的代码:
?? package com.three; ??
?? import java.util.*; ??
?? import com.adobe.fre.FREContext; ?? import com.adobe.fre.FREFunction; ??
?? public class threeExtensionContext extends FREContext { ??
?? public threeExtensionContext(){ ?? //这个貌似也用不着,空着 ?? } ??
?? @Override
?? public void dispose() { ?? // 空着
?? ?? } ??
?? @Override
?? public Map
?? // 下面这个比较关键,它的作用是定义as与JAVA具体方法通信的重要接口 ?? Map
复制代码 3,test的代码:
?? package com.three; ??
?? import com.adobe.fre.FREContext; ?? import com.adobe.fre.FREFunction;
?? import com.adobe.fre.FREInvalidObjectException; ?? import com.adobe.fre.FREObject;
?? import com.adobe.fre.FRETypeMismatchException; ?? import com.adobe.fre.FREWrongThreadException;
??
?? public class test implements FREFunction { ??
?? @Override
?? //这个类作用就是 AS调用CALL方法给java传一个FREObject的参数组,然后,java给as返回一个FREObject
?? public FREObject call(FREContext arg0, FREObject[] arg1) { ?? // 定义方法的具体内容 ?? int a=0; //声明一个整形变量a ??
?? FREObject b = null; //声明一个FREObject对象b,待会返回用的; ?? try {
?? a=arg1[0].getAsInt();//读取as传过来的整理参数并赋值给a; ?? } catch (IllegalStateException e) { ?? //不知道是啥 ,FB自己添加的 ?? e.printStackTrace();
?? } catch (FRETypeMismatchException e) { ?? //不知道是啥 ,FB自己添加的 ?? e.printStackTrace();
?? } catch (FREInvalidObjectException e) { ?? //不知道是啥 ,FB自己添加的 ?? e.printStackTrace();
?? } catch (FREWrongThreadException e) { ?? //不知道是啥 ,FB自己添加的 ?? e.printStackTrace(); ?? } ?? ?? ?? ?? try {
?? b=FREObject.newObject(a*100);//调用FREObject的静态方法把a这个整型变量写到b里去; ?? } catch (FREWrongThreadException e) { ?? // //不知道是啥 ,FB自己添加的 ?? e.printStackTrace(); ?? } ?? ?? //
?? return b;//再返回b; ??? } ??? ??? }
复制代码 最后,写完了,没有报错的话,就右键项目,点导出-java-jar文件。
二、创建SWC文件
还是用FB,这次来创建swc库。至于什么是swc,自己去谷哥百度一下吧。
1、用FB,新建一个flex库项目(flex library)。就是 文件-新建-flex库项目。如果找不着,就 文件-新建-其它-flash builder --flex库项目。
4、按F9键打开动作面板 ,输入代码:
??? import com.three.callJava; ??? import flash.events.MouseEvent; ??? var con:callJava=new callJava();
??? btn.addEventListener(MouseEvent.CLICK,onClick); ??? function onClick(e){
??? var cj:callJava=new callJava(); ??? var a:int=int(txt1.text); ??? var b:int=cj.callJavaTest(a); ??? txt2.text=b.toString(); ??? }
复制代码 想要看效果,在Windows下是不行的,必须要连上android手机,然后在AIR 3.2 for android 设置里 部署面板上选上 发布以后在连接的android设置运行程序。当然,签名证书也要填上的哟。另外一点是 ,手机上要安装air。。如果手机不想装air,也可以,同样,在布署面板里 勾选 将air运行时嵌入应用程序。
然后点发布就可以测试效果了。如果发布的时候提示版本错误,那就回到 flex库项目那,把那个myExtensinAs项目的flex库编辑器的 附加的编译器参数里 加上 -swf-version=11
。
OK,最终运行结果呢,因为是在手机上,不好截图,就不展示了... 大概意思呢就是,屏幕上有两个文本框,在上面那个文本框里输入一个整数,然后点击按钮,
下面那个文本框就会输出上面那个文本框的10倍的整数。
虽然这功能相当简单,而且,根本用不着这么复杂的方法。不过,我这只是一个抛砖引玉的作用,到底ANE能干嘛,有待兄弟们慢慢发掘。
正在阅读:
flex ane的使用方法06-16
外研社初中英语全年级单词表06-08
2018届上海市各高中名校高三英语题型分类专题汇编--摘要写作(Sum05-30
《数据结构》期末考试及答案10-02
2015-2016年张掖四中八年级上第二次月考数学试卷含答案解析05-19
英语单词图像记忆法(初二单词)(1)04-19
牙体牙髓病学(符答案)11110-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 使用方法
- flex
- ane
- 常见http错误代码
- 湖南天子山导游词
- 2018年11月入党积极分子思想汇报:加强对党的认识
- 八大名画之赏析
- 个税练习题答案
- “青年安全生产示范岗”创建申报表
- 施工项目成本控制问题研究开题报告、文献综述
- 中国电信校园营销策划书
- 唯品会发展与营运状况分析文档
- 裕兴新概念英语第二册笔记 第27课
- 安全紧急救援预案
- 完整升级版北师大版第四册数学教案全册
- 环保小卫士作文大全 八篇
- 《财务管理》拓展练习题
- 波纹金属软管通用检验规范及检验方法
- 浙江宁波一中2013届高三12月月考数学文试题
- 吉林省一星级绿色建筑设计内容汇总表(公共建筑)剖析
- 八年级数学上册5.5应用二元一次方程组里程碑上的数课时练(新版)
- 二年级下语文教案-登鹳雀楼-湘教版小学学科网
- 对目前监狱生产的理性探索