我们正在将外部swf内容加载到一个adobe air应用程序中。内容由越来越多的第三方提供。
作为第三方内容,它将被加载到单独的安全域(trustContent=false)和兄弟应用程序域(loadForCompatibility=true)中。我们使用Loader类来实现这一点。
使用swf作为外部内容时,哪些功能/选项/方法会导致问题?
我对任何类型的问题都感兴趣,因为我们已经复制了内容的问题,无论加载的应用程序域/安全域是什么(在Loader和SWFLoader中也都会发生)。
我们非常感谢针对这些问题的任何变通方法,特别是可以从主应用程序中应用的变通方法。
发布于 2009-06-20 05:07:39
这是一个令人讨厌的大问题(我们已经处理了很多次了!)外部主权财富基金根本不能被直接信任的事实。永远不会。这使得它们与基础AIR应用程序之间的通信充其量是困难的。
通过URLLoader加载SWF的数据,然后从其中获取字节数组并将其放入Loader中,从而解决了这一问题。然而,我相信hack是用AIR 1.5.1杀死的。
也就是说,可以通过Adobe所谓的沙箱桥在AIR应用程序和加载的SWF之间进行通信。然而,设置沙箱桥是一件非常痛苦的事情,任何复杂的数据(对象,甚至像数组一样简单)都会被剥离到桥的另一端的通用对象,并且不能转换回它们的原始形式。
对于我们最近需要使用桥的项目,我们创建了一个名为AIRBridge的特殊类,您可以在桥的两端使用它,它有助于正确设置所有内容。如果你感兴趣,你可以从我们的谷歌代码项目Automata-Tools中获取当前的源代码。
发布于 2009-06-19 23:07:04
我们已经解决了一个问题:
外部swf阶段之外的
https://stackoverflow.com/questions/1020397
复制相似问题