【问题标题】:Flex: Programmatically firing event listenersFlex:以编程方式触发事件侦听器
【发布时间】:2011-12-26 13:29:04
【问题描述】:

我想以编程方式在火花复选框上触发一个事件。

我有一个标签栏,它根据各种复选框启用了标签。我正在将数据加载到这些选项卡中。有时会启用选项卡 1 和 2。其他时间选项卡 2 和 3。其他时间选项卡 4 本身(以及所有其他组合)。

我尝试启用视图堆栈中的 VBox(在动作脚本中),但它似乎冻结了应用程序。 VBox 在用户在复选框上输入时正确启用。如果我将复选框设置为选中,它不会触发事件,因此不会启用选项卡。是否可以在 Flex 中手动触发事件。我试图查看是否可以选中复选框并获取事件并触发它。不幸的是,我只能看到 addEventListener、hasEventLister 和 removeEventListener。无法获取复选框上已经存在的事件

【问题讨论】:

  • 这没什么意义。您应该添加有关组件架构的更多信息;并且可能更清楚地解释您要完成的工作。尽我所能告诉用户必须单击复选框才能激活 ViewStack 中的 VBox;并且您想自动执行此操作。但是,这很令人困惑。 Checkbox 的更改处理程序中发生的代码是什么?为什么不能手动运行该方法?

标签: user-interface events apache-flex flex4 flex-spark


【解决方案1】:

从组件调度和事件:

component.dispatchEvent(事件)

例子:

var evt:MouseEvent=new MouseEvent(MouseEvent.CLICK)

this.checkBox.dispatchEvent(evt)

它没有放置选择标记,但您可以通过编程方式设置它 this.checkBox.selected=true

【讨论】:

  • 感谢 Luke3Design。我没有看到 dispatchEvent。我会将我的事件保存在一个数组中,这样我就可以轻松访问它们并轻松分发它们。
猜你喜欢
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 2015-12-18
  • 2011-03-30
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多