ActionScript与ActiveX通信:借助External API的实例

5星 · 超过95%的资源 需积分: 10 2 下载量 142 浏览量 更新于2024-09-17 收藏 74KB DOC 举报
本篇文档详细介绍了如何将外部API整合到ActiveX容器中,以实现ActionScript与使用ActiveX控件的C#台式机应用程序之间的有效通信。主要关注的是在Microsoft Visual Studio .NET环境下,通过C#编写的应用程序中,如何利用FlashPlayerActiveX控件和ActionScript进行交互。 首先,我们回顾一下IntrovertIM应用程序,它是一个既包含了ActionScript代码又支持SWF文件的示例项目。由于前文中已经对ActionScript与外部API的交互有所阐述,这里不再赘述。对于新读者,理解上一个示例是理解和学习这个新示例的关键。 在本示例中,核心技术主要包括以下几点: 1. **调用ActionScript函数**:C#编写的台式机应用程序能够通过FlashPlayerActiveX控件的ExternalInterface功能,主动调用嵌入其中的ActionScript函数。这允许台式机应用程序与SWF文件中的脚本进行双向通信。 2. **接收ActionScript调用**:同样,ActionScript也能通过ExternalInterface调用C#中的函数,实现了跨平台的异步通信。当ActionScript需要执行特定任务时,它会将函数调用传递给ActiveX容器中的C#代码。 3. **XML消息封装**:为了简化通信过程,通常会使用一个名为`ExternalInterfaceProxy`的代理类。这个类负责处理ActionScript和ActiveX之间的数据交换,特别是将来自Flash的XML消息转换为C#可以理解的形式,并隐藏了底层序列化细节。 4. **应用结构**:示例文件包括`AppForm.cs`,这是应用程序的主要入口点,包含C#的Windows Forms;`bin/Debug/IntrovertIMApp.swf`是运行的SWF文件;以及`ExternalInterfaceProxy`下的`ExternalInterfaceProxy.cs`和`ExternalInterfaceSerializer.cs`,分别负责实现外部接口的代理和序列化操作。 获取完整示例代码和应用程序文件的方法是在Adobe官方网站上找到链接,具体路径为www.adobe.com/go/learn_programmingAS3samples_flash_cn,然后在Samples/IntrovertIM_CSharp文件夹中查找所需资源。 通过这个示例,开发者可以学习到如何利用外部API增强Flash与C#应用的交互能力,这对于需要在两者间进行数据交换或集成其他服务的场景非常实用。理解并掌握这些技术将有助于构建更复杂、功能丰富的混合应用程序。