やあ、私が取り組んでいるいくつかの 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 関数がコード内にある場合、それらの関数が無視されているかのようです。
何か助けはありますか?大変ありがたく存じます。うまくいけば、私は十分な情報を提供しました。