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