在Visual Studio 2015(社区版)中将VB.NET与Flash集成

5
我目前正在制作一个VB.NET项目。我希望通过VB.NET项目控制Flash投影仪的动作。(停止,播放,在Flash投影仪中更改文本控件的文本等)。然而,这是单向控制,SWF投影仪不会与VB.NET项目互动。
下面的图像显示了我想要完成的想法。

Ideal goal of application

编辑:好的,我设法获取了一个可用于项目中的SWF对象。现在,我的问题是如何让两个(Visual Studio和包含在另一个窗体窗口中的SWF对象)进行交互。也就是说,如果我在VisualBasic上按下一个按钮,我可以调用AS3/SWF中的一个函数来执行某些操作,并从Visual Basic表单接收一个变量。

AS3代码包含以下内容

function fl_ClickToGoToWebPage(event:MouseEvent):void
{
    lblText.text = "Congrats! It Works!";
}

btnChange.addEventListener(MouseEvent.MOUSE_UP, fl_ClickToGoToWebPage);

这是实际SWF的照片。

Mock SWF

我想要做的是调用此函数(或类似的函数),将信息传递给在Visual Studio中作为ActiveX Flash对象运行的SWF投影仪,从VB表单中传递信息。(忽略实际SWF上的按钮,在最终运行时该按钮将不存在)我遇到了两个问题:
1)如何修改addEventListener以便它可以接受多个参数,或者是否有其他事件或函数可以使用?
2)如何从Visual Studio中作为VS/VB.NET内部子程序或函数的一部分调用此函数?
我不需要它进行回应,例如Visual Studio从SWF获取信息。

要在您的VB.NET应用程序和swf之间进行通信,您可以使用ExternalInterface。关于此,请查看此帖子,在其中您可以找到一个简单的例子:http://stackoverflow.com/a/31751792/2256820 - akmozo
那实际上是我以前的问题...我只是忘记了我发布过它。但这听起来像是从SWF转到VB。反过来呢? - Paul Williams
我甚至没有看到那是你的 ;) 不,是VB在调用一个ActionScript函数。 - akmozo
2个回答

2
我刚刚使用sendkeys进行了快速测试,它可以正常工作;其中的关键是:
将flashplayer设置为前台窗口...

Friend Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As IntPtr) As Integer

然后使用sendkeyes命令

System.Windows.Forms.SendKeys.SendWait


希望不必使用SendKeys方法,而是使用ExternalInterface。然而,特别是因为我正在尝试将整个数据字符串发送到Flash SWF中。 - Paul Williams
我基本上是从我写的一个免费软件中借鉴了这个,你应该能够发送非常长的数据字符串而没有问题。在我的程序 A Form Filler 的测试中,它毫不出错地以每分钟 300 多个单词的速度将《哈姆雷特》第一幕第一场打入 Microsoft Notepad 中 - 所以希望你也能做到 :-) - Rob
嗯,我可能得尝试这种方法......因为编写XML并不是很有趣。你知道我在哪里可以看到完整的源代码吗? - Paul Williams

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接