Air调用dll方法示例

Air调用dll方法示例

ID:42624481

大小:1.98 MB

页数:14页

时间:2019-09-19

Air调用dll方法示例_第1页
Air调用dll方法示例_第2页
Air调用dll方法示例_第3页
Air调用dll方法示例_第4页
Air调用dll方法示例_第5页
资源描述:

《Air调用dll方法示例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Air调用dll方法示例ANE简介:Ane,AdobeAirNativeExtension的缩写,是指AdobeAir的本地扩展。它的作用是提供基于AdobeAir平台上层开发的as3脚本调用所在的设备功能的接口及方法。swc文件是采用归档格式的ActionScript类库。Swc文件包含swf文件和其资源文件。Swc文件是共享ActionScript类的简便方法。本机扩展是包是一个ANE文件。和swc文件一样,ANE文件也是一个ActionScript类库,包含归档格式的swf文件和其资源文件。不过,ANE文件和swc之间最重要的区别是只有an

2、e文件才能包含本机代码库。一、创建vc项目打开vs2005,新建一个MFCDLL项目:将项目编译方式改为Release:FlashRuntimeExtensions.h文件位置:sdk/include目录下;FlashRuntimeExtensions.lib文件位置:sdk/lib/win目录下;将FlashRuntimeExtensions.h与FlashRuntimeExtensions.lib拷贝到目录下点击右键Add->ExistingItem将FlashRuntimeExtensions.h引用进来点击右键properties打开项目

3、属性,点击Linker->Input中第一项AdditionalDependencies,将FlashRuntimeExtensions.lib添加进来。打开C/C++->PrecompiledHeaders,第一项选择NotUsingPrecompiledHeaders打开ANETest.h,将文件内容修改为:打开ANETest.cpp,如下所示添加方法:先大致介绍下各方法:先是3个工具方法:utf8_to_ansi将Air传入的utf8中文参数转换c多字节中文getCharLength获取Char*长度addChar拼接两个char*然后是我

4、们要修改的方法:sayHello方法是我们这里演示的方法,传入名字,返回Hello,+名字。eventTest方法是我们这里演示事件的方法,里面调用了eventTestThread线程方法。contextInitializer是固定的用来注册方法信息的方法,这样Air就可以通过方法名称找到方法体最后3个是固定的初始化和结束的方法:contextFinalizerinitializerfinalizer按F7编译通过,稍后我们会详细解释sayHello和eventTest方法一、创建Air项目新建一个Air项目:在项目下(注意不是在src下)创建如

5、下目录结构:ANETest.dll则是从上面vs2005编译后产生的,在ANETestrelease目录下:将其拷贝到Air工程extensionssrcwindows目录下。打开extensions.xml这里需要注意的是id会映射到Air项目中的一个as类,nativeLibrary是刚才的dll名称。如下图创建as映射类:这里首先创建了ane上下文,然后写了个sayHello的方法,传入参数name:String,bytes:ByteArray,bytes是用来返回数据用的。eventTest方法则除了bytes,没有其他参数。打开b

6、uild.xml:这里需要注意的是:第4行SDK_HOME - 4.6sdk位置第12行APP_NAME - Air项目名称第21行NATIVE_EXTENSION_NAME - 打包后ane的名称第22行NATIVE_EXTENSION_ACTIONSCRIPT_CLASSES - 映射的as类运行ant脚本:成功后会在extensionsbin目录下出现一个ANETestDll.ane右键项目属性,在buildpath中NativeExtensions中将此ane选出来:在buildpackaging的NativeExtensions中打上

7、勾:打开主程序ANETest.mxml,添加输入框、按钮与方法:varbytes:ByteArray=newByteArray();aneTestDll.sayHello(txtName.text,bytes);varret:String=bytes.readMultiByte(bytes.length,"chinese");Alert.show(ret);这样即可以调用dll中的方法了。为了演示事件,还需要添加事件相关代码:addEventListener(StatusEvent.STATUS,statusHandler);publicfunc

8、tionstatusHandler(e:StatusEvent):void{varlevel:String=e.level;varcod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。