【问题标题】:Turn off application temporarily from flash从 Flash 暂时关闭应用程序
【发布时间】:2013-05-03 09:32:49
【问题描述】:

当我在浏览器中运行某些 Flash 应用程序时,我被要求找出一种方法来关闭主机上正在运行的应用程序,这是一项看似困难的任务,但我已经想到了一些可能的方法来实现这一点,并且我想问哪种方法最好。

在我看来,这些都是我的可能性

  1. 让 Flash 应用程序创建一个 cookie,供其他程序检查,如果检测到,计算机上运行的该程序将关闭其他应用程序。
  2. 在主机上运行一个程序,侦听特定端口,并在发送正确的字符串时进行 fx。通过使用 actionscript 套接字,程序将暂时关闭应用程序。
  3. 创建一个嗅探网络流量的程序,如果正在下载有问题的 swf,请暂时关闭其他应用程序(在我看来,这似乎是最不可行的方法,甚至不确定它是否可能有效)李>

我需要这样做的原因是,flash 应用程序需要访问主机的网络摄像头,它兼作运动检测摄像头,这意味着在运动检测软件运行时摄像头将被锁定。所以我需要关闭移动侦测软件,在flash中抓一张图片,保存图片并重新启动移动侦测。

我错过了一些超级简单的方法吗?你将如何实现这一目标?提前感谢您的回答。

【问题讨论】:

    标签: actionscript-3 flash sockets ipc webcam


    【解决方案1】:

    TBH 我认为您不会在这方面取得成功,除非您将其创建为 Air 应用程序(当然,我没有花费太多脑力来思考解决方案)。 Flash 播放器非常限制您可以做什么和不能做什么。 ExternalInterface 是 FSCommand 的替代品,它被认为是过时的,顺便说一句。它允许您从 AS 与 swf 容器进行通信。 JS(也许是 VBScript?)。

    但是,如果您需要创建一个 Air 应用程序,您可以使用NativeProcess,它允许您在主机上运行应用程序。例如,如果您想运行 java .jar,您可以这样做:

    var javaExecutable : File = new File();
    javaExecutable.nativePath = '/path/to/java/';
    
    var processArguments : Vector.<String> = Vector.<String>([
        '-jar',
        '/path/to/jar/',
        'foo'
    ]);
    
    var process : NativeProcessStartupInfo = new NativeProcessStartupInfo();
    process.executable = javaExecutable;
    process.arguments = processArguments; 
    
    var shell : NativeProcess = new NativeProcess();
    shell.addEventListener(NativeProcessExitEvent.EXIT, onExitEvent);
    shell.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onStdOutputDataEvent);
    shell.start(process);
    

    非常重要的注意事项:(强调我的)

    NativeProcess 类及其功能仅适用于使用本机安装程序安装的 AIR 应用程序(扩展桌面配置文件应用程序)。

    【讨论】:

    • 感谢您的意见 ;) 我们已考虑到这一点,最终我们同意了另一种不使用闪存的方法。
    【解决方案2】:

    您还可以使用 fscommand() 函数将消息传递给 Director 或 Visual Basic、Visual C++ 和其他可以托管的程序 ActiveX 控件。

    FSCommand

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多