在不使用 Change 事件的情况下检测何时在组合框中进行选择
Detecting when a selection is made in a combobox without using Change event
我目前正在测试我开发的 AS£/Flash 应用程序,我遇到了这个问题。我在舞台国家、地区和城市上有三个组合,它们都由来自 mySQL 数据库的数据填充,通过 PHP.Everything 工作顺畅……我是这么想的。
加载框架时,只会填充国家/地区组合。一旦制造了 selection,就会有一个 on CHANGE 事件触发区域组合的人口,而一旦制造了 selection,就会填充城市组合。我的问题是,如果一个用户 select 是一个国家然后改变了他们的想法并且 select 是另一个国家并多次重复这个过程......每次用户改变主意时都会触发 CHANGE 事件。连锁效应是,当他们真正到达 select 城市时,数据库会收到来自先前 select 离子的请求。
有没有办法解决这个...?在 selection 上有一个事件侦听器而不是改变也许..?我已经在网上搜索过,但没有找到任何帮助...
我们将不胜感激并热烈欢迎您的帮助..
尝试在更改事件处理程序中使用计时器。每次更改事件处理程序都会触发停止并重新启动计时器。最后,在某个时刻,您将拥有一个完成的计时器,因为不再发生任何更改。当计时器完成时,请提出您的请求。
var _delay:int = 1000; // 1 second delay
var _t:Timer = new Timer(_delay, 1);
_t.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);
var _comboBox:ComboBox = new ComboBox();
_comboBox.addEventListener(Event.CHANGE, changeHandler);
function changeHandler(event:Event):void
{
if(_t.running)
_t.stop();
_t.start();
}
function timerHandler(event:TimerHandler):void
{
// make call to fetch data
}
另一种解决方案是将响应存储在 Dictionary 对象中,并在每次触发更改事件时检查 Dictionary。这将最大限度地减少对服务器的请求。
最好避免用户停止选择另一个国家,直到特定选择国家的区域变得load.Like有一些加载器或进度条。
我目前正在测试我开发的 AS£/Flash 应用程序,我遇到了这个问题。我在舞台国家、地区和城市上有三个组合,它们都由来自 mySQL 数据库的数据填充,通过 PHP.Everything 工作顺畅……我是这么想的。
加载框架时,只会填充国家/地区组合。一旦制造了 selection,就会有一个 on CHANGE 事件触发区域组合的人口,而一旦制造了 selection,就会填充城市组合。我的问题是,如果一个用户 select 是一个国家然后改变了他们的想法并且 select 是另一个国家并多次重复这个过程......每次用户改变主意时都会触发 CHANGE 事件。连锁效应是,当他们真正到达 select 城市时,数据库会收到来自先前 select 离子的请求。
有没有办法解决这个...?在 selection 上有一个事件侦听器而不是改变也许..?我已经在网上搜索过,但没有找到任何帮助...
我们将不胜感激并热烈欢迎您的帮助..
尝试在更改事件处理程序中使用计时器。每次更改事件处理程序都会触发停止并重新启动计时器。最后,在某个时刻,您将拥有一个完成的计时器,因为不再发生任何更改。当计时器完成时,请提出您的请求。
var _delay:int = 1000; // 1 second delay
var _t:Timer = new Timer(_delay, 1);
_t.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);
var _comboBox:ComboBox = new ComboBox();
_comboBox.addEventListener(Event.CHANGE, changeHandler);
function changeHandler(event:Event):void
{
if(_t.running)
_t.stop();
_t.start();
}
function timerHandler(event:TimerHandler):void
{
// make call to fetch data
}
另一种解决方案是将响应存储在 Dictionary 对象中,并在每次触发更改事件时检查 Dictionary。这将最大限度地减少对服务器的请求。
最好避免用户停止选择另一个国家,直到特定选择国家的区域变得load.Like有一些加载器或进度条。