当前位置:  开发笔记 > 编程语言 > 正文

是否可以创建一个'命令行'swf?

如何解决《是否可以创建一个'命令行'swf?》经验,为你挑选了2个好方法。

我希望能够编写一个可以作为命令行应用程序运行的.swf文件.换句话说,我将能够创建可以与stdin和stdout交互的actionscript类,然后可以直接在命令行中执行.swf.

我怀疑这不可能.任何人都可以证实吗?

编辑: 一些答案指出,使用Flash进行命令行工作可能不是最好的选择.我在大多数情况下都完全同意.我之所以要问这个是因为我想做一些AS3代码生成,并且在运行时内反映AS3类比解析代码或走Asdoc产生的中间XML更容易.我现在正在Ruby中使用XML方法,但是希望有一个更清洁的解决方案!



1> Peter..:

是!它实际上可能的.

您可以创建纯AS3 AIR项目(不带任何应用程序窗口),并使用ADL(AIR Debug Launcher)从命令行运行.

ADL将执行您的SWF,并将在运行时将您提供的任何参数直接传递给您的应用程序 - 所有这些都来自命令行!要从AS3读取参数,只需将此代码添加到主类:

package
{
   import flash.desktop.NativeApplication;
   import flash.display.Sprite;
   import flash.events.InvokeEvent;

   public class CmdLine extends Sprite
   {
      public function CmdLine()
      {
         NativeApplication.nativeApplication.addEventListener(
            InvokeEvent.INVOKE, onInvokeEvent); 

         function onInvokeEvent(invocation:InvokeEvent):void { 
            trace(invocation.arguments); 
         } 
      }
   }
}

您的主类仍将​​扩展Sprite,但除非您创建NativeWindow对象,否则您将看不到任何UI .如果您正在使用Flash Builder,只需创建一个新的AIR项目并将主.mxml文件的扩展名重命名为.as(在完成向导之前).

以下是有关ADL的更多信息:使用AIR Debug Launcher(ADL)

此外,这将非常有用:AIR应用程序调用和终止

你可以用你一切的输出trace(),写入文件,甚至直接写入stdout,所看到这里.



2> Mark Rushako..:

显然,有一个Tamarin 项目旨在创建一个AS3的开源实现. 此页面提供了编译AS3脚本并从命令行运行它的一些细节.

我对Tamarin的稳定性并不了解,但现在可能是你最好的选择.另一方面,我必须非常同意@zenazn你最好长期学习一种更适合一般用途的语言,但如果真的想要使用Actionscript,不要让任何人阻止你:)

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有