与在其他软件控制的本地ActiveX中运行的flash交谈

时间:2012-02-03 14:28:10

标签: flash embedded-flashplayer mdm-zinc

我一直在使用Flash + Zinc为电视直播节目创建简单的交互式软件,主要用于测验节目,现场选举结果和以前无法准备视觉效果且需要响应的情景持续的情况。然后视频信号将从视频输出端口或VGA到视频转换器输出,并将通过视频混合器,在那里它将是亮度或色度键。在此设置下,应用程序的控件将位于输出到视频的区域下方。

此设置的唯一问题是没有Alpha通道,并且使用亮度和色度键控非常有限。

为了解决这个问题,我开始使用Caspar CG。据我所知,这个软件系统采用SWF并在ActiveX Flash Player中播放,它可以从中提取颜色和alpha通道,并将它们发送到支持分色和alpha通道的专业DeckLink卡。整个视觉效果非常好,但由于在回放过程中无法看到ActiveX控件,因此我的SWF无法捕获鼠标或键盘事件。

我尝试让SWF轮询一个本地Web服务器进行输入,但是当它在Adobe Flash中进行测试时,它会在Caspar CG Server托管的ActiveX中播放时失败。从我读到的内容来看,这与Flash Player中嵌入的安全策略有关,而我无能为力。

我最终让SWF轮询一个本地文件,以100 ms的间隔发出新命令。同时一个简单的控制应用程序(本地XAMPP服务器中的JS + PHP - 只是因为我对Web开发非常轻松)会在与按下的按钮对应的文本文件中编写命令。

当文件被Flash或PHP打开时,这会导致一些问题,我通过让双方重试读/写直到成功来解决这个问题。

总而言之,设置有效,但我觉得它不会比这更优雅。首先,我发现SWF无法写入本地文本文件以报告其状态,因此很多高级功能实现起来是不切实际的(即使是基本的ui内容,例如在控制器端禁用按钮时正在SWF上播放动画。

我的问题对我来说甚至都不清楚,但在这里它们是:

  1. 本地播放的SWF是否可以写入光盘?
  2. 有人能建议更好的方式来做整个沟通吗?

1 个答案:

答案 0 :(得分:1)

#2的替代方案可能是LocalConnection,前提是您可以在同一台计算机上运行Caspar CG可执行文件和控制swf / Zinc应用程序。