1

我正在重构由另一位开发人员编写的一些 Flex 代码,并且我正在实现 PresentationModel 方法,因为我喜欢将 ActionScript 与 MXML 分开。我发现的问题之一是原始 ActionScript 代码在 MXML 中添加/删除元素。

发生的是处理函数检查模型,如果值正确,则从视图中创建或删除元素。什么是让演示模型向视图广告元素的最佳方式,并且仍然保持我的目标是这种松散耦合。

我正在考虑使用表示模型分派的简单事件和视图可以列出来传递要添加的元素的详细信息。还有其他解决方案吗?

谢谢

斯蒂芬

4

2 回答 2

1

如果您使用的是演示模型,我会假设您有一些关于需要发生的事情的数据。当动态添加/删除任何类型的项目时,我确保将其设为数据驱动以便于操作。如果您想添加另一个项目,请将另一个数据模型添加到您选择的 dataProvider(列表、组合框、数据组等)。

通过这种方法,您可以将演示者的逻辑抽象到视图中。事件应该仅用作您的视图了解演示者何时完成某事的一种方式。可以通过这种方式接收数据(这样做是一种很好的做法),或者您可以将演示者中的数据绑定到您的 dataProvider。两者都很好,我只是发现绑定更干净,更简单。

于 2011-04-11T15:55:25.757 回答
0

执行一些图形操作(绘制边框、设置样式、拖放管理、动画等)的代码的每一部分都应该包含在视图中,而不是表示模型中。

对于这种在 PM 中更改属性后应该执行的图形,我们使用 Cairngorm 3 Observer 库。基本上,它监听表示模型中的一些变化,并允许您在视图中执行一个功能。

<cg:ObserveValue 
    source="{ model.firstName }" value="{ Name.SARA }"  
    handler="runEffectFunction"/>

请参阅文档

于 2011-04-11T16:45:53.753 回答