在Flex应用程序中定义和更新XML组件的最佳实践

时间:2009-08-12 21:11:34

标签: flex mxml

Flex组件值由init方法初始化。 在应用程序流程中, 如何刷新mxml组件数据值;因为init仅在启动时被调用。

mxml组件的示例可以是 就像按钮标签或文字一样简单 与数据提供者是Web服务的转发器一样复杂 (意味着应该提出新的问题来提取数据并刷新转发器的数据提供者)

4 个答案:

答案 0 :(得分:0)

如果数据提供者是一个集合或数组,它将在集合中添加或删除项目时自行更新。您可以侦听CollectionEvent.CollectionChange事件以查看集合何时更改。

我不太确定你的意思吗?你有约束力吗?

答案 1 :(得分:0)

如果要重新初始化整个控件,可以创建一个“reset”事件,让重置的处理程序执行与init代码相同的行为。

如果没有更多详细信息,这是我能做的最好的事情......

答案 2 :(得分:0)

您应该为要修改的属性创建自己的setter和getter,之后需要刷新。例如:

private var _tmp : String = '';
public function set tmp(val : String) : void {
      this._tmp = val;
      this.doOtherDataRefreshNeeded();
}
public function get tmp() : String {
      return this._tmp;
}

这样,每次使用该组件的代码都需要更新它的tmp属性。将调用setter并在那里除了分配值之外还会发生很多其他事情。

对于简单的mxml组件作为文本和输入,使用绑定{}作为其数据值。这些应该在数据发生变化时立即更新。如果没有,请调用.invalidateNow()方法强制更新。

答案 3 :(得分:0)

在更新方法

中的mxml组件中使用ValidateNow()方法