2011-10-12 104 views
1

我有一组〜5 ActionScript 3类,目前在flex 4应用程序中使用。虽然他们的输出用于在我的Flex应用程序中显示图形等,但这些类本身没有可视组件 - 它们仅用于执行复杂的数学计算(我最初在AS3中实现它们以便在需要计算时避免不断的服务器调用Flex应用程序)。在Linux服务器上执行Actionscript

但是,我现在想要在我的linux服务器上制作相同的数学计算引擎,以便可以在PHP中完成计算。有什么办法可以访问服务器上这些类的逻辑吗?我真的很想避免在PHP中重新实现复杂的逻辑。

非常感谢您的帮助!

+0

如果要执行你在服务器上的逻辑,你将不得不用服务器可以使用的语言编写。 – afuzzyllama

回答

0

AS3类中有多少行代码,需要处理哪种类型的负载?

如果您正在构建超过一次性使用的任何内容,那么最简单的路线可能是将您的ActionScript移植到JavaScript。没有我知道的任何自动转换器,但JavaScript和AS3非常相似,除非您的五个类拥有数千行代码,否则您应该能够简化它的工作。将它移植到JavaScript之后,通过Node.js直接通过您选择的虚拟机运行,甚至在用户的浏览器中运行都将变得简单。

如果你只是需要这个划伤和痒或有限的使用,你可能会逃脱直接在Tamarinredtamarin运行AS3。但据我所知,这些都不适合生产使用。

但是,如果您在高可用性,高流量的PHP应用程序中使用此功能,那么从长远来看,您只需将代码移植到PHP中,就会感受到更少的痛苦。 AS3和PHP在语法上相似,您可能只需做一个直接的端口即可。

最后,你可以找到在此线程一些进一步的讨论和链接:Is it possible to create a 'command line' swf?

+0

非常感谢您提供的所有信息。该代码实际上是数千行。更糟的是,它会在AS3版本中不断更新,我不想维护2个版本。该代码使用相当简单的计算指令 - 只是其中很多,所以我会看看我是否可以使它与Tamarin合作。 –

+0

我只是想发布一个更新:我能够让redtamarin完美地用于此用途。我必须对代码进行一些非常小的更改才能使它兼容redtamarin,但这些更改不会损害flex中的原始操作。所以我现在有一个完全可操作的代码库,可以在客户端或服务器上运行 - 正是我想要的!非常感谢您指引我朝着正确的方向发展! –

+0

不错!很高兴你能把它整理出来。 –

0

您可以使用redtamarin

http://code.google.com/p/redtamarin/

从Linux服务器的角度来看,你将能够运行 您的AS3源代码作为CGI(直接编译为AS3脚本或编译为ABC)

或者您也可以将AS3代码捆绑到一个exe中,然后您将通过它调用PHP

或让你的AS3脚本作为可执行文件binfmt_misc

http://code.google.com/p/redtamarin/wiki/RunningShellScripts#Registering_an_extension_as_non-native_binaries_(Linux_only

在这里我们使用redtamarin

  • 为脚本,做我们SVN挂钩的生产和开发服务器,在Linux服务器上自动完成任务
  • 作为套接字服务器,http服务器和CGI
  • as executable to reuse as AS3 logic into our automated builds
  • etc.

看文档中一点你会发现你有很多选择 重用你的AS3代码:标准输入/输出/标准错误,插座,管道,CGI等