Просмотр полной версии : как запретить перечисление свойств
подгружаю XML, пытаюсь ее парсить на мешают свойства класса
XML.prototype._init_DOM = function(xml_path:String) { this.load(xml_path); };
XML.prototype.onLoad = function() { if(this.status == 0) this.childNodes.fm_parse_DOM();
};
Array.prototype.fm_parse_DOM = function() {
for(var v in this) trace(v);
};
Выводит: fm_parse_DOM, 5,4,3,2, 1,0
как избежать перечисления свойства fm_parse_DOM в цикле for ... in немогу сооброзить
KidsKilla
25.08.2005, 01:48
недокументированной ф-цией ASSetPropFlags:
http://www.flash-ripper.com/articles/flash/2002_08_13_asspropflags.htm
с перечислением то я справился как после того как тему создал сразу же.
Но вот незадача ... делаю менюху выпадающую, инфа соответственно из XML.
Но я хочу при парсинге массива DOM избежать применения цикла for аи испольховать for ...in, но так как он при выводе отрабатывает принцип "последний зашел - первый вышел" то нужно сначало инвертировать исходный массив чтоб потом все было пучком, вот собственно код
//поднимаем DOM - модель нашей XML
XML.prototype._init_DOM = function(path:String) { this.load(path); };
//прописываем тело функции обработки уже подгруженной DOM
XML.prototype.onLoad = function() { if(this.status == 0) this.childNodes.fm_parse_DOM();};
//
Array.prototype.fm_parse_DOM = function() {
var a = this.concat();
for(var v in this) this[this.length - v -1] = a[v];
for(var v in this) {
trace(this[v].attributes["name"]);
if(this[v].hasChildNodes()) {
for(var o in this[v].childNodes) {
trace("___" + this[v].childNodes[o].firstChild);
}
}
}
};
дак вот в свойстве fm_parse_DOM this - не хочет гад инвертироваться, не хочет изменятся хоть убей. Подскажите что сделать надо то, может поднять флаг "переопределения" свойства fm_parse_DOM или я чего-то не понимаю ?
Array.reverse() не пробывал?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.