Flash不允许对计算机上的硬件直接进行操作,从而使用本机扩展(ANE)来解决这个问题,ANE通过在ActionScript程序中调用其它类型可以对计算机硬件操作程序的库来解决这个问题,ArduinoConnector.ane的下载地址为:http://code.google.com/p/as3-arduino-connector/,下载这个软件可能需要翻墙。
使用方法:
开发环境:flash Builder 4.7
文件->新建->ActionScript项目->将Scratch程序导入项目并添加ANE文件(选择包)->导出发行版->选择已签名的本机安装程序->完成
在这个过程中,可能会遇到的问题如下:
1.Scratch源码是通过Ant编译的swf文件,而将源码转换成FB工程会遇到一些不兼容的问题,如源码中有SCRATCH::allow3d这个变量,这是一个预编译的选项,在Ant编译时通过<define name="SCRATCH::allow3d" value="true"/>来定义,但在FB中需要在项目属性的编译器选项中的附加的编译参数加入”-define SCRATCH::allow3d true”
2.有些函数报错,这是因为Scratch源码用的Flex 4.11的库,而在flashbuilder 4.7中没有发现可以添加这个库的功能,但是只是小部分函数不兼容,只需要将这些函数改成新库的要求即可。
3.在使用FB 4.6的时候,导出发行版总出现问题,说AIR包类型不支持此本机扩展,使得开发没法进行下去。后来我改成4.7的就解决了这个问题。
4.当导出发行版成功,而且安装完成这后,运行时会报找不到libgcc_s_dw2-1.dll这个动态库的错误,解决办法是将这个库复制安装目录下,这种办法是不太好的,因为你不可能让别人安装你的程序还得自己去下载一个动态库,而且对于非IT的行外人士更加不可行,所以最后的办法是在安装程序的时候,就自动将这个库复制到安装目录。这个解决办法是先在工程下创建一个文件夹”dll”,将该动态链接库放在这个文件夹下,在工程属性->ActionScript构建路径->源路径中添加这个文件夹,这要在导入发行版时,就会这个文件夹的库导入进行,并且在安装程序时,会将这个文件夹下的文件自动复制到安装目录。