類似于前面的例子,我們仍然用一個ComboBox組件來選擇讀取方式,用一個TextArea組件來顯示結果。
首先我們用dataProvider給ComboBox填充文字和初始值,最后給它增加監聽器,使之一旦改變,switch函數就執行判斷,并執行相應函數。代碼如下:
//聲明myComboBox為一個新的ComboBox組件
var myComboBox:mx.controls.ComboBox;
//聲明myTextArea為一個新的TextArea組件
var myTextArea:mx.controls.TextArea;
//給myComboBox增加數據源
myComboBox.dataProvider = [{data:0, label:"點擊選擇"}, {data:1, label: "loadVariables方式"}, {data:2, label: "loadVars方式"}, {data:3, label: "XML方式"}];
/*---------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------*/
//為myComboBox定義監聽函數
var listenerObject:Object = new Object();
//當myComboBox改變選項時
listenerObject.change = function(eventObject:Object) {
//選擇comboBox的值
switch(eventObject.target.value){
//如果是1,執行firstMethod方法
case 1: firstMethod();break;
//如果是2,執行secondMethod方法
case 2: secondMethod();break;
//如果是3,執行thirdMethod方法
case 3: thirdMethod();break;
//默認情況什么都不做
default:0;break;
}
};
//為myComboBox增加監聽函數
myComboBox.addEventListener("change", listenerObject);
/*-----------------------------------------------------------------------------------------------------------------------------
由于loadVariables沒有onLoad觸發事件,所以我們只能不停的利用setInterval一次次的使用checkIt函數檢測,一旦讀入的_root.theValue值不為空,才刪除setInterval,顯示讀到的值。
------------------------------------------------------------------------------------------------------------------------------*/
function firstMethod():Void{
loadVariables("load.aspx?myMethod=loadvariables",_root, "GET");
function checkIt() {
if (_root.theValue == undefined) {
myTextArea.text = "Loading... ";
} else {
myTextArea.text = _root.theValue;
clearInterval(myInterval);
}
}
var myInterval:Number = setInterval(checkIt, 100);
}
//定義secondMethod函數
原文轉自:http://www.anti-gravitydesign.com