Adobe Achemy入门指南

1,需要用到的开发工具有:1Alchemy 2)Cygwin 3)Flex SDK(3.2+) 4)Java(只需要JRE就够了) 5)Flex Builder

2,安装步骤:

      1)Alchemy解压缩到c:/alchemy

      2)Flex SDK解压缩到c:/flex

      3)Cygwin选择包这一步时,确保选中下述三个包:

           a)Archive目录下的zip

           b)Devel目录下的gcc-g++

           c)Perl目录选择完全安装(Install)

3,为了让Cygwin在每次启动后知道Flex SDKAlchemy的路径,我们可以在其启动脚本中把

     PATH =/ usr / local / bin: / usr / bin: / bin: $ PATH

改成

    source  / cygdrive / c / alchemy / alchemy-setup
    
PATH =/ usr / local / bin: / usr / bin: / bin: / cygdrive / c / flex / bin: $ PATH

4,启动Cygwin,若出现下述提示信息:

    cygpath: command   not  found

则修改cygwin.BAT文件如下:

代码
@echo   off
C:
set  CYGWIN = tty notitle glob
set   PATH = % PATH % ; c: / cygwin / bin ; c: / cygwin / sbin ; c: / cygwin / usr / bin ; c: / cygwin / usr / sbin ; c: / cygwin / usr / local / bin
set  LD_LIBRARY_PATH = c: / cygwin / lib ; c: / cygwin / usr / lib ; c: / cygwin / usr / local / lib
chdir  C: / cygwin / bin
bash --login -i

5,重新启动Cygwin,进入alchemy目录,输入:

     ./ config

6,输入下述命令开启alchemy 

alc- on

Alchemy的开发环境就算配置完成了。

7,stringecho目录下,运行:

gcc stringecho . c –O3 –Wall –swc –o stringecho . swc

一切顺利的话,将会生成stringecho.swc

8,下面来开发一个实例程序进行对stringecho.swc测试

      1)新建一个新工程, ActionScript3工程或者 Flex工程都可以.

      2)右键项目,选择属性“-->ActionScript BuildPath-->Library path,选择”Add SWC"将刚才编译出来的 stringecho.swc加入项目中,特别

      注意的一点是Link Type选择“Merged into code",否则运行时会报错"无法找到类 Cmodule.stringecho::CLibInit"

      3)代码如下:

代码
     package  {
    
import  flash.display.Sprite;

    
import  cmodule.stringecho.CLibInit;
    
public   class  EchoTest  extends  Sprite
    {
        
public  function EchoTest()
        {
            var loader:CLibInit 
=   new  CLibInit;
            var lib:Object 
=  loader.init();
            trace(lib.echo(
" foo " ));
        }
    }
}

 9,最后,我们来看下c语言写的源代码

         1)首先,需要引入下述头文件:

// Header file for AS3 interop APIs
#include  " AS3.h "

          2)然后我们需要定义一个入口点,这里是main函数。main函数代码如下:

代码
// entry point for code
int  main()
{
    
// define the methods exposed to ActionScript
    
// typed as an ActionScript Function instance
    AS3_Val echoMethod  =  AS3_Function( NULL, echo );
    
//  construct an object that holds references to the functions
    AS3_Val result  =  AS3_Object(  " echo: AS3ValType " , echoMethod );
    
//  Release
    AS3_Release( echoMethod );
    
//  notify that we initialized -- THIS DOES NOT RETURN!
    AS3_LibInit( result );
    
//  should never get here!
     return   0 ;
}

         首先定义了要暴露给外部ActionScript代码进行调用的方法,其类型是AS3_Function,然后构造一个对象,此对象拥有前面那个公开函数的引用,此对象构造完成后,则可以释放掉原来那个echoMethod对象,最好通知外部as程序里面的已经构造完毕。

         3)下面来看下要暴露给外部的echo方法,它只是简单地接收一个字符串,再将其返回。程序中首先通过AS3_ArrayValue对传入的参数进行

          解析,得到传入的字符串,若为空,则返回一个"null"字符串,否则返回原来的字符串。

代码
     // Method exposed to ActionScript
// Takes a String and echos it
static  AS3_Val echo( void *  self, AS3_Val args)
{
    
// initialize string to null
     char *  val  =  NULL;
    
// parse the arguments. Expect 1.
    
// pass in val to hold the first argument, which
    
// should be a string
    AS3_ArrayValue( args,  " StrType " & val );
    
// if no argument is specified
     if (val  ==  NULL)
    {
        
char *  nullString  =   " null " ;
        
// return the string "null"
         return  AS3_String(nullString);
    }
    
// otherwise, return the string that was passed in
     return  AS3_String(val);
}
    

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值