Adobe Alchemy Hello world
Adobe Alchemy Hello world
原文地址:http://pradeek.blogspot.com/2009/06/getting-started-with-alchemy-hello.html
首先,如果不知道Adobe Alchemy是什么的话,可以参考看一下RIAMeeting的往期周刊。 这里对Alchemy做一下简单的回顾。 Alchemy是Adobe的一个实验项目,其目的是可以让C,C++的源代码编译成能够运行在开源的Adobe Actionscript VM2虚拟机上的技术。这项技术的目的是为了让大家可以利用数量众多的C,C++现成代码。
这里介绍的是Adobe Alchemy的入门知识。
使用Adobe Alchemy主要是使用C,C++源码编译成SWC的Flash 库文件。 在FlashCS4或者Flex中使用这些库文件。
首先,我们需要设置好Adobe Alchemy,你可以在Adobe Lab 上面找到Adobe Alchemy,安装并且设置好。
InsideRIA也有一篇文章是关于Adobe Alchemy的,可以在这里找到。
设置完成后,这里给出一段C写的示例代码
一些代码解释:
- 首先 AS3_Val 是Alchemy用来表示AS3中数据类型的 所有对Actionscript可见的方法,其返回值变量都需要被表示AS3_Val
- main()函数中的第一行的作用是将用在Actionscript中的方法先声明为AS3_Function实例。
- 下一步(代码14行)是创建一个AS3_Object,它将承载所有声明为AS3_Function的方法。在这个例子里,就只有cMethod这一个方法。
- 通过调用AS3_Release来释放不需要的AS3方法。
- 最后,通知AS3虚拟机库已经被AS3_LibInit初始化好了,将承载了所有的As3方法引用的对象result传递给Actionscript代码。注意,这一步应该在最后调用。
代码编写好之后,我们就可以开始编译了。
打开cygwin(编者注:cygwin是一个可以让你在windows上执行Linux下命令的工具,从某种角度说,可以认为是一种虚拟的Linux环境。其执行效率要比在Linux上执行速度要慢。)
通过命令
alc-on
打开Alchemy,然后运行命令
gcc helloWorld.c -O3 -Wall -swc -o helloworld.swc
这样,就可以生成一个SWC库文件。
到这里,大家看到,我们已经生成了一个可以供Flex或者FlashCS4调用的SWC库文件。
具体如何在Flex Builder中或者FlashCS4中使用这个标准的库文件,大家应该已经知道了,如果感兴趣,可以看一下原文。