PDA

Просмотр полной версии : Обращение к атрибутам XML


aikon
01.03.2006, 12:06
В AS1 было:
var i = 0;
var nod = xml_doc.firstChild;
while (nod) {
nod.attributes.ID = i++;
nod = nod.NextNode();
trace(nod.firstChild);
}
В AS2 такое не работает, там должно быть что-то типа:
nod.attributes[attr], но выходит ошибка,почему?

aikon
01.03.2006, 12:17
Ошибка-то не здесь var nod = input_xml.firstChild;
while (nod) {
nod.attributes[ID] = i++;
nod = nod.NextNode();
} Сорри...

Antares
01.03.2006, 14:51
А что, у XMLNode есть метод NextNode?

aikon
01.03.2006, 15:29
Это функция обхода дерева. Проблема с определение атрибутов в 7 плейере... Что можно в 6, в 7 нельзя...

KidsKilla
01.03.2006, 15:58
ас2:

nod.attributes.id = i++;

aikon
01.03.2006, 16:11
А как обратиться к определенной строчке xml? xml_ob..firstChild.childNodes[num]?

KidsKilla
01.03.2006, 16:12
что значит "определенной строчке xml"?

aikon
01.03.2006, 16:16
.input_xml.firstChild.childNodes[num].attributes.preview- обращение к аттрибуту preview определенной строки?

KidsKilla
01.03.2006, 16:22
файл:
<input>
<item preview="1" />
<item preview="2" />
<item preview="3" />
<item preview="4" />
</input>

as:
input_xml.firstChild.childNodes[2].attributes.preview == "3"

aikon
01.03.2006, 16:33
Тут исходник был фотоальбома, в 6 плеере пашет, в 7 нет, почему? Рекурсия не срабатывает.

KidsKilla
01.03.2006, 16:49
не знаю.
копаться в исходниках не буду.
выдели место где что-то не работает и отпишись

aikon
01.03.2006, 17:16
Если я правильно понимаю, то ошибка тут:
tmp.initLoading = function() {
if (!this.checkNode()) {
return;
}
this.pic.loadMovie(_root.input_xml.firstChild.childNodes[this.num+this._parent.begin].attributes.preview);
this.onEnterFrame = this.checkIsLoaded;
};
Условие всегда ложно, а я пытаюсь загрузить превью...

aikon
01.03.2006, 17:20
Я тут поэксперементировал, и вышло, что одна картинка грузиться, а врет сама загрузка:
tmp.checkIsLoaded = function() {
if (this.pic.getBytesLoaded()/this.pic.getBytesTotal() == 1) {
this._parent["p"+(this.num+1)].initLoading();
delete this.num;
this._xscale = this._yscale=1;
this.onEnterFrame = this.animateIt;
}
};

Exey
17.09.2006, 18:37
Если я правильно понимаю, то ошибка тут...

Тоже перевожу Iv'овский Альбом на ActionScript 2.0...

Проблема в доставании из загруженного XML узлов, например:

Flash Player 6, AS1.0

tmp.checkNode = function() {
...
trace(_root.input_xml[this.num+this._parent.begin]);
...
}

получаем узлы, типа
<pic ID="1" ... />
<pic ID="2" ... />
...

А в Flash Player 8, AS2.0 — undefined

Как будет _root.input_xml[this.num+this._parent.begin] на AS2? Подскажите.

scourge ' kangaroo
18.09.2006, 17:22
file = new XML();
file.load(xmlfile)
file.ignoreWhite = true;
file.onLoad = function(success) {
xml = file.childNodes;
for( m = 0; m < xml.length; m++ ){
trace(xml[m].attributes.атрибут)
}

работает. сам юзаю регулярно.

etc
18.09.2006, 17:30
А в Flash Player 8, AS2.0 — undefined
http://livedocs.macromedia.com/flash/8/main/00002870.html