CrossBridge

栏目: JavaScript · 发布时间: 7年前

内容简介:CrossBridge

介绍

CrossBridge是Adobe FlasCC的开源版本,它提供了一个完整的C/C++开发环境,目的是把C/C++程序编译成Flash程序,运行于Flash Runtime之上。 CrossBridge前身为Alchemy,它提供了一个完整的类似于BSD的C/C++开发环境,基于GCC编译器,可以把C/C++源代码编译成目标Adobe Flash Runtimes程序。使用CrossBridge,可以把现有的大多数C/C++代码移植到Web上。

CrossBridge技术特征:

  1. 支持现有的C/C++项目文件和makefile文件;
  2. 可以通过GDB在Flash Runtime中调试代码;
  3. 可通过C++类访问完整的Flash Runtime API,包括Stage3D for OpenGL/DirectX GPU图形加速库;
  4. 可充分利用现有的C/C++库的文档、指南和代码实例;
  5. 支持使用C/C++创建ActionScript库(SWCs)

安装

  • 下载crossbridge、AIR SDK
  • 安装64位 java 运行环境
  • 从CrossBridge中安装Cygwin
  • 编译
  • cd 01_HelloWorld
  • make FLASCC=/cygdrive/d/crossbridge/sdk FLEX=/cygdrive/d/air_sdk
  • Launch the hello.swf file

debug

//用法:tracef("%s=%u","sizeInt", sizeInt);
#define tracef(...) {\
	size_t size = 256;\
	char cstr[size];\
	AS3_DeclareVar(tracef_str, String);\
	AS3_CopyCStringToVar(tracef_str, cstr, snprintf(cstr, size, __VA_ARGS__));\
	AS3_Trace(tracef_str);\
}

常见问题

  • ‘xxx’ was not declared in this scope 解决办法:变量范围内未定义,定义一下就好。
  • byteswap.h: No such file or directory 解决办法:复制 https://github.com/adobe-flash/crossbridge/blob/master/cygwin/usr/include/byteswap.h 到本地crossbridge/sdk/usr/include下即可
  • tchar.h: No such file or directory 解决办法:用 #include <stdlib.h> 替换 #include <tchar.h>
  • warning: (perhaps the `offsetof’ macro was used incorrectly) 解决办法:Makefile 中添加参数 -Wno-invalid-offsetof

语法

AS3_Trace

#define AS3_Trace(STR)

简单的包装器去输出字符串到flash日志文件, 你可以在这些位置找到它:

* Windows 95/98/ME/2000/XP 
    - C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
* Windows Vista/Windows 7 
    - C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs
* Macintosh OS X 
    - /Users/username/Library/Preferences/Macromedia/Flash Player/Logs/
* Linux 
    - /home/username/.macromedia/Flash_Player/Logs/

参数: STR 字符串类型 用法示例:

#include <AS3/AS3.h>

int main() {
    AS3_Trace("Hello World!"); 
}

AS3_DeclareVar

#define AS3_DeclareVar(AS3NAME, AS3TYPE) 声明在当前function的AS3变量。 参数: AS3NAME 在ActionScript变量的名称 AS3TYPE ActionScript变量的类型声明(例如:String) 用法示例:

#include <AS3/AS3.h>
int main() {
	int x = 5;
	// 定义一个as3变量,类型是Number
	AS3_DeclareVar(myAS3Number, Number);
	// 赋值给变量
	AS3_CopyScalarToVar(myAS3Number, x); 
	// 输出这个值
	AS3_Trace("myAS3Number=" + myAS3Number); 
}

AS3_CopyScalarToVar

#define AS3_CopyScalarToVar(AS3VAR, VAL) 从C复制一个值到一个AS3的局部变量 参数: AS3VAR AS3变量 VAL c语言的值 用法实例:

#include <AS3/AS3.h>
int main() {
	int x = 5;
	// 定义一个as3变量,类型是Number
	AS3_DeclareVar(myAS3Number, Number);
	// 赋值给变量
	AS3_CopyScalarToVar(myAS3Number, x); 
	// 输出这个值
	AS3_Trace("myAS3Number=" + myAS3Number); 
}

AS3_GetScalarFromVar

#define AS3_GetScalarFromVar(CVAR, AS3VAR) 复制一个AS3局部变量为C局部变量 参数: CVAR C变量 AS3VAR AS3变量 用法实例:

#include <AS3/AS3.h>
#include <stdio.h>
int main() {
	inline_as3("var myAS3Number:Number = 5");
	int x;
	AS3_GetScalarFromVar(x, myAS3Number);
	printf("x=%d\n", x); // output: x=5
}


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java编程思想 (第4版)

Java编程思想 (第4版)

[美] Bruce Eckel / 陈昊鹏 / 机械工业出版社 / 2007-6 / 108.00元

本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到......一起来看看 《Java编程思想 (第4版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具