PDA

Просмотр полной версии : как запретить перечисление свойств


chilin
25.08.2005, 01:30
подгружаю 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

chilin
25.08.2005, 03:00
с перечислением то я справился как после того как тему создал сразу же.
Но вот незадача ... делаю менюху выпадающую, инфа соответственно из 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 или я чего-то не понимаю ?

iNils
25.08.2005, 16:08
Array.reverse() не пробывал?