繁体   English   中英

如何将命令从c#应用程序发送到托管的Adobe Flash应用程序?

[英]How to send commands from the c# application to its hosted adobe flash application?

我有一个c#应用程序托管(使用AxInterop.ShockwaveFlashObjects.dll中的Shockwave Flash Object)一个flash应用程序。
我可以使用flash的“fscommand”将命令从flash应用程序发送到我的c#应用程序。
现在我需要从c#应用程序向flash应用程序发送命令(比如设置flash文本),我可以这样做吗? 怎么样?

有几种方法可以实现:

  1. 正如George Profenza指出的那样,使用ExternalInterface是一个简单的实现,它可以实现双向通信。 它可以来回处理一些原始数据,非常适合托管Flash通信,每次调用都涉及少量数据。 但是,对于可以发送和接收的数据量存在大小限制

  2. 如果大小确实重要, XmlSocket将是另一个允许有状态双向通信的选项。 在C#end上,您可以使用这样的代码段来创建XmlSocket服务器,并让主机应用程序托管服务器,然后让Flash在启动时连接到服务器。 没有大小限制,但您必须将每个调用编码为XML,因此在两端序列化和反序列化数据需要一些开销。 多年来,我在一些独立的.NET基础Winform应用程序中成功使用了这项技术。

  3. 第三种选择是使用FlashRemoting。 它类似于上述选项中使用的策略,但“服务器”将是一个Flash Remoting服务器,它能够使用AMF与Flash通信。 这种方法的主要优点是您不必编写任何序列化/反序列化器作为服务器,而Flash会为您处理,并且没有大小限制,它非常适合您有各种各样的场景具有复杂数据结构的调用。 但是,集成服务器的前期成本很高。 开源解决方案闭源解决方案

可能无法探索第3个选项,因为大多数人会将其用于Web应用程序。 我个人赞成第三种选择,虽然我没有将它作为Windows窗体应用程序集成的第一手经验。 我喜欢它,因为它有可能轻松地将应用程序转换为基于Web的应用程序,并且它还支持复杂的数据结构而无需数据序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM