Я чрезвычайно новичок в AS3 и, похоже, над моей головой.AS3/XML - не удается динамически получить доступ к xml
Я пытаюсь заставить сценарий вытащить другой .xml-файл в зависимости от того, что было выбрано из созданного массивом меню на предыдущей сцене. Хотя я бы хотел, чтобы это было более гибким, я готов просто создать оператор «if», чтобы выбрать .xml, но я не могу отслеживать переменную, которая будет меняться в зависимости от выбранного пункта меню.
Вот что я сейчас работаю. Это гибкая версия (у меня все еще есть надежда). Как я уже сказал, я очень новичок в этом, и если вам нужно увидеть больше, чтобы получить лучшую картину, дайте мне знать.
var item_list = new Array();
var i:Number;
var total:Number;
var find_xml:XML = new XML();
// This part is what pulls from the frame that this is placed on
// The as3 script on the frame --- "page_2.load_xml("enter xml file");"
function push_array(e:Event):void{
find_xml = XML(e.target.data);
total = find_xml.item.length();
for(i = 0; i < total; i++){
item_list.push({ content: find_xml.item[i].content.toString() });
}
}
function load_xml(xml_file:String):void{
var xml_loader:URLLoader = new URLLoader();
xml_loader.load(new URLRequest(xml_file));
xml_loader.addEventListener(Event.COMPLETE, push_array);
}
//Here is where the variable holding the .xml will go
var xml_file:String = place variable with .xml file name here;
Благодарим за любую помощь!
---- ДОБАВЛЕНО: Вот оставшийся код ----
try{
var key_str:String;
var value_str:String;
var param_obj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (key_str in param_obj){
value_str = String(param_obj[key_str]);
if(key_str == "xml_file")
xml_file = value_str;
break;
}
}
catch (error:Error) {}
touch_slider.load_gallery(xml_file);
import flash.net.URLRequest;
import flash.ui.ContextMenu;
var menu:ContextMenu = new ContextMenu();
var copyright:ContextMenuItem = new ContextMenuItem("");
var credit:ContextMenuItem = new ContextMenuItem("");\
menu.hideBuiltInItems();
menu.customItems.push(copyright, credit);
this.contextMenu = menu;
function visit(e:Event){
var my_link:URLRequest = new URLRequest("");
navigateToURL(link, "_self");
}
function visit_bar_slider(e:Event){
var my_link:URLRequest = new URLRequest("");
navigateToURL(my_link, "_parent");
}
SO этот код загружает файл XML и помещает его потомков в массиве. Мне кажется. Не могли бы вы лучше объяснить, с чем у вас проблемы? – BoppreH
Не могли бы вы поделиться кодом, который показывает, как вы называете функцию load_xml()? –
Если я помещаю .xml прямо в (поэтому он читает var xml_file: String = "my_list.xml"), все работает. То, что я надеюсь сделать, это переменная, которая заполняет «xml_file» изменение. – user3311335