基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3
来源:互联网 发布:雪之下雪乃手办淘宝 编辑:程序博客网 时间:2024/05/20 23:57
基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3
- 作者:柳大·Poechant
- 邮箱:zhongchao.ustc@gmail.com
- 博客:blog.csnd.net/poechang
- 日期:March 26th, 2012
0 Alchemy 的使用
请参考 Adobe 官网,这里不赘述。
1 C++ 代码
1.1 接口函数
// AS3 Array 以参数形式传入AS3_Val test(void *data, AS3_Val args){ // 创建一个数组 int array_size = 3; int array_c[array_size]; array_c[0] = 1; array_c[1] = 2; array_c[2] = 3; // 从参数获取 AS3 Array AS3_Val asArray = NULL; AS3_ArrayValue(args, "AS3ValType", &asArray); // 得到 Array 的 push 方法 AS3_Val push_function = AS3_GetS(asArray, "push"); // 调用上面得到的方法 for (int i = 0; i < array_size; ++i) { // 一定要创建 Array 对象,然后把 Array 对象 push 到结果 Array中!!! AS3_Val int_to_push = AS3_Array("IntType", array_c[i]); AS3_Call(push_function, asArray, int_to_push); AS3_Release(int_to_push); } AS3_Release(push_function); return asArray; }
1.2 封装、暴露
int main(){ AS3_Val testFun = AS3_Function(NULL, test); AS3_Val _API = AS3_Object("test:AS3ValType", testFun); AS3_Release(testFun); AS3_LibInit(_API); return 0;}
2 用 Alchemy 将 C++ 编译成 SWC
g++ test.cpp -swc -O3 -o test.swc
这个过程较慢。
3 AS3 代码
package { import cmodule.a.CLibInit; import flash.display.Sprite; public class test2 extends Sprite { private static var lib:Object = null; public function test2():void { var loader:CLibInit = new CLibInit(); var lib:Object = loader.init(); var oldArray:Array = new Array(); // 调用 C++ 函数 var array:Array = lib.test(oldArray); for (var i:int = 0; i < array.length; ++i) { trace(array[i]); } } }}
4 运行 AS3 程序
将上面生成的 test.swc 加入到 AS3 工程中,并添加路径。然后运行。我在 Flash Buider 中的结果如下:
123[SWF] test2.swf - 解压缩后为 1,574,377 个字节[卸装 SWF] test2.swf
-
转载请注明来自“柳大·Poechant的CSDN博客”:blog.CSDN.net/Poechant
-
- 基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3
- AS3与C/C++的交互
- AS3与C/C++的交互
- as3与php交互实现总结
- AS3与后台交互
- AS3与JS交互
- as3与c++交互
- AS3与JS进行交互(一)
- c/c++与as3中的逗号表达式
- AS3 与 JavaScript 的交互
- js与as3的交互
- AS3与PHP的交互
- 转载:as3加密入门-1使用alchemy进行代码混淆
- as3加密入门-1使用alchemy进行代码混淆
- as3加密入门-1使用alchemy进行代码混淆
- AS3.0 数组(Array)
- Alchemy安装配置 FLASH AS3炼金术
- as3与php后台交互教程
- [Java]读取文件方法大全
- C# Enum,Int,String的互相转换 枚举转换
- HTC部分手机WiFi漏洞存在网络安全问题
- 学习《Thinking in java》笔记二
- 搭建 Android X86 系统,替代AVD模拟器,解决运行效率慢的问题(整理)====大全
- 基于 Alchemy 实现 AS3 与 C++ 交互(1)C++ 回传 Array 给 AS3
- MD5加密
- Excel文本函数
- swing--更改皮肤
- android 中定時器的幾種用法總結
- 各类花茶功效
- Excel日期函数一览表
- 通达OA 同步中控考勤机 增强版
- FPGA 关于 Only one always block can assign a given variable write_rdy