我们正在将外部swf内容加载到adobe air应用程序中。内容由越来越多的第三方提供。
作为第三方内容,它将被加载到一个单独的安全域(trustContent = false)和一个兄弟应用域(loadForCompatibility = true)中。我们正在使用Loader类进行此操作。
使用swf作为外部内容时会出现问题的功能/选项/方法有哪些?
我对任何类型的问题感兴趣,因为我们已经重现了内容的问题,无论其加载的应用域/安全域是什么(也出现在Loader和SWFLoader中)。
我们非常感谢这些问题的解决方法,特别是那些可以从主应用程序中应用的解决方法。
答案 0 :(得分:1)
令人讨厌的大问题(我们已经处理了很多问题!)是外部SWF根本无法直接信任的事实。永远。这使得它们与基础AIR应用程序之间的通信充其量是最困难的。
基于通过URLLoader加载SWF的数据,然后从中获取字节数并将其泵入Loader,存在一个黑客攻击。但是,我相信使用AIR 1.5.1杀死了黑客。
话虽这么说,可以通过Adobe称为沙盒桥的方式在AIR应用程序和加载的SWF之间进行通信。但是,设置沙箱桥是一种巨大的痛苦,任何复杂的数据(对象,甚至像数组一样简单)都会被剥离到桥的另一侧的通用对象,并且不能被转换回原始形式。
对于我们最近需要使用桥梁的项目,我们创建了一个名为AIRBridge的专业类,您可以在桥梁的两侧使用它,这有助于正确设置所有内容。如果您有兴趣,可以从我们的Google代码项目Automata-Tools中提取当前来源。
答案 1 :(得分:0)
我们已经解决了一个问题: