Cazanova 0 Denunciar post Postado Fevereiro 29, 2008 Pessoal, To tentando fazer funcionar uma classe parser que usava no AS2 para o AS3 mas to levando uma surra, e não descubro onde é o erro, se alguém puder me ajudar, ai vai os códigos: no primeiro frame do meu flash tem: import classes.Parser; stage.scaleMode = 'noScale'; var objXml:Object={}; Parser.loadXML("xml/musicas.xml", this, "cb", true, true); function cb(ob:Object) { objXml = ob; gotoAndStop("APP"); } this.stop(); parser.as class classes.Parser { var __link, __parse, __targ, __cb; static function loadXML(link, target, callback, debug, timeCache, param) { var _loc2 = new XML(); _loc2.ignoreWhite = true; var _loc7 = new Date(); var _loc5 = _loc7.getTime(); var _loc8 = link.indexOf("?"); _loc2.__link = link; _loc2.__targ = target; _loc2.__cb = callback; _loc2.__parse = classes.Parser.xml2Object; var _loc3; if (timeCache || timeCache == undefined) { if (_loc8 == -1) { _loc3 = link + "?__time_cache=" + _loc5; } else { _loc3 = link + "&__time_cache=" + _loc5; } // end else if } else { _loc3 = link; } // end else if _loc2.load(_loc3); _loc2.toString = function () { return ("[XML Class Instance]"); }; _loc2.onLoad = function (suc) { if (suc) { if (debug == true || debug == undefined) { trace ("Parser> XML Loaded!!! >>> " + __link); } // end if var _loc2 = this.__parse(this); __targ[__cb](_loc2, param); } else if (debug == true || debug == undefined) { trace ("Parser> Error Loading XML!!! >>> " + __link); } // end else if }; } // End of the function static function xmlObject(xml_data, target, callback) { var _loc1 = new XML(xml_data); return (classes.Parser.xml2Object(_loc1)); } // End of the function static function xml2Object(param) { var _loc6 = function (n) { var _loc2; var _loc4; var _loc5; var _loc3 = new String(n.firstChild.nodeValue); for (var _loc2 = _loc3 == "null" ? (n.firstChild) : (n.childNodes[1]); _loc2 != null; _loc2 = _loc2.nextSibling) { _loc5 = _loc2.childNodes.length > 0 ? (arguments.callee(_loc2)) : (new String(_loc2.nodeValue)); for (var _loc4 in _loc2.attributes) { _loc5[_loc4] = _loc2.attributes[_loc4]; } // end of for...in if (_loc3[_loc2.nodeName] != undefined) { if (!(_loc3[_loc2.nodeName] instanceof Array)) { _loc3[_loc2.nodeName] = [_loc3[_loc2.nodeName]]; } // end if _loc3[_loc2.nodeName].push(_loc5); continue; } // end if _loc3[_loc2.nodeName] = [_loc5]; } // end of for return (_loc3); }; var _loc5 = _loc6(param); return (_loc5); } // End of the function } // End of Class Da erro nas linhas: 15, 43, 46, 50, 57 do parser.as. Acho que é algum erro de declaração, estou iniciando no AS3 e não peguei o jeito... Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 1, 2008 Amigo.. como ainda não tenho muito tempo pra mecher em AS3, não consegui achar solução, mas para o resto do pessoal, olhem os erros que estão dando: 1120: Access of undefined property classes. / _loc2.__parse = classes.Parser.xml2Object; 1120: Access of undefined property __link. / trace ("Parser> XML Loaded!!! >>> " + __link); 1120: Access of undefined property __targ. / __targ[__cb](_loc2, param); 1120: Access of undefined property __cb. / __targ[__cb](_loc2, param); 1120: Access of undefined property __link. / trace ("Parser> Error Loading XML!!! >>> " + __link); 1120: Access of undefined property classes. / return (classes.Parser.xml2Object(_loc1)); Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Março 3, 2008 cara esse código é um pouco extenso, mas as dicas que posso te dar é, o AS3 é todo tipado, você tem que declarar todas as variáveis, e colocar o tipo dela tb, para carregar um XML com AS3, dá uma lida AQUI, para a criação da classe veja AQUI vai alterando essas partes, qualquer coisa é só voltar aqui []´s Compartilhar este post Link para o post Compartilhar em outros sites
Cazanova 0 Denunciar post Postado Março 3, 2008 Valeu a dica, vou dar mais uma lida em AS3 e tentar re-escrever do zero a classe, acho que fica mais facil que ficar catando erros. Valeu Compartilhar este post Link para o post Compartilhar em outros sites