Не знаете, почему моя программа пропускает некоторые функции? - PullRequest
0 голосов
/ 09 февраля 2011

Привет, Я немного запутался с каким-то ActionScript, над которым я работаю. Для моего графического интерфейса я написал четыре функции на время вычислений. Это showMessage («Загрузка текста ...»), disableButtons (), clearMessage () и enableButtons (). Они отлично работают на протяжении всей программы. ShowMessage отображает сообщение о загрузке, disableButtons отключает кнопки, чтобы никто ничего не мог щелкнуть, clearMessage очищает сообщение о загрузке, когда работа выполнена, и enableButtons включает их все обратно.

По какой-то причине есть один обработчик нажатия кнопки, который доставляет мне неприятности, и я не знаю почему. Я настроил его так же, как и другие подобные ему (которые все работают), но этот не отображает сообщение и не отключает мои кнопки. Вот мой ClickHandler ...

private function Buffer_Route_clickHandler():void
        {
            showMessage("Loading RBE Options");
            disableButtons();

            if(Buffer_Route.selected && rbeAC.length == 0){
                createRbeAC();
            }
        }

А вот и функция creatRbeAC ...

private function createRbeAC():void
{               
    rbeAC.removeAll();
    hiddenRBELayers.removeAll();

    var rbeIDs:Array = rbeConfigList.getKeySet();
    for each (var rbeID:int in rbeIDs)
    {   
            var rbeConfig:Hashtable = rbeConfigList.find(rbeID) as Hashtable;
        var rbeData:Object = 
        {
            restURL:rbeConfig.find("rbeRESTURL") as String,
            layername:rbeConfig.find("rbeLayerName") as String,
            icon: rbeConfig.find("rbeIcon") as String, 
            titlefield: rbeConfig.find("rbeTitleField") as String,
            checked: rbeConfig.find("rbeChecked") as String,
            count: "0" as String
        };                  
        if(rbeData.checked == "false")
        {                   
            hiddenRBELayers.addItem(rbeData.layername);// as String);
        }
        rbeAC.addItem(rbeData);         
    }
}

Я не получал никакого загружаемого текста, поэтому я удалил функции clearMessage и enableButtons из кода, чтобы посмотреть, добавляет ли он сообщение и отключает ли кнопки для начала. Я все еще ничего не получаю, хотя. Так как clearMessage и enableButtons не найдены в обработчике щелчков этой кнопки или функции creatRbeAC, я не могу понять, почему сообщение и кнопки загрузки не отключаются, даже когда вычисления завершены.

Некоторые вещи на заметку. Если я закомментирую функцию creatRbeAC, появится сообщение о загрузке и кнопки отключатся. Это почти как если бы эти функции игнорировались, когда функция creatRbeAC находится в коде.

Любая помощь? Буду весьма признателен за это. Надеюсь, я предоставил достаточно информации.

1 Ответ

0 голосов
/ 10 февраля 2011

в моем реальном приложении, у меня есть похожие проблемы.В моем Eventhandler (это не имеет значения, если есть обработчик кнопок или обработчик мыши), я также не хочу отключать приложение и использовать некоторые функции фильтра для моего arrayCollection.

К сожалению, это действиеКажется, что требуется слишком много ресурсов, особенно, когда приложение работает в режиме отладки.Я должен подмигнуть для следующего обновления Screnn.Поэтому я пытаюсь реализовать «applyFilterMethod» в моем обработчике событий с

callLater(applyFilterMethod)

, но это также не сработало.

Finally, the setTimeOut(applyFilterMethod,500)

решило мою проблему.Так что, если вам повезет, попробуйте метод тайм-аута.

BR Frank

...