前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CrossBridge

CrossBridge

作者头像
IMWeb前端团队
发布2017-12-28 18:29:19
1K0
发布2017-12-28 18:29:19
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

介绍

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

代码语言:javascript
复制
//用法: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);\
}

常见问题

语法

AS3_Trace

#define AS3_Trace(STR)

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

代码语言:javascript
复制
* 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 字符串类型 用法示例:

代码语言:javascript
复制
#include <AS3/AS3.h>

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

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

代码语言:javascript
复制
#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的局部变量 参数: AS3VARAS3变量 VAL c语言的值 用法实例:

代码语言:javascript
复制
#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变量 用法实例:

代码语言:javascript
复制
#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
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • debug
  • 常见问题
  • 语法
    • AS3_Trace
      • AS3_DeclareVar
        • AS3_CopyScalarToVar
          • AS3_GetScalarFromVar
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档