Actionscript 3 使用按钮在两个不同的XML文件之间切换?

Actionscript 3 使用按钮在两个不同的XML文件之间切换?,actionscript-3,Actionscript 3,我试图通过按下两个按钮在两个不同的XML文件之间切换,当按下第一个按钮时,我想加载t2.wml,当按下另一个按钮时,我想加载t1.XML。如果我将“num”设置为静态值,那么一切都可以正常工作,但我想根据我按下的按钮更改num的值 我想我错过了一些明显的东西,但我找不到什么,我被困在这里 有人知道如何解决这个问题吗?为什么我的函数不能更改num的值呢?:) 提前谢谢!我真的需要一些帮助 我会这样做: import flash.net.URLRequest; import flash.net.UR

我试图通过按下两个按钮在两个不同的XML文件之间切换,当按下第一个按钮时,我想加载t2.wml,当按下另一个按钮时,我想加载t1.XML。如果我将“num”设置为静态值,那么一切都可以正常工作,但我想根据我按下的按钮更改num的值

我想我错过了一些明显的东西,但我找不到什么,我被困在这里

有人知道如何解决这个问题吗?为什么我的函数不能更改num的值呢?:)


提前谢谢!我真的需要一些帮助

我会这样做:

import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;

stop();

var language: String;

var loader_ul: URLLoader = new URLLoader();
loader_ul.addEventListener(Event.COMPLETE, fileLoaded)

engBtn0.addEventListener(MouseEvent.CLICK, engButton);
sweBtn1.addEventListener(MouseEvent.CLICK, sweButton);

function engButton(e: Event) {
    language = "eng";
    loader_ul.load(new URLRequest('t2.xml');
} 

function sweButton(e: Event) {
    language = "swe";
    loader_ul.load(new URLRequest('t1.xml')); 
} 

function fileLoaded(e:Event) {
    var xmlData:XML = new XML(e.target.data);

    if(language == "swe"){
        myText_text.htmlText = xmlData.testswe;
    } else if(language == "eng" {
        myText_text.htmlText = xmlData.testeng;
    }
}
基本上,从按钮本身加载XML,并将
eventListener
添加到
loader
中,因此当加载完成时,它会触发函数
fileLoaded
,将加载的XML放入右侧文本字段。(我会将XML更改为比
testswe
testing
更通用的内容

希望能有帮助

如果要使其更通用,请执行以下操作:

engBtn0.addEventListener(MouseEvent.CLICK, onButtonClick);
sweBtn1.addEventListener(MouseEvent.CLICK, onButtonClick);

function onButtonClick(e:MouseEvent):void {
    var xmlfile:String = "";

    switch(e.target.name){
        case 'engBtn0':
            language = 'eng';
            xmlfile = 't2.xml';
            break;
        case 'sweBtn1':
            language = 'swe';
            xmlfile = 't1.xml';
            break;
    }
    loader_ul.load(new URLRequest(xmlfile)); 
}

并在
开关中添加更多的
eventlisteners
和更多的
case

非常感谢,从来没有这样想过。似乎效果很好(不得不添加一些”)“缺少了这些。再次感谢你!不客气。如果这个解决方案对你有效,请你接受我的回答:)完成:)如果我想使用两个以上的XML文件,有没有其他合适的方法来实现这一点,或者我只是创建更多的函数来加载下一个XML?好的,每个按钮都需要一个
eventListener
,但是您可以将它们全部分配到同一个函数,并在该函数中检查您单击的按钮并对其执行加载。请参阅我的更新的答案。
engBtn0.addEventListener(MouseEvent.CLICK, onButtonClick);
sweBtn1.addEventListener(MouseEvent.CLICK, onButtonClick);

function onButtonClick(e:MouseEvent):void {
    var xmlfile:String = "";

    switch(e.target.name){
        case 'engBtn0':
            language = 'eng';
            xmlfile = 't2.xml';
            break;
        case 'sweBtn1':
            language = 'swe';
            xmlfile = 't1.xml';
            break;
    }
    loader_ul.load(new URLRequest(xmlfile)); 
}