PDA

Просмотр полной версии : Помогите с ХМЛ плизззз


denixr
24.10.2005, 21:32
Здравствуйте:) профессоры.
Помогите найти ошибку, чего то до меня не доходит...

Вот мой хмл фаил
<?xml version="1.0" standalone="yes"?>
<AllSites>
<site siteName="111" siteURL="http://www.flashkit.com"></site>
<site siteName="222" siteURL="http://www.google.com"></site>
</AllSites>

Во флеше у меня пару кнопок в одном слое и первом кадре с именами 111 и 222.

Во втором слое первом кадре я пишу:

thisXML = new XML();
thisXML.ignoreWhite = true;
thisXML.onLoad = LoadCombo;
thisXML.load("sites2.xml");

111.onRelease = function ()
{
var BaseNode=thisXML.childNodes[0];
var nnnSites = new Array();
var bbbURLs = new Array();
var ThisNode;
for (i=0; i < BaseNode.childNodes.length; i++){
ThisNode = BaseNode.childNodes[i];
nnnSites[i] = ThisNode.attributes["siteName"];
bbbURLs[i] = ThisNode.attributes["siteURL"];
if (111.name == nnnSites[i])
{
getURL(bbbURLs[i]);
}
}
}

и тоже самое для кнопки 222...
Т.е. у меня есть кнопки и к ним нужно подгрузить ссылки, которые могут меняться.
Кнопок я потом еще штук 10 добавлю.

Подскажите, чего я не так делаю...:)

sergwizard
25.10.2005, 02:50
Прежде всего, - ты забыл подгрузить XML во флэшку. :)

denixr
25.10.2005, 10:34
Да нет не забыл, я забыл в топик просто записать... Сейчас исправил выше.
Но вот почему не пашет :(

sarjick
25.10.2005, 12:31
Чесно говоря, в ХМЛ не разбирался, но сразу бросилась в глаза:
111.onRelease = function ()
....
Попробуй дать кнопкам текстовые имена ...

denixr
25.10.2005, 15:22
Не помогает:(

Чего то даже на скобки ругается...

as_68
25.10.2005, 16:22
stop();
//create a new XML object
thisXML = new XML();
//ignore whitespace in the file
thisXML.ignoreWhite = true;
//call the LoadChartData function when the XML file is loaded
//thisXML.onLoad = LoadCombo;
//load the xml file
thisXML.load("sites2.xml");
thisXML.onLoad = function(success) {
if (success == true) {
//function LoadCombo(success) {
// if (success) {
//set variables
// var BaseNode=thisXML.childNodes[0];
// var ComboSites = new Array();
// var ComboURLs = new Array();
// var ThisNode;
//add a default item to the combo box
//111.addItem("-- select site --");
//get sites information
// for (i=0; i < BaseNode.childNodes.length; i++) {
// ThisNode = BaseNode.childNodes[i];
// ComboSites[i] = ThisNode.attributes["siteName"];
// ComboURLs[i] = ThisNode.attributes["siteURL"];
//add to combo box
// 1buton.addItem(ComboSites[1],ComboURLs[1]);
// }
// }
//}
//stop();*/
_root.kn.onRelease = function() {
var BaseNode = thisXML.childNodes[0];
var nnnSites = new Array();
var bbbURLs = new Array();
var ThisNode;
for (i=0; i<BaseNode.childNodes.length; i++) {
ThisNode = BaseNode.childNodes[i];
nnnSites[i] = ThisNode.attributes["siteName"];
bbbURLs[i] = ThisNode.attributes["siteURL"];
if (_root.kn._name == nnnSites[i]) {
getURL(bbbURLs[i]);
}
}
};
}
};

sergwizard
25.10.2005, 18:26
Вот что можно сделать с твоим XML. смотри пример

denixr
25.10.2005, 21:41
Да... спасибо as_68 и sergwizard :)
Буду разбираться. Сразу заметил, что я после скобки точку с запятой не поставил. :( А вообще виснуть не будет интересно, если этих кнопок штук 30 будет, на слабом ПК.

denixr
25.10.2005, 21:46
sergwizard - пример интересный!
Но у меня эти кнопки в определенном порядке на фоне (вроде городов на-карте) расположены и думаю их проблематично создавать таким способом. А вот для меню к примеру это то что надо.

sergwizard
25.10.2005, 22:48
А кнопочки и необязательно аттачить так, как я это сделал. Можно вручную расположить там, где тебе нужно. Главное - имена давать им соответствующие. Я ща попробую тебе примерчик поинтереснее набросать.

sergwizard
25.10.2005, 23:26
Вот, посмотри.