类似于前面的例子,我们仍然用一个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函数