2

在 AS3 中使用 ExternalInterface 是否可以在 XP 中调用 OS(C#?)函数?

示例:将桌面背景设置为 Flash 应用程序提供的图像?

如果可能的话,当应用于不同的操作系统时会是不同的调用。那么跨过Mac呢?

任何信息都会很棒

谢谢

4

3 回答 3

2

如果您从 C# 应用程序中启动 swf,外部接口就可以了。Flash 方面不会有任何改变,但您需要经过几个步骤才能使其在 C# 中工作。它不像 AMF 或 JS 的外部接口那么简单。

与 C# 的所有通信都转换为描述数据的 XML,并且您必须编写 XML 以发送回闪存。除此之外,它相对简单。

这是有关如何执行此操作的一些信息。AS 部分是 Flash 8/AS2,但 C# 部分应该是一样的。

于 2009-07-09T13:21:21.793 回答
1

您可以使用已经提到AIR的 . 另一个想法是使用HippoHX(我没有写这个,与我的用户名相似只是巧合)。它运行在 之上,NekoVM让您可以不受限制(因此没有像 in 那样的限制AIR)访问系统。

于 2009-07-10T11:34:48.743 回答
1

从网页或作为桌面应用程序使用 Flash 时,您仅限于小型安全沙箱,您将无法进行任何相关的操作系统调用。我认为切换到 AIR 会给开发人员更多的灵活性,但它似乎也不正确。来自“ Adobe Air 的优缺点”:

AIR 应用有文件访问、剪贴板访问,支持多窗口,支持拖放,并且可以触发通知(Windows 中的 toast)。如果您的应用程序需要以其他方式与桌面交互,则 AIR 很可能不适合。例如,无法访问 COM 自动化,也无法执行外部应用程序。原因是为了保持跨平台兼容性。这是一个有价值的目标,但最好有办法摆脱沙盒。与 Java 或 .NET 不同,您不能使用自定义本机代码库来扩展 AIR。也不能调用操作系统 API。

正如 Alex Jillard 评论的那样,如果您的 swf 在 C# 桌面应用程序中被调用,您应该能够访问更多的操作系统功能,尽管我不确定如何。

于 2009-07-09T13:28:36.870 回答