嘿, 我對我正在處理的一些Actionscript有點困惑。對於我的GUI,我已經爲計算髮生的時間寫了四個函數。這些是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無法在這個按鈕中找到Click處理函數或creatRbeAC函數,因此我不明白爲什麼加載消息和按鈕沒有被禁用,即使計算完成。
有些事情要注意。如果我註釋掉creatRbeAC函數,則會顯示加載消息並且按鈕會禁用。就好像這些函數在代碼中的creatRbeAC函數被忽略時一樣。
任何幫助?我將不勝感激。希望我已經提供了足夠的信息。