Flex 4,监听来自父级的事件

发布于 2024-10-28 20:49:18 字数 667 浏览 7 评论 0原文

我有以下问题:

描述:

我有一个带有按钮和 Spark 列表 (spark.components.List) 的页面,单击按钮时,列表中的所有元素都应该更改其标签。

该列表使用自定义项目渲染器来显示数据(渲染器是 Spark 项目渲染器:s:ItemRenderer,将显示的数据来自数据库)。

当我单击按钮时,我调度一个事件“button_clicked”,自定义项渲染器中的所有元素都应该侦听该事件。

在渲染器中,我有这个函数应该监听“button_clicked”事件:

public function init():void 
{
this.addEventListener("button_clicked", button_clicked);
}

public function button_clicked(event:Event):void 
{
mdm.Dialogs.prompt("Button clicked event dispatched");
}

问题: 方法“button_clicked”永远不会执行,这意味着项目渲染器中不会侦听该事件。

任何人都可以帮助我了解如何在父级中分派事件并在 ItemRenderer 对象中监听它。

谢谢

I have the following problem:

Description:

I have a page with a button and a spark list (spark.components.List), when the button is clicked, all the elements in the list should change their label.

The list uses a custom item renderer to display the data (The renderer is a spark item renderer: s:ItemRenderer and the data that will be displayed comes from database).

When I click the button, I dispatch an event "button_clicked", that event should be listened by all the elements in the custom item renderer.

In the renderer, I have this function that should listen to the "button_clicked" event:

public function init():void 
{
this.addEventListener("button_clicked", button_clicked);
}

public function button_clicked(event:Event):void 
{
mdm.Dialogs.prompt("Button clicked event dispatched");
}

Problem:
The method "button_clicked" is never executed, which means that the event is not listened in the item renderer.

Anyone that can help me to understand how to dispatch an event in a parent and listen to it in the ItemRenderer object.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叹倦 2024-11-04 20:49:18

来自相关问题 :

在渲染器的init()中,需要添加
一个事件监听器而不是渲染器,
但到发送的集装箱
活动。

示例:

container.addEventListener(Container.SELECT_ALL_USERS, selectAllHandler, false, 0, true);

From a related question:

In renderer's init(), you need to add
an event listener not to the renderer,
but to the container which dispatches
the event.

Example:

container.addEventListener(Container.SELECT_ALL_USERS, selectAllHandler, false, 0, true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文