我正在创建一个闪光灯运动,它将被加载到一个客户的框架中,这是我无法控制的。该框架已经加载了一些内容,如地区、字体和复制,并将在初始化时将这些内容传递给我的swf。
由于我的swf (让我们称之为shell)的大小是有限的,它将依次显示一个特定于活动的预加载器,然后与站点的其他部分一起加载另一个swf (让我们称之为活动)。
外壳和战役都将是PureMVC模块。shell将创建一些代理,并使用从框架传递的数据(locale常量、字体等)填充这些代理,然后加载到活动中。
当活动加载时,它也需要地区和字体等,所以我的问题是,从shell模块将这些数据传递到活动模块的最佳方法是什么?
我可以在活动模块中创建相同的代理,并再次加载数据,这些数据将被缓存,但这显然是错误的。我已经研究过管道实用程序的使用,但在我的情况下,这似乎有点过分,因为通信将是单向的,并且在campaign.
发布于 2011-10-24 10:24:04
我通常使用的解决方案是创建一个接口:
interface Campaign {
function set campaignDetails(value:CampaignDetails):void;
//...
}在实现中,我建议您在模块中使用不同的代理,以避免重复通知和引用。
当shell准备好加载模块时,它只需:
if (module is Campaign)
{
(module as Campaign).campaignDetails = ...;
}我肯定我跟你说的不是什么新东西。您只需要确保只在接口级别上保持shell和模块之间的联系。然后,您只需传递数据,并离开MVC核心模块,独立于shell处理它。
https://stackoverflow.com/questions/7873668
复制相似问题