如何通过管道将数据从Flash播放器发送到外部可执行文件

时间:2011-11-11 07:57:30

标签: actionscript-3 pipe flash

我想将flash模块生成的数据发送到windows中的外部可执行文件中。根据我对进程间通信的了解,我认为在这种情况下使用管道是合适的。我正在使用Flash专业版CS5,当在actionscript中使用'trace'命令时,输出将显示在flash professional的输出窗口中。我认为Flash将数据传输到输出窗口,如果可以,则可以获取该管道的句柄。有什么方法可以在执行跟踪命令时将flash输出本身的输出写入,或者将事件上生成的数据直接写入管道的缓冲区。

请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我使用Flash徽章AIR应用程序做了一些技巧。和C#控制台应用.. 我们可以将params发送到AIR应用程序。来自BADGE并使用以下方式接收:

protected function onInit(event:FlexEvent):void{
    NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE, onBrowserInvoke);}
protected function onBrowserInvoke(e:BrowserInvokeEvent):void{
    //reading args
    var a:String = e.arguments[0];
    //Now we can run *.exe from windows using:
    if(NativeProcess.isSupported)
    {
        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        nativeProcessStartupInfo.executable = File.applicationDirectory.resolvePath("ExecutableApp.exe");
        nativeProcessStartupInfo.arguments.push(a);
        var process:NativeProcess = new NativeProcess();
        //dispatched when the process will be finished
        process.addEventListener(NativeProcessExitEvent.EXIT,onProcessDone);
        //run
        process.start(nativeProcessStartupInfo);
    }
    else Alert.show("Native process are not supported\nPrinter settings may be wrong!");
}

这是一个很长的路,但肯定有效!至少对我来说它有用。