玩一下FLEX+RubyOnRails
只是想着,用这个组合来写WebGame或许会不错,所以就去试了一下。1.装Ruby on Rails
因为我是懒人,所以用的是别人打包好的Rails环境InstantRails 2.0,下载地址在http://rubyforge.org/frs/?group_id=904
当然别忘把ruby\bin目录设为环境变量
2.装FLEX SDK 3.1
有点麻烦,去http://www.adobe.com/products/flex/flexdownloads/index.html下sdk
然后解压在某个合适的地方,再把sdk中的bin路径设为系统环境变量path。
3.创建一个新的Rails工程,就叫test
rails test
4.转到进入test目录中,安装weborb,装了这个东西后,ror可以和flash方便交换数据
ruby script/plugin install http://themidnightcoders.net:8089/svn/weborb
5.因为WebORB没支持ROR的forgery protection(不知道这个词怎么翻译),要手动去关一下。
在test的/config/environments/development.rb文件中加一行
config.action_controller.allow_forgery_protection = false
6.运行服务器,测试一下
ruby script/server
跑起来后,用IE之类的打开http://localhost:3000/examples/main.html就可以测试了。
到这里,只是把环境架好,跑起来而已,具体怎么能用这个写出游戏来,我还需要进一步的折腾。
参考文章:
Flex + Ruby on Rails Installation
Flex On Ruby on Rails 今天又深入看了点。原来以为这样的方式能让ROR能在controllers里直接调用flash里的对像,现在看来,完全不是那么回事。Flash里的控制还是得用as来写,真麻烦啊。ror和ruby的优点全没发挥出来... FLASH未有外置编译工具,通常须用自身IDE进行编译…… 也不一定要ide,如果写的游戏不大的话。
按上面设好flex的sdk后
写个Test.as
package {
import flash.display.Sprite;
import flash.text.TextField;
public class Test extends Sprite
{
public function Test():void
{
hello();
}
public function hello():void
{
var tf:TextField = new TextField();
tf.text = "Hello World!";
this.addChild(tf);
}
}
}
然后编译
mxmlc Test.as
这样就成了。得到的Test.swf文件会比用mxml生成的要小得多。
当然,对于游戏一般都较大的swf文件来说,节省的大小也不能加快多少下载速度。 既然是要在浏览器里装插件然后又想同时在浏览器和服务器端用Ruby,等IronRuby稳定了之后拿Silverlight 2作为客户端这边的目标平台搭配RoR在服务器端或许更有趣些。我用AS3写了一段时间代码后还是觉得很不爽,逃回C#去了……
页:
[1]