Foros del Web » Creando para Internet » Flash y Actionscript »

Problema con Eventos en AS (xml, bucles, movieclip y text)

Estas en el tema de Problema con Eventos en AS (xml, bucles, movieclip y text) en el foro de Flash y Actionscript en Foros del Web. Hola a todos, Tengo más de una semana rompiéndome la cabeza con un script en AS. Soy muy nuevo en AS así que de ante ...
  #1 (permalink)  
Antiguo 09/06/2008, 12:12
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Problema con Eventos en AS (xml, bucles, movieclip y text)

Hola a todos,

Tengo más de una semana rompiéndome la cabeza con un script en AS. Soy muy nuevo en AS así que de ante mano pido disculpa por mis errores y lo largo de este post.

Estoy sacando datos desde archivos xml para ser cargados en flash, los datos son textos e imágenes. Mi script funciona a la perfección sacando los datos y con los eventos siempre y cuando saco solo textos. El problema surge a la hora de querer asignarle eventos a al movieclip que carga las imagenes que estoy sacando de los xml.

El funcionamiento del Script es el siguiente:

-Crear un menú con botones (main_btn el cual es instancia de proyecto_item)
-Al tocar un boton se cambia la información correspondiente a la descripción (content_txt el cual es instancia de infobox_mc) y también se debería cambiar la información correspondiente a las imagenes thumbs_mc lo cual no sucede ya que la función que maneja esos eventos: DisplayInfo() está configurada para interactar con text o htmlText y no con movieclip.

Además tengo otro elemento llamado thumbs_txt el cual carga los nombres de las imagenes, lo tengo en el sript solo con fines de pruebas y para asegurarme de que las variables están siendo pasadas correctamente.

Bien, aquí copiare el Script completo (disculpen) ... ... La idea es poder asignarle los eventos a las imagenes y así cambien a la hora de tocar un boton.

Código:
Código:
function DisplayInfo(){
   menu_mc._visible = true;
   infobox_mc._visible = true;
   infobox_mc.content_txt.htmlText = this.location_text;
   infobox_mc.thumbs_txt.htmlText = this.location_img;
   //infobox_mc.thumbs_mc = location_thumbs;
}

//Variables para configurar el menú donde se cargan los botones
var item_spacing = 28; // how far menu items are spaced veritcally
var item_count = 0; // counts menu items as they are added from the XML
var thumb_spacing = 40;

function loadXML(loaded) {
   if (loaded) {

      
      //Definir Array para buscar dentro del xml
      var total = this.firstChild.childNodes.length;
      totalnodos_txt.text = total;
      
      //Primer bucle para sacar datos de los proyectos
      for (p=0; p<total; p++) {
         var id = this.firstChild.childNodes[p].childNodes[0].firstChild.nodeValue;
         var cliente = this.firstChild.childNodes[p].childNodes[1].firstChild.nodeValue;
         var proyecto = this.firstChild.childNodes[p].childNodes[2].firstChild.nodeValue;
         var descripcion = this.firstChild.childNodes[p].childNodes[3].firstChild.nodeValue;
         
         // Crear un menu item movie clip como instanacia de menu_mc 
         var item_mc = menu_mc.attachMovie("proyecto_item","item"+item_count, item_count);
         item_mc._y = item_count * item_spacing;
         item_count++;
         
         // Asginar valores:  Etiquetas de los botones
         item_mc.proyecto_txt.text = proyecto;
         
         //Configurar el evento del boton 
         item_mc.main_btn.onRelease = DisplayInfo;

            //Definir Array para buscar dentro del xml
         var detalles_total = this.firstChild.childNodes[p].childNodes[4].childNodes.length;
         
         //Segundo bucle (es aninado del primero) para sacar datos de los detalles e imagenes de los proyectos
         for (d=0; d<detalles_total; d++) {
            var det_id = this.firstChild.childNodes[p].childNodes[4].childNodes[d].childNodes[0].firstChild.nodeValue;
            var det_proyectoid = this.firstChild.childNodes[p].childNodes[4].childNodes[d].childNodes[1].firstChild.nodeValue;
            var det_titulo = this.firstChild.childNodes[p].childNodes[4].childNodes[d].childNodes[2].firstChild.nodeValue;
            var det_descripcion = this.firstChild.childNodes[p].childNodes[4].childNodes[d].childNodes[3].firstChild.nodeValue;
            
            //Asignar valores:  Descripción de los proyectos
            detalle = "<b>"+det_titulo+"</b> <br />"+det_descripcion+" <br /><br />";
            item_mc.main_btn.location_text = item_mc.main_btn.location_text + detalle;   
            
            //Sacar las imagenes
            var img_id = this.firstChild.childNodes[p].childNodes[5].childNodes[d].childNodes[0].firstChild.nodeValue;
            var img_thumbs = this.firstChild.childNodes[p].childNodes[5].childNodes[d].childNodes[1].firstChild.nodeValue;
            var img_titulo = this.firstChild.childNodes[p].childNodes[5].childNodes[d].childNodes[2].firstChild.nodeValue;
            
            //Aquí está el problema con los eventos
            //Construir los movie clip para cargar las imagenes dentro de  infobox_mc.thumbs_mc 
            //las cuales deberían cambiar al tocar un boton con le nombre del proyecto pero no cambian!
            var currentThumb_mc = infobox_mc.thumbs_mc.createEmptyMovieClip("thumbnail_mc"+d,d);
            currentThumb_mc = currentThumb_mc;
            currentThumb_mc._x = d * thumb_spacing;
      
            currentThumb_mc.createEmptyMovieClip("thumb_container",0);
            currentThumb_mc.thumb_container.loadMovie(img_thumbs);
      
            //currentThumb_mc.image = img_thumbs;

            //currentThumb_mc.onRelease = function(){
            //image_mc.loadMovie(this.image);
            //}            
            
            //Esto es para mostrar los nombres de las imagenes en un campo htmlText 
            //y así asegurarme de que se estan sacadno las variables correcta de los xml
            imagen = ""+img_thumbs+" <br />";
            //Asignar valores:  Nombres de las imagenes en htmlText
            item_mc.main_btn.location_img = item_mc.main_btn.location_img + imagen;
            
         }
         //Defino esta variable fuera del bucle anidado para indicar que para el siguiente 
         //ciclo del bucle empieze en blanco.
         infobox_mc.thumbs_mc = "";
         
      }
   } else {
      trace("file not loaded!");
   }
}

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("portafolio2.xml");
  #2 (permalink)  
Antiguo 10/06/2008, 12:14
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Hola Hrxnet !

No podrías subir el fla, el xml y algunas imágenes de ejemplo, para poder saber más fácilmente lo que sucede ?

Un saludo !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 10/06/2008, 13:15
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Hola Jahepi,

Bien, aquí lo he subido en este link:

http://lave.sc20.info/archivos-fla-xml-images.zip

Está todo en un zip, favor descomprimir todo en una carpeta... Si corres el .fla (version flash 8) podrás ver que se genera un menú con dos botones y abajo salen listadas las 3 imágenes correspondiente al tocar el primer botón (realmente no deberían salir de primera ya que deben salir solo al tocar el botón con nombre: CASA MADRID O EDIFICIO CORPORATIVO)....

Si tocas uno de los dos botones: casa madrid o edificio corporativo... podrás ver a la derecha de estos como se cargan sus descripciones y más abajo, al final luego de las tres fotos (que se quedan estáticas sin importar que botón toques) salen los nombres de las imagenes y sus rutas dependiendo en que botón tocaste, puse eso ahí debajo solo para probar si realmente el bucle me la estaba sacando correctamente.

Como podrás notar, el script funciona, solo falta el detalle que agregarle el evento al MovieClip de las imagenes para que al tocar un botón cambien.


Gracias,
  #4 (permalink)  
Antiguo 10/06/2008, 14:40
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Cita:
Iniciado por hrxnet Ver Mensaje
Hola Jahepi,

Bien, aquí lo he subido en este link:

http://lave.sc20.info/archivos-fla-xml-images.zip

Está todo en un zip, favor descomprimir todo en una carpeta... Si corres el .fla (version flash 8) podrás ver que se genera un menú con dos botones y abajo salen listadas las 3 imágenes correspondiente al tocar el primer botón (realmente no deberían salir de primera ya que deben salir solo al tocar el botón con nombre: CASA MADRID O EDIFICIO CORPORATIVO)....

Si tocas uno de los dos botones: casa madrid o edificio corporativo... podrás ver a la derecha de estos como se cargan sus descripciones y más abajo, al final luego de las tres fotos (que se quedan estáticas sin importar que botón toques) salen los nombres de las imagenes y sus rutas dependiendo en que botón tocaste, puse eso ahí debajo solo para probar si realmente el bucle me la estaba sacando correctamente.

Como podrás notar, el script funciona, solo falta el detalle que agregarle el evento al MovieClip de las imagenes para que al tocar un botón cambien.


Gracias,

Hola Hrxnet !

Gracias por subir el proyecto, así es más fácil poder ver cual es el problema.

Estuve revisando la parte donde capturas el evento cuando un thumb es presionado:

Código PHP:
currentThumb_mc.onRelease = function(){
     
image_mc.loadMovie(this.image);

La instacia image_mc no existe y por esa razón no te carga las imágenes.

Un saludo !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #5 (permalink)  
Antiguo 10/06/2008, 15:33
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Hola Jahepi,


Permite me explicarte.

Desde la línea 93 hasta la 97 el código:

--
currentThumb_mc.image = img_thumbs;

currentThumb_mc.onRelease = function(){
image_mc.loadMovie(this.image);
}
--

Le crea un evento a las imágenes que aparecen en el thumbanils para que al tocar una de ellas se agrande en la instancia image_mc ... de hecho, en la línea 93:
currentThumb_mc.image = img_thumbs;
no iria la variable img_thumbs, sino otra de la imagen grande.

En otras palabras, se que no existe la instancia image_mc pero en este punto no la necesito ya que su función es simplemente mostrar la foto grande de las versiones chicas. Por ahora me interesa que las fotos chicas (el thumbs) cambien a la hora de tocar uno de los botones de los proyectos: casa madrid o edificio corporativo. Mientras eso no cambie, no me interesa usar la instancia image_mc. De hecho, podes comentar las líneas desde la 93 hasta la 97 y no influirán en nada, o también si gustas podes crear la instancia image_mc y verás.
  #6 (permalink)  
Antiguo 10/06/2008, 16:48
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Cita:
Iniciado por hrxnet Ver Mensaje
Hola Jahepi,


Permite me explicarte.

Desde la línea 93 hasta la 97 el código:

--
currentThumb_mc.image = img_thumbs;

currentThumb_mc.onRelease = function(){
image_mc.loadMovie(this.image);
}
--

Le crea un evento a las imágenes que aparecen en el thumbanils para que al tocar una de ellas se agrande en la instancia image_mc ... de hecho, en la línea 93:
currentThumb_mc.image = img_thumbs;
no iria la variable img_thumbs, sino otra de la imagen grande.

En otras palabras, se que no existe la instancia image_mc pero en este punto no la necesito ya que su función es simplemente mostrar la foto grande de las versiones chicas. Por ahora me interesa que las fotos chicas (el thumbs) cambien a la hora de tocar uno de los botones de los proyectos: casa madrid o edificio corporativo. Mientras eso no cambie, no me interesa usar la instancia image_mc. De hecho, podes comentar las líneas desde la 93 hasta la 97 y no influirán en nada, o también si gustas podes crear la instancia image_mc y verás.
Hola Hrxnet !

Te dejo el archivo, te deje algunos comentarios.

Archivo Flash

Saludos !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #7 (permalink)  
Antiguo 10/06/2008, 22:03
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Problema con Eventos en AS (xml, bucles, movieclip y text)

Perdona que no salude pero es que me has dejado más que impresionado por todo el trabajo que le has hecho al AS. Ahora se que no se nada de AS, primero porque es verdad, segundo porque pensé que eso del evento era una tontería (pero igual yo no lo sabía), tercero porque para que yo pueda entender todo lo que hiciste pasarán semanas o meses y cuarto porque aunque llegue a comprender todo lo que hiciste en el AS, en ese punto me dare cuenta nuevamente que no se nada de AS.

Me siento más que en deuda contigo; te enviaré un mensaje privado con mi e-mail personal para hablar de algunas cosas (Negocios, Chismes, de AS, PHP, Linux, Fidel, Obama, Volkswagen, etc..) y quizás algún día pueda cubrir un poco mi deuda.


Para el resto de los lectores, está demás decir que Jahepi es un capo, sino me creen solo miren el AS original y compárenlo con el modificado por Jahepi.


Está demás decir gracias no?...



Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:58.