使用 ActionScript 2.0 组件 |
|
|
|
| 使用组件创建应用程序 > 绑定数据组件以显示礼品方案 > 添加事件侦听器以过滤礼品方案 | |||
在这一部分中,将添加事件侦听器以便在用户选择 What Did You Do? 部分(problems_cb ComboBox 实例)中的过失时进行检测。该侦听器包含一个函数,该函数根据用户选择的过失过滤 Gift Ideas 列表。选择轻微的过失将显示普通礼品的列表(如 CD 和鲜花);选择较严重的过失则显示较贵重的礼品。
有关使用事件侦听器的详细信息,请参阅 Learning ActionScript 2.0 in Adobe Flash(《学习 Adobe Flash 中的 ActionScript 2.0》)中的"使用事件侦听器"。
/* 为 problems_cb ComboBox 实例定义一个侦听器。
该侦听器将过滤 DataSet(和 DataGrid)中的产品。
过滤是基于 ComboBox 中当前所选项目的严重性进行的。 */
var cbListener:Object = new Object();
cbListener.change = function(evt:Object) {
products_ds.filtered = false;
products_ds.filtered = true;
products_ds.filterFunc = function(item:Object) {
// 如果当前项目的严重性大于等于
// ComboBox 中所选的项目,则返回 true。
return (item.severity>=evt.target.selectedItem.severity);
};
};
// 将侦听器添加到 ComboBox。
problems_cb.addEventListener("change", cbListener);
在 change() 函数的开头重置 filtered 属性(将其设置为 false,然后再设置为 true),可确保在用户重复更改 What Did You Do? 部分所选内容的情况下,该函数仍能正常工作。
filterFunc 函数检查礼品数组中的给定项目是否适用于用户在组合框中所选的严重性。如果礼品属于所选的严重性范围,则它将显示在 DataGrid 实例(已绑定到 DataSet 实例)中。
最后一行代码将侦听器注册到 problems_cb ComboBox 实例。
|
|
|
|