如何在不同位置存储Flash对象?
这可能吗?
答案 0 :(得分:0)
虽然我不太确定你在问什么,但我认为你正在寻找ApplicationDomain类(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/ApplicationDomain.html)。将程序划分为不同的SWF后,可以通过在Loader.load(url_request,application_domain)上设置LoaderContext(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/LoaderContext.html)属性,将这些SWF(表面上包含类定义)加载到不同的应用程序域中。以下是ApplicationDomain上的一些很酷的资源:
http://code.google.com/p/maashaack/wiki/ApplicationDomain http://www.senocular.com/flash/tutorials/contentdomains/
并且还有SharedObject,如果您正在考虑'Flash cookies'(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html)
如果您正在谈论序列化Flash对象(一种memento模式),那么有几种内置方法可以实现:
这会回答你的问题吗?
澄清后提升(评论):
我仍然不知道你在问什么 - 你能更明确吗?如果您要使用Flash cookie,请查看上面的SharedObject参考。如果你试图明确地控制AVM的内存分配器存储特定对象的位置,那么就没有办法做到这一点。您可以获得的最接近的是控制存储类 definitions 的位置(请参阅上面的ApplicationDomain和LoaderContext引用)。
如果这不能回答你的问题,请告诉我。
(最终)澄清后的最终更新:
绝对无法更改Flash Player存储SharedObjects的位置,因为它会带来很大的安全风险。存储位置完全由Flash Player决定,开发人员无法正确编辑。考虑一下网络应用程序可能通过写入或读取最终用户系统上任何位置而造成的破坏。
最接近的是(仅在AIR应用程序中)序列化(AMF或其他方式)对象并使用File和FileStream类写入/读取它们。