Alchemy安装配置 FLASH AS3炼金术

安装前注意事项:

1) 如果你的机子装的不是flash player 10, 那么请删除它装上10的版本, 这是必须的. 开发者请安装flash cs4
2) 如果你的机子装的不是flex sdk 3.2或者没装, 请安装最新的flex build3, 在安装FlexBuild时安装路径不要含有空格, 否则在Cygwin下读不到

一    配置 Alchemy 的开发环境
1.下载 www.cygwin.cn/site/install/
 到 Archive 下面去选择安装 zip 包
 到 Select Package这时,需要选择以下3个东西(非常关键,默认是不安装的)
 zip:Info-ZIP compression
 gcc-gc++: C++ compiler
 Perl Install

2.到 www.java.com 去下载JAVA虚拟机

3.下载 Flex Sdk 3.2 版本.安装之.者直接安装 Flex Build 3

4.下载 Adobe Alchemy这里下载http://labs.adobe.com/wiki/index.php/Alchemy然后解压缩,这里假设解压缩到d:\\alchemy目录下(貌似必须是根目录,在帮助里偶然看到的,未验证).这个之前因为得要Cygwin知道FleSDK和Alchemy的路径,所以还要设置一点东西:

5.将C:/cygwin/etc 文件夹下的文件”profile”中
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH.
改成:
source /cygdrive/c/alchemy/alchemy-setup
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/alchemy/achacks:/cygdrive/c/FlexSDK/bin:$PATH
然后保存文件(注意里面的路径……c/alchemy/……)。
关键:’/cygdrive/c/’ 意思是 ‘C:/’.

6 以上这些做完之后,你可以在桌面上看到一个绿色的 Cygwin的图标,然后双击,进入命令行模式

7 这个环境中你可以使用 ls 命令查看文件夹, cd 命令进入某个目录
然后输入 cd d:/alchemy 回车

8 输入 ./config 回车 这时候你应该能看到这行提示:
Generating alchemy-setup…
Turining execution bit on for Alchemy binaries …

Add “source /cygdrive/d/alchermy/alchemy-setup” to your login script.
“alc-home” takes you to the Alchemy install folder.
“alc-on” puts Alchemy gcc toolchain replacements at the front of your path.
“alc-off” restores original path.
“alc-util” shows you various Alchemy-related environment vars
You need Flash 10 or AIR 1.5 and the Flex 3.2 SDK installed for testing.

如果你能看到这些,恭喜你,你快完成第一个步骤了,然后你要做的就是

9 输入 source /cygdrive/d/alchemy/alchemy-setup

10 输入 alc-on

Alchemy 的开发环境配置完毕!

二。生成swc文件

我们以alchemy自带的例子为例。
1. 到alchemy文件夹下$ALCHEMY_HOME/bin 运行:
ln -s llvm-stub llvm-stub.exe
这里可能会报已经存在了, 你可以删除llvm-stub.exe后再执行, 也可以不理它
此操作第一次运行时必须做,以后可以不做

2. 到alchemy自带的samples文件夹下$ALCHEMY_HOME/samples/stringecho,输入以下指令
alc-on; which gcc
这里就是检查看看编译时用的是不是alchemy下的gcc

3.输入下面指令编译swc文件
$ gcc stringecho.c -O3 -Wall -swc -o stringecho.swc
注:结果可能是这个:
[Compiler] Error #1063: Unable to open file: /cygdrive/c/alchemy/flashlibs/global.abc. 
[Compiler] Error #1063: Unable to open file: /cygdrive/c/alchemy/flashlibs/playerglobal.abc.
生成的swc也明显不对才几k,查了下还要改个地方:
http://forums.adobe.com/thread/201580
打开\alchemy\achacks下hacks.pl
if(`uname` =~ /CYGWIN/)
改成
if (`/bin/uname` =~ /CYGWIN/)
再执行刚才的gcc那行,就成功了。

成功可以看到
WARNING: While resolving call to function 'main' arguments were dropped!
2544.achacks.swf, 363806 bytes written
frame rate: 60
frame count: 1
69 : 4
72 : 363736
76 : 33
1 : 0
0 : 0
frame rate: 24
frame count: 1
69 : 4
77 : 506
64 : 31
63 : 16
65 : 4
9 : 3
41 : 26
82 : 471
1 : 0
0 : 0
  adding: catalog.xml (deflated 75%)
  adding: library.swf (deflated 61%)
这样就成功把c文件编译成swc文件


三。使用swc文件

一种使用swc的方法是,用flex命令把swc文件编译成swf文件
1.进入as3文件夹 $ALCHEMY_HOME/samples/stringecho/as3
2.创建一个as3类文件(自带的例子已经有了,不需要创建)内容如下
  1. package{
  2.   import flash.display.Sprite;
  3.   import cmodule.stringecho.CLibInit;
  4.   public class EchoTest extends Sprite{
  5.      public function EchoTest(){
  6.        var loader:CLibInit = new CLibInit;
  7.        var lib:Object = loader.init();
  8.        trace(lib.echo("foo"));
  9.      }
  10.   }
  11. }
复制代码
3.在DOS窗口中运行,这里需要注意一下mxmlc的文件路径:
mxmlc.exe -library-path+=../stringecho.swc --target-player=10.0.0 EchoTest.as
执行这句的时候会报找不到mxmlc.exe, 要么把flex sdk的bin目录加到window系统的环境中,要么在cmd的命令窗口中切换到flex bin的目录.
运行后会看到as3目前多了个stringecho.swf文件,在debug flash player 10中运行, 你会在日志中看到输出"foo"字符串.


另一种使用swc的方法:
新建一个Flashcs4文件,把stringecho.swc添加到库路径中(注意是库路径,在首选参数下面的actionscript里面设置库路径):
并在发布设置里面的发布成swc里打勾(必须,否则出错,原因未知)
第一帧加代码:
  1. Import cmodule.stringecho.CLibInit
  2. var test:CLibInit = new cmodule.stringecho.CLibInit;
  3. var lib:Object = test.init();
  4. trace(lib.echo("foo"));
复制代码
ctrl+enter测试,如果trace出foo,说明测试成功。


转自 http://www.codehorde.com/thread-17067-1-1.html

你可能感兴趣的:(alchemy)