【问题标题】:How to make MXML Component Constructor with Arguments? [closed]如何使用参数制作 MXML 组件构造函数? [关闭]
【发布时间】:2012-06-02 14:39:50
【问题描述】:

我是 flex 新手,谁能帮帮我?

如何为 MXML 组件创建一个接受参数的构造函数?

【问题讨论】:

  • this post的可能重复
  • 我不知道为什么关闭;完整的问题在主题行而不是正文中;但这很容易解决。

标签: actionscript-3 apache-flex mxml flex-spark


【解决方案1】:

你不能; MXML 组件没有可以修改的构造函数。

您有几个选择。首先是重写您的组件以使用 ActionScript。这在某些情况下可能很乏味,而在其他情况下则微不足道。这取决于组件的作用。

第二个选项 os 在组件上使用公共变量。当您创建 MXML 组件的实例时,设置它的属性。您应该能够在预初始化事件处理程序中访问此类属性。 prenitinialize 将在构造函数之后、createChildren() 之前调度。

【讨论】:

  • 然而,利用生命周期方法(特别是 commitProperties 和 updateDisplayList)传播变量设置所需的更改可能会更好。这样,如果这些属性发生更改,您的组件就可以处理它。
  • @AmyBlankenship 利用预初始化事件就是利用组件生命周期;尽管不是渲染事件方法之一。 “最佳”方法取决于需要设置什么以及它如何影响组件中的其他内容。如果组件需要“构造函数代码”,那么预初始化事件是您可以在 MXML 组件中获得的最接近的事件。
  • 我认为 Flex 的全部意义在于组件应该始终保持自身处于良好状态。我认为这样的问题背后的动机是一种类似 Flash 的心态,如果事情变得太复杂,人们会丢弃一个实例并重新开始。我们通常无法做到这一点,所以人们最好提前知道这一点。
  • 我们在工作中采用的一个约定是为组件提供一个 init() 函数,该函数返回其父类实例,例如: var comp:MyComponent = new MyComponent().init(args); ...您可以使用建议的方法获得相同的结果,这只是保持整洁(在一行上)-但是,内部引用可能会返回 null 除非组件已添加到显示列表中,因此它当然不是万无一失的不是学习组件生命周期的替代方法。
猜你喜欢
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 2019-12-19
  • 2011-11-22
  • 1970-01-01
  • 2011-02-09
  • 2022-12-04
  • 1970-01-01
相关资源
最近更新 更多