Comunidad de diseño web y desarrollo en internet online

ruta relativa en onLoad

Citar            
MensajeEscrito el 30 Abr 2009 08:25 am
Que tal amigos, llevo ya mucho rato lidiando con este problema y no le puedo hallar solucion, les pongo el codigo:

Código :

for (var i:Number = 1;i<6; i++)
 this["obj_xml_"+i]= new XML();
function asig_text(file:Number,c_texto:String){
this["obj_xml_"+file].ignoreWhite = true;
this["obj_xml_"+file].onLoad = function(exito) {
   if (exito) {
      texto = obj_xml_1.firstChild.childNodes[0].firstChild.nodeValue;
      mc_txts["txt_"+c_texto].html = true;
      mc_txts["txt_"+c_texto].htmlText = texto;
      mc_txts["txt_"+c_texto].autoSize = true;
      trace ("Alt"+mc_txts["txt_"+c_texto].textHeight);
      if (mc_txts["txt_"+c_texto].textHeight>138) {
         mc_txts["btn_ad"+file]._alpha = 100;
         mc_txts["btn_at"+file]._alpha = 100;
         mc_txts["btn_ad"+file].enabled = 100;
         mc_txts["btn_at"+file].enabled = 100;
      }
   } else {
      texto = "Error";
   }
}
}
function cargarXML(id:Number) {
   if (id == 1) {
      obj_xml_1.load("musica/conciertos.xml");
      asig_text(id,"conciertos");
   }
}
cargarXML(1);

El problema es en la linea 7 en

Código :

texto = obj_xml_1.firstChild.childNodes[0].firstChild.nodeValue;

Lo que quiero hacer es generar dinamicamente "obj_xml_1" utilizando las variables que tengo arriba, ya probe de varias formas pero no da ningun resultado.Quiero poner algo mas o menos asi:

Código :

texto = this["obj_xml_"+id].firstChild.childNodes[0].firstChild.nodeValue

Pero como estoy en "onLoad" pues me toma el "this" como si me refiriera al "onLoad" y no puedo utilizar "_root" porque este movieclip va a ir adjuntado en otro.
De antemano gracias. Sepan que ya investigue, pero no encontre solucion, sino no los molestaria.

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2009 10:56 am
EL this lo toma cono el objeto XML en que te encuentras (el onLoad es un callback del XML), usa

texto = this.firstChild.childNodes[0].firstChild.nodeValue

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Abr 2009 04:17 pm
Una vez más gracias amigo, estás en lo correcto, no había pensado en ponerlo como me dijiste.

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2009 06:31 pm
Aprovecho para preguntar, como podria referirme a un objeto llamandolo dinamicamente desde "onLoad" y utilizando una ruta relativa, pongo un ejemplo:

Código :

XMLBotones.onLoad=function(exito){
   if (exito){
      for (var i:Number=0;i<5;i++){
         ["btn_"+i].on(release)=function(){
            this.firstChild.childNodes[i].firstChild.nodeValue;
         }
      }
   }

A lo que me refiero es a

Código :

["btn_"+i].on(release)=function(){

Nota: no quiero usar _root, quiero usa this (ruta relativa)

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2009 06:36 pm
En AS2 puedes usar una referencia. Suponiendo que los botones esten en la misma línea de tiempo que el XML, sería:

Código ActionScript :

XMLBotones.ref = this
XMLBotones.onLoad=function(exito){
   if (exito){
      for (var i:Number=0;i<5;i++){
         this.ref["btn_"+i].onRelease=function(){
            this.firstChild.childNodes[this._name.substr(4)].firstChild.nodeValue;
         }
      }
   }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Jun 2009 02:57 am
Muchisimas gracias compita, me fue muy muy util tu respuesta.

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jul 2009 01:00 am
Que tal, disculpen por revivir este tema tan viejo.
Sucede que yo habia creido que ya tenia todo bajo control con esta solucion que me diste compañero Jorge, pero es que lo habia probado solo con casos de "loadClip" y no con casos de "XML ". Me explico:
1.Con loadClip (si funciona) por ej.:

Código ActionScript :

mcLoader:MovieClipLoader = new MovieClipLoader();
   var listener:Object = new Object();
        listener.ref=this;
   listener.onLoadStart = function(target_mc) {
        }


2.Con un XML (no me funciona): me da el error "No hay ninguna propiedad que lleve por nombre 'ref'."

Código ActionScript :

var obj_xml:XML = new XML();
obj_xml.ref =this;
obj_xml.onLoad = function(exito) {
   if (exito) {
   } else {
   }
};

Con el segundo script que les muestro (el de XML) me da el siguiente error: " No hay ninguna propiedad que lleve por nombre 'ref'. ".

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jul 2009 11:06 am
Con notación de array:

Código ActionScript :

obj_xml["ref"] =this; 

obj_xml.onLoad = function(exito) { 
 .....
 this["ref"].gotoAndStop("inicio")
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Jul 2009 01:05 pm
Gracias Jorge, con tu respuesta solucione el problema.
Oye que documento me recomiendas para enterarme de todo lo referente a las rutas, es que me molesta que me salgan problemitas como los antes mencionados, quisiera saber todo lo necesario sobre las rutas, pero pues me voy a la ayuda de flash o a paginas y encuentro solo lo "basico" sobre "this"; te agradeceria mucho que me dieras algunas referencias.

Por tonatiuh

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jul 2009 01:08 pm
No es ruta el tema, sino "scope", traducido sería alcance. El libro de Coolin Moock Essential ActionScript 2 es muy bueno para entender eso, el mismo autor tiene un libro sobre AS3

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Jul 2009 03:59 am
ok, gracias por la referencia, pongo el link del libro por si alguien lo quiere consultar:

http://books.google.com.mx/books?id=wQlYlMuTbwYC&dq=Colin+Moock+Essential+ActionScript+2&printsec=frontcover&source=bn&hl=es&ei=7S9MSvz3HaextweQjvC3AQ&sa=X&oi=book_result&ct=result&resnum=4

Es el del action script 2

Por tonatiuh

21 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.