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

Problema con animacion de elementos de menu XML

Estas en el tema de Problema con animacion de elementos de menu XML en el foro de Flash y Actionscript en Foros del Web. Hola Amigos estoy experimentando como realizar un menu en el que los elementos del mismo se carguen de modo dinamico desde un archivo XML y ...
  #1 (permalink)  
Antiguo 13/06/2008, 19:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 0
Problema con animacion de elementos de menu XML

Hola
Amigos estoy experimentando como realizar un menu en el que los elementos del mismo se carguen de modo dinamico desde un archivo XML y lo logro bien!! pero sucede que al establecer la funcion que determina la accion de cada elemento, la animacion que contiene el boton no se visualiza y la verdad no se como solucionarlo.

En mi archivo fla tengo solo dos elementos: un movieClip y un boton .
El MovieClip tiene como nombre de instancia mcBoton y tiene marcadas las opciones de exportar para ActionScript y exportar en el primer fotograma.
Este MovieClip contiene en su interior un Boton, el cual es el otro elemento en la libreria y este boton esta compuesto de dos elementos: una animacion en estado over y un texto dinamico de variable text.

Ahora vamos al codigo
en el primer fotograma de mi pelicula tengo el siguiente codigo



Código:
var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true; 
opcionesXML.onLoad = function (sucess:Boolean) {
    if (sucess) { 
      var opciones:Array = this.firstChild.childNodes; 
      for(i = 0; i < opciones.length; i++) {
         _root.attachMovie("mcBoton", "boton"+i, _root.getNextHighestDepth());
         _root["boton"+i]._x = 50;
         _root["boton"+i]._y = 22 + (i * 22);
         _root["boton"+i].texto = opciones[i].childNodes[0].firstChild;
         _root["boton"+i].linkurl = opciones[i].childNodes[1].firstChild;
         _root["boton"+i].onRelease = function () {
            _getURL(this.linkurl, "_blank");
            
             } 
         } 
       } else {
        trace("Error al Leer archivo XML");
   }
} 
opcionesXML.load("menu.xml");

y este es el archivo XML


Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<opciones>
    <opcion>
        <texto>Elemento 1</texto>
        <linkurl>http://www.google.com/</linkurl>
    </opcion>
    <opcion>
        <texto>Elemento 2</texto>
        <linkurl>http://www.cristalab.com/</linkurl>
    </opcion>
    <opcion>
        <texto>Elemento 3</texto>
        <linkurl>http://www.ejemplo.com/</linkurl>
    </opcion>
   <opcion>
        <texto>Elemento 3</texto>
        <linkurl>http://www.algo.com/</linkurl>
    </opcion>
</opciones>
Repito!!! mi problema es que no se visualiza la animacion que contiene el boton una vez que se le hace mouse over.
y para mas informacion les digo que si comentarean la accion que define lo que hace el boton al hacerle clic, entonces si se visualiza
ejemplo:

Código:
/*_root["boton"+i].onRelease = function () {
            _getURL(this.linkurl, "_blank");}*/
Amigos espero me puedan ayudar
desde ya,
gracias
  #2 (permalink)  
Antiguo 14/06/2008, 13:41
Avatar de julio archila  
Fecha de Ingreso: marzo-2005
Ubicación: Quetzaltenango, Guatemala
Mensajes: 272
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Que tal amigo, primero que nada es más conveniente que tengas el clip de pelicula del botón en el escenario.
Luego vas duplicarlo, y guardarlo en un Array como objeto de Clip de Pelicula.

nos aseguramos que nuestro boton, con nombre de instancia "mcBoton" sea un clip de película

Código:
var mcBoton:MovieClip;
Ahora lo ocultamos, ya que solo queremos visualizar los duplicados...

Código:
mcBoton._visible = false;
hacemos la función que creará el Array con las casillas que necesitemos.
Código:
var misBotones:Array;
function crearArrayMenu(cant){
    misBotones = new Array(cant)
}
Hacemos el Array de esta forma porque solo vamos a utilizar las casillas que realmente necesitemos
para no saturar la memoria con datos innecesarios.

Continuemos...

Código:
var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true; 
opcionesXML.onLoad = function (sucess:Boolean) {
    if (sucess) { 
      var opciones:Array = this.firstChild.childNodes;
      crearArrayMenu(opciones.length);
      for(i = 0; i < opciones.length; i++) {
         duplicar = mcBoton.duplicateMovieClip("boton" + i, i + 10);
      duplicar._y = i * 20;
      misBotones.push(duplicar);
         misBotones[i].texto = opciones[i].childNodes[0].firstChild;
         misBotones[i].linkurl = opciones[i].childNodes[1].firstChild;
         misBotones[i].onRelease = function () {
            _getURL(this.linkurl, "_blank");
         } 
      }
    } else {
      trace("Error al Leer archivo XML");
    }
} 
opcionesXML.load("menu.xml");
Y para finalizar pues en el unico botón que está en el escenario se coloca el código de la animación, el cual funcionará en los duplicados.

Código:
on(rollOver){
    //hacer animación
}
Espero te sea de ayuda.

Salu2...
__________________
Julio Archila
  #3 (permalink)  
Antiguo 14/06/2008, 17:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Julio
Hermano un millon de gracias por atender a mi tema.
me parece bien tu codigo pero no me realiza ninguna accion al hacer clic sobre los elementos y tampoco pone los textos definidos en el XML
Disculpa mi ignorancia respecto al tema pero me pudieras explicar como se lee este pedazo del codigo??

Código:
if (sucess) { 
      var opciones:Array = this.firstChild.childNodes;
      crearArrayMenu(opciones.length);
      for(i = 0; i < opciones.length; i++) {
         duplicar = mcBoton.duplicateMovieClip("boton" + i, _root.getNextHighestDepth());
      duplicar._y = i * 22;
      misBotones.push(duplicar);
         misBotones[i].texto = opciones[i].childNodes[0].firstChild;
         misBotones[i].linkurl = opciones[i].childNodes[1].firstChild;
         misBotones[i].onRelease = function () {
            _getURL(this.linkurl, "_blank");
         } 
      }
    } else {
      trace("Error al Leer archivo XML");
    }
}
Como ves sustitui el
Código:
duplicar = mcBoton.duplicateMovieClip("boton" + i, i+10);
por
Código:
duplicar = mcBoton.duplicateMovieClip("boton" + i, _root.getNextHighestDepth());
para que, por si acaso no fuera a darme problemas de niveles mas adelante

me parece bien tu codigo ahora no entiendo porque no lee los datos del XML

me duplica el movie clip exactamente como esta en el escenario
no se si tendra qu ever?!?!?! pero recuerda que el movie clip tiene un boton dentro que es el que tiene el texto y la animacion!!!

Última edición por skylee; 14/06/2008 a las 18:33
  #4 (permalink)  
Antiguo 14/06/2008, 18:59
Avatar de julio archila  
Fecha de Ingreso: marzo-2005
Ubicación: Quetzaltenango, Guatemala
Mensajes: 272
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

aca te dejo un .fla para que le eches un vistazo

Menú Flash XML / JAr

espero te sea de ayuda

Salu2...
__________________
Julio Archila

Última edición por julio archila; 14/06/2008 a las 19:03 Razón: server caido---
  #5 (permalink)  
Antiguo 15/06/2008, 13:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Man Visualmente funciona de maravillas
Pero no realiza ninguna accion al hacer clic sobre algun elemento

Nota:
Me pudieras explicar estas lineas??

misBotones.push(duplicar);

this.getURL(botLink[this._name.slice(5,8)]);


ya que no se que hace el Push ese!!??
y en la linea del getURL no entiendo lo que entre parentesis!!??

AHHH si no te es mucha molestia
me pudieras decir como quedaria la funcion si en vez de abrir una URL, quisiera
cargar un nuevo movie clip??
por ejemplo loadMOvieClip?? donde el movie clip fuera un atributo establecido en el XMl

Disculpa mi ignorancia man pero estoy "FRITO" en esto de action script y la verdad es que tengo muchas ansias de aprender pero mis conocimientos de programacion son muy pobres y lo poco que se, lo he aprendido leyendo ejemplos y modificando los mismos hasta conseguir lo deseado, ya que soy diseñador grafico.
y la verdad es que lo que mas deseo es porder escribir lineas generadas por mi mismo en funcion de lograr un objetivo trazado

Una vez mas Gracias

Última edición por skylee; 15/06/2008 a las 18:51
  #6 (permalink)  
Antiguo 16/06/2008, 06:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Julio!!! Disculpa man
pero ahora si que estoy confundido!!
en mi mensaje anterior escribi que los elementos del menu no realizaban ninguna accion
eso es falso!!
porque en la PC de mi centro de trabajo si funciona correctamente
pero en el de mi casa no!!
no tengo idea de que esta pasando entonces!!!
  #7 (permalink)  
Antiguo 16/06/2008, 18:13
 
Fecha de Ingreso: enero-2006
Mensajes: 3
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Hola necesito su valiosa ayuda antes que nada gracias por leer esto


tengo un evento Clip Event en un menu en flash que esta asi en el coodigo

onClipEvent (load)
{
num = 1;

}

al pasar el mouse ese boton hace un efecto, bien pues lo qu quiero es que al dar un clic me mande a otra direccion web si que pierda el efecto que hace al pasar el mouse sobre el. Yo le agregue esto

on (press){
getURL("http://www.google.com","_self");
}

pero no hace nada y si lo pongo al principio siu me manda a google pero ya no hace el efecto. Me podran ayudar? gracias!
  #8 (permalink)  
Antiguo 17/06/2008, 06:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con animacion de elementos de menu XML

Cita:
Iniciado por skylee Ver Mensaje
Hola
Amigos estoy experimentando como realizar un menu en el que los elementos del mismo se carguen de modo dinamico desde un archivo XML y lo logro bien!! pero sucede que al establecer la funcion que determina la accion de cada elemento, la animacion que contiene el boton no se visualiza y la verdad no se como solucionarlo.

En mi archivo fla tengo solo dos elementos: un movieClip y un boton .
El MovieClip tiene como nombre de instancia mcBoton y tiene marcadas las opciones de exportar para ActionScript y exportar en el primer fotograma.
Este MovieClip contiene en su interior un Boton, el cual es el otro elemento en la libreria y este boton esta compuesto de dos elementos: una animacion en estado over y un texto dinamico de variable text.

Ahora vamos al codigo
en el primer fotograma de mi pelicula tengo el siguiente codigo



Código:
var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true; 
opcionesXML.onLoad = function (sucess:Boolean) {
    if (sucess) { 
      var opciones:Array = this.firstChild.childNodes; 
      for(i = 0; i < opciones.length; i++) {
         _root.attachMovie("mcBoton", "boton"+i, _root.getNextHighestDepth());
         _root["boton"+i]._x = 50;
         _root["boton"+i]._y = 22 + (i * 22);
         _root["boton"+i].texto = opciones[i].childNodes[0].firstChild;
         _root["boton"+i].linkurl = opciones[i].childNodes[1].firstChild;
         _root["boton"+i].onRelease = function () {
            _getURL(this.linkurl, "_blank");
            
             } 
         } 
       } else {
        trace("Error al Leer archivo XML");
   }
} 
opcionesXML.load("menu.xml");

y este es el archivo XML


Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<opciones>
    <opcion>
        <texto>Elemento 1</texto>
        <linkurl>http://www.google.com/</linkurl>
    </opcion>
    <opcion>
        <texto>Elemento 2</texto>
        <linkurl>http://www.cristalab.com/</linkurl>
    </opcion>
    <opcion>
        <texto>Elemento 3</texto>
        <linkurl>http://www.ejemplo.com/</linkurl>
    </opcion>
   <opcion>
        <texto>Elemento 3</texto>
        <linkurl>http://www.algo.com/</linkurl>
    </opcion>
</opciones>
Repito!!! mi problema es que no se visualiza la animacion que contiene el boton una vez que se le hace mouse over.
y para mas informacion les digo que si comentarean la accion que define lo que hace el boton al hacerle clic, entonces si se visualiza
ejemplo:

Código:
/*_root["boton"+i].onRelease = function () {
            _getURL(this.linkurl, "_blank");}*/
Amigos espero me puedan ayudar
desde ya,
gracias
Antes que todo Gracias a todos los que han leeido este tema
pero bueno, les informo que ya resolvi el problema que he sitado anteriormente
como?? pues les dire que elmimine la linea que anteriormente les dije que si comentariaban les permitia ver la animacion.
luego entre al movieClip mcBoton que se encontraba en la biblioteca y al boton que este contenia en su interior le puse este codigo

Código:
on (release) {getURL(linkurl, "_blank");}
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:57.