![]() |
|
||||||||||
|
|||||
|
Guest
Сообщений: n/a
|
Вот тут получилась такая аказия,
написал хмл <str1 id="link 1" url="www.link1.ru"></str1> <str2 id="link 2" url="www.link1.ru"></str2> во флэше в первом кадре var xmlElement; var doc = new XML (); doc.load("xmlfile.xml"); и в 45 кадре xmlElement=doc; i = 0; while (xmlElement.firstChild != null) { namel=xmlElement.attributes.id; duplicateMovieClip (l, "l"+i, i); setProperty ("l"+i, _y, i*20); eval("l"+i+".str") = namel; xmlElement.nextSibling; i++; } stop (); мото подскажете в каком я месте лошу? |
|
|||||
|
алкаголик и придурок
Регистрация: May 2001
Адрес: город-герой лондон
Сообщений: 2,103
|
firstChild часто нул и есть...
и лучше циклить до кол-ва элементов: for (i=0; i<xmlElement.childNodes.length; i++){ if (xmlElement.childNodes[i] != null){ //остальной код... xmlElement=doc; в этом контексте непонятно зачем так делать и тогда уж delete doc; - не у всех P4 xmlElement.nextSibling; вполне может быть я во что-то не врубаюсь - но что это должно делать? |
|
|||||
|
Guest
Сообщений: n/a
|
sts я заменил как ты сказал в 45-ом кадре код на
for (i=0; i<doc.childNodes.length; i++){ if (doc.childNodes[i] != null){ namel=doc.attributes.id; duplicateMovieClip (l, "l"+i, i); setProperty ("l"+i, _y, i*20); eval("l"+i+".str") = namel; } } delete doc; stop (); он проходит всего 1 раз, и не берет переменную id бякак какая-то. |
|
|||||
|
алкаголик и придурок
Регистрация: May 2001
Адрес: город-герой лондон
Сообщений: 2,103
|
попробуй добавить проверку на id и смотри результат сначала трейсом. если трейс выдает значения то XML в порядке и ошибка не в нем
for (i=0; i<doc.childNodes.length; i++){ if (doc.childNodes[i] != null){ if (doc.childNodes[i].attributes.id != null) { var link = doc.childNodes[i].attributes.id; //так правильней trace ('link is ' + link); } } } |
|
|||||
|
Guest
Сообщений: n/a
|
sts спасибо, я твой должник.
у меня вон оказывается в чем беда была я вместо doc.childNodes[i].attributes.id; писал doc.attributes.id; Ну вообщемто, и куча других. Да слушай а ты где нибудь работаешь? напиши мне на ama2001@narod.ru |
|
|||||
|
Guest
Сообщений: n/a
|
А чего-то опять беда.
я написал все работает, но почему-то вславляет левые строчки, похоже как пустые. for (i=0; i<doc.childNodes.length; i++){ if (doc.childNodes[i]!= null){ namel=doc.childNodes[i].attributes.id; duplicateMovieClip (l, "l"+i, i); setProperty ("l"+i, _y, i*20+50); eval("l"+i+".str") = namel; } } delete doc; stop (); |
|
|||||
|
это из-за перевода строки в ХМЛ. Флэш воспринимает перевод строки (как и пробел, как и таб) как текстовый нод. вместо if (doc.childNodes[i]!= null) поставь if (doc.childNodes[i]!= null && doc.childNodes[i].nodeType!=3)
тады все будет ок.
__________________
"Трудное детство... килобайтные игрушки..." |
![]() |
Часовой пояс GMT +4, время: 00:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|