2

我试图通过按下两个按钮在两个不同的 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 num:int;
var xmlData:XML = new XML ();   
var array:Array = ["t2.xml", "t1.xml"];
var loader_ul:URLLoader = new URLLoader();
loader_ul.load(new URLRequest(array[num]));



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


function engButton (e:Event) {

    language = "eng";
    trace (language);
    trace (num);
    } // end engButton


 function sweButton (e:Event) {

    language = "swe";
    trace (language);
    trace (num);
    } // end sweButton



 function fileLoaded(e:Event)    {

    if (language == "eng"){
            num = 0;
            trace (num);
            xmlData = XML(loader_ul.data);
            myText_text.htmlText = xmlData.testeng;

    } else if (language == "swe") {

            num = 1;
            trace (num);
            xmlData = XML(loader_ul.data);
            myText_text.htmlText = xmlData.testswe;

    } else {
                    trace ("Error");
            }


  } // end fileLoaded

提前致谢!真的可以在这里使用一些帮助。

4

1 回答 1

0

我会这样做:

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 并添加一个eventListenerloader所以当它完成时它会触发fileLoaded将加载的 xml 放入正确的文本字段的功能。(我会将 XML 更改为比testsweor更通用的东西testeng

希望能帮助到你。

如果你想让它更通用,你可以这样做:

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)); 
}

并在;中添加越来越eventlistenerscase的 sswitch

于 2013-08-06T11:58:03.727 回答