2013-08-06 4 views
2

Я пытаюсь переключиться между двумя различными XML-файлами, нажав две кнопки, при нажатии первой, которую я хочу загрузить t2.wml, и когда я нажимаю другой, я хочу загрузить t1.xml. Все работает, если я устанавливаю «num» на статическое значение, но я хочу изменить значение num в зависимости от того, какую кнопку я нажимаю.Переключение между двумя разными XML-файлами с помощью кнопок?

Я думаю, что пропустил что-то очевидное, но я не могу узнать, что и я застрял здесь.

У кого-нибудь есть идеи, как решить эту проблему? И почему моя функция не меняет значение 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 

Заранее благодарен! На самом деле, здесь можно воспользоваться некоторой помощью.

ответ

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 из самой кнопки и добавьте eventListener к loader так, когда она будет завершена она запускает функцию fileLoaded которая помещает загруженный XML в правое текстовое поле. (Я бы изменить XML в нечто более общее, чем testswe или 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)); 
} 

И добавить еще eventlisteners и более case s до switch;

+0

Спасибо большое, никогда не думал об этом таким образом. Кажется, что все работает отлично (пришлось добавить несколько «)», которые отсутствовали. Еще раз спасибо! – user2656512

+0

Добро пожаловать. И если это решение будет работать для вас, пожалуйста, будьте так любезны, чтобы принять мой ответ :) – putvande

+0

Выполнено :) Если я хочу использовать более двух XML-файлов, есть ли более подходящие способы сделать это или просто создать больше функций, которые загружают следующий XML? – user2656512

Смежные вопросы