首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将代理传递给PureMVC MultiCore应用程序中加载的模块?

将代理传递给PureMVC MultiCore应用程序中加载的模块?
EN

Stack Overflow用户
提问于 2011-10-24 09:38:28
回答 1查看 315关注 0票数 1

我正在创建一个闪光灯运动,它将被加载到一个客户的框架中,这是我无法控制的。该框架已经加载了一些内容,如地区、字体和复制,并将在初始化时将这些内容传递给我的swf。

由于我的swf (让我们称之为shell)的大小是有限的,它将依次显示一个特定于活动的预加载器,然后与站点的其他部分一起加载另一个swf (让我们称之为活动)。

外壳和战役都将是PureMVC模块。shell将创建一些代理,并使用从框架传递的数据(locale常量、字体等)填充这些代理,然后加载到活动中。

当活动加载时,它也需要地区和字体等,所以我的问题是,从shell模块将这些数据传递到活动模块的最佳方法是什么?

我可以在活动模块中创建相同的代理,并再次加载数据,这些数据将被缓存,但这显然是错误的。我已经研究过管道实用程序的使用,但在我的情况下,这似乎有点过分,因为通信将是单向的,并且在campaign.

  • Would初始化期间只会发生一次,从设计模式的角度来看,从设计模式的角度来看,将代理传递给活动模块的init方法,然后在活动启动模块命令中注册这些代理?这似乎是错误的,因为这些代理通过通知名称引用了我的shell应用程序外观。如果我将通知名移到两个模块都可以使用的"NotificationConstants“类中,可以吗?

  • 我可以在活动模块中创建类似的代理,但是这次用传递给前面提到的init方法的旧代理中的数据对象填充它们吗?自发地,这感觉是最好的方法,因为数据对象没有对我的shell模块的任何引用,但是“旧的”代理有.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-24 10:24:04

我通常使用的解决方案是创建一个接口:

代码语言:javascript
复制
interface Campaign {
    function set campaignDetails(value:CampaignDetails):void;

    //...
}

在实现中,我建议您在模块中使用不同的代理,以避免重复通知和引用。

当shell准备好加载模块时,它只需:

代码语言:javascript
复制
if (module is Campaign)
{
    (module as Campaign).campaignDetails = ...;
}

我肯定我跟你说的不是什么新东西。您只需要确保只在接口级别上保持shell和模块之间的联系。然后,您只需传递数据,并离开MVC核心模块,独立于shell处理它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7873668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档