0

やあ、私が取り組んでいるいくつかの Actionscript と少し混乱しています。私の GUI では、コンピューティングが行われているときのために 4 つの関数を作成しました。これらは、showMessage("Loading Text...")、disableButtons()、clearMessage()、および enableButtons() です。彼らはプログラム全体でうまく機能します。ShowMessage は読み込みメッセージを表示し、disableButtons はボタンを無効にして誰も何もクリックできないようにし、clearMessage はジョブが完了すると読み込みメッセージをクリアし、enableButtons はそれらをすべてオンに戻します。

なんらかの理由で、ボタン クリック ハンドラーが 1 つあり、それが原因で問題が発生するのですが、その理由がわかりません。私はそれに似た他のものと同じように設定しました(すべて動作します)が、これはメッセージを表示したり、ボタンをオフにしたりしません。これが私の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 関数がコード内にある場合、それらの関数が無視されているかのようです。

何か助けはありますか?大変ありがたく存じます。うまくいけば、私は十分な情報を提供しました。

4

1 に答える 1

0

私の実際のアプリでは、同様の問題があります。私のEventhandler(ボタンハンドラーまたはマウスハンドラーがあるかどうかは関係ありません)では、アプリを無効にして、arrayCollectionにいくつかのフィルター関数を使用することもしたくありません。

残念ながら、特にアプリをデバッグモードで実行する場合、このアクションには多くのリソースが必要になるようです。次の画面の更新を待つ必要があります。だから私は私のイベントハンドラーに「applyFilterMethod」を実装しようとします

callLater(applyFilterMethod)

しかし、それも機能しません。

Finally, the setTimeOut(applyFilterMethod,500)

私の問題を解決しました。ですから、運が良ければ、timeout-methodで試してみてください。

BRフランク

于 2011-02-10T08:37:20.947 に答える