2008-12-07 127 views
0

我的问题是Flex的fcsh是否可以从PHP脚本中调用。这里是背景:从PHP脚本调用fcsh

我已经创建了一个简单的过程,通过将文本文件转换为.mxml文件并使用mxmlc编译器编译为.swf文件来创建一个简单的测验/教程。这从命令行运行良好,但我想通过创建一个Web界面来实现这个过程,从而简化过程。我最初尝试使用PHP的exec()函数没有奏效。我用来创建.mxml文件的Python脚本可以正常工作(使用exec()),但是我一直无法使mxmlc编译器正常工作。

在Web和本网站上搜索后,我相信使用fcsh(而不是mxmlc)可能是一种方法。使用fcsh肯定会更快地编译.mxml文件(第一次运行后),我认为fcsh可以作为可以从PHP调用的服务启动。

另一方面,也许我正在接近这个错误的方式。编写一个调用fcsh并避免使用PHP的Flex应用程序会更好吗?

编辑:使用fcshctl as hasseg在他的回答中提出的工作得很好。谢谢阿里。

回答

1

从脚本中调用fcsh的问题是,它可以作为一个交互式shell而不是采取命令行参数,编译,并返回一个退出状态。有不同的方法可以解决这个问题,我列在this blog post of mine中,我主要讨论fcshctl(这是我自己的解决方案),但在帖子的底部我还列出了其他类似的解决方案以获得fcsh集成到非标准构建工作流程中。

+0

我看到了你的帖子,我喜欢这个主意。我会尝试fchsctl来查看它是否有效。谢谢, Vern – 2008-12-08 01:56:52

0

在执行外部脚本时,还有其他一些方法。它们是exec(),passthru(),system()和反引号,即1键左侧的键。每个人都有不同的目的和回报机制。

您可能必须将执行可执行文件的命令放入脚本中,并通过其中一个函数调用该脚本。

0

为什么不能直接使用mxmlc是否有特殊原因?看起来好像比fcsh更容易打电话。只需在一个XML文件中指定所有编译器选项,就像mxmlc -load-config path/to/config.xml一样运行它。您可以在FLEX_HOME/frameworks/flex-config.xml中找到XML配置格式的示例。