Comunidad de diseño web y desarrollo en internet online

Acciones de un clip cargado en un loader

Citar            
MensajeEscrito el 29 May 2005 02:29 pm
Buenas. Tengo un pequeño (o gran) problema con mi web. Resulta que tiene un pequeño menú, desde el cual lanzo las distintas secciones (swf), que se cargarán en un dentro de un loader. Aparentemente funciona, pero hay un par de swf que tienen clips con funciones en onRelease, y no funcionan. Sin embargo, ejecutando el swf suelto, sin la web montada quiero decir, funciona todo correcto. Digamos que pierde la funcionalidad cuando ejecuto el php que maqueta la web.

A ver si con un poco de código se comprende mejor el problema.

Este código es del swf que contendrá el loader y las distintas secciones:

Código :

// Añadimos el loader y damos propiedades
attachMovie("Loader", "loadCargador", _root.getNextHighestDepth());
loadCargador.setSize(610,415);
loadCargador._x = 0;
loadCargador._y = 0;
loadCargador.visible = false;
loadCargador.autoLoad = false;
loadCargador.scaleContent = false;
   
// Creamos una conexión local
conEntrante = new LocalConnection();

// Abre la sección seleccionada
conEntrante.AbrirSwf = function(seccion)
{
   switch (seccion)
   {
      case 0: loadCargador.contentPath = "swf/sucede.swf"; break;
      case 1: loadCargador.contentPath = "swf/biografia.swf"; break;
      case 2: loadCargador.contentPath = "swf/portafolios.swf"; break;
      case 3: loadCargador.contentPath = "swf/enlaces.swf"; break;
      case 4: loadCargador.contentPath = "swf/contactar.swf"; break;
      case 5: loadCargador.contentPath = "swf/proximamente.swf"; break;
   }

   // Oculta el loader
   loadCargador.visible = false;

   // Listener para comprobar si ya ha cargado
   listYaCargado = new Object();
   listYaCargado.complete = function(evento) { loadCargador.visible = true; }
   loadCargador.addEventListener("complete", listYaCargado);
   
   // Carga el loader
   loadCargador.load();
}

// Conectamos con la conexión Seccion
conEntrante.connect("MostrarSeccion")


Este código es del swf menú, que lanza las distintas secciones:

Código :

// Muestra la sección
function MostrarSeccion(iSec)
{
   // Creamos una conexión local para mostrar la sección
   conSaliente = new LocalConnection();
   conSaliente.send("MostrarSeccion", "AbrirSwf", iSec);
   delete conSaliente;
}


Así que eso, funcionar funciona, pero hay secciones que contienen clips que funciones, y éstas no se ejecutan. Esto se puedo comprobar directamente en mi web, la cual aún no tengo operativa por culpa de esta tontada.

diegoherrera.net

Esto ocurre en las secciones Enlaces y Contactar. Al clicar los clips o hacer el rollover no ejecuta las funciones que tiene asignadas. Pensaba que podía ser por culpa de la profundidad a la hora de cargar los swf en el loader, pero realmente no lo sé.

¿Está bien ese cargador para las secciones? Es decir, ¿está correctamente programado? No sé si hay mejores formas de hacerlo, la vedad. ¿Alguna sugerencia?

Desde ya, mil gracias anticipadas.

Por vermicida

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2005 03:02 pm
hola!

podrias poner el AS que tienes en "enlaces" o "contactar"? (me refiero al swf de esa seccion) quiza te estas refiriendo a root y en este caso a cambiado, a lo que me refiero es q la ruta de tu accion puede estar mal dirigida, pues por mi parte no encontre error (como tal) en lo que has mostrado hasta el momento (dentro de mis pocos conocimientos).


saludos :)

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 29 May 2005 03:47 pm
Claro, no hay problema. Por ejemplo, en enlaces.swf tengo el siguiente código (txtEnlace es un campo de texto dinámico):

Código :

// Habilita el formato html para el campo de texto
txtEnlace.html = true;
txtEnlave.htmlText = "";

// Selecciona la descripción de la web a mostrar
function VerDescripcion(id)
{
   switch(id)
   {
      case 0: txtEnlace.htmlText = ""; break;
      case 1: txtEnlace.htmlText = "Cristalab"; break;
      case 2: txtEnlace.htmlText = "ElOtroLado"; break;
      case 3: txtEnlace.htmlText = "Cradle Of Filth"; break;
      case 4: txtEnlace.htmlText = "Verborrea Esporádica"; break;
      case 5: txtEnlace.htmlText = "FTP-Embrujadas"; break;
   }
}

// Abre la url seleccionada
function AbreUrl(id)
{
   var txtUrl;
   switch(id)
   {
      case 0: txtUrl = "http://www.diegoherrera.net"; break;
      case 1: txtUrl = "http://www.cristalab.com"; break;
      case 2: txtUrl = "http://www.elotrolado.net"; break;
      case 3: txtUrl = "http://www.cradleoffilth.com"; break;
      case 4: txtUrl = "http://www.verborreaesporadica.info"; break;
      case 5: txtUrl = "http://www.ftp-embrujadas.tk"; break;
   }
   getURL(txtUrl,'_blank');
}


Y cada clip, lleva este código, cambiando, claro está, el parámetro que pasa a las funciones:

Código :

this.onRollOver = function() { gotoAndPlay(2); _root.VerDescripcion(1); }
this.onRollOut = function() { gotoAndPlay(1); _root.VerDescripcion(0); }
this.onRelease = function() { _root.AbreUrl(1); }


El gotoAndPlay lo hace correctamente, porque al hacer un rollover o rollout, la imagen cambia, pero no ejecuta las llamadas a las funciones.

No sé si por el hecho de cargar varios swf dentro del loader (los de cada sección), va trastocando el _root del documento. Es una cosa en la que me pierdo un poco :S

Por vermicida

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2005 04:25 pm
No sé si por el hecho de cargar varios swf dentro del loader (los de cada sección), va trastocando el _root del documento. Es una cosa en la que me pierdo un poco


si, en efecto.

explico:
si tengo una pelicula madre (base.swf) que carga dentro de un MC (loader_mc) a otros swf externos, el _root para estos swf ahora es el root de base.swf.

base
--loader
---[contenidos]

por el tipo de orden q utilizas, creo q te podria ayudar el lock al root del MC loader o bien usar parent para los "botones". Sobre lo de lock creo q hay un post por aki en el foro, pero no lo encuentro, si lo veo te paso el link.



saludos :D :D :D

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 30 May 2005 02:42 am
Tipico problema con las rutas, usa _parent en ves de _root .

_root es malo, afrontenlo.

Por NEO_JP

BOFH

5724 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

firefox
Citar            
MensajeEscrito el 30 May 2005 07:47 am
Bueno, pues ya está solucionado. Efectivamente era por el _root. He cambiado las llamadas a las funciones de los clips por _parent, y ahora funciona a la perfección. Pensaba que el hecho de cargar el swf dentro de un loader no influía en el _root del mismo, pero ya veo que sí.

Mil gracias a los dos :)

diegoherrera.net

Por vermicida

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 May 2005 02:34 pm
mucha suerte :D :D :D :D

Por rosvel

SWAT Team

1311 de clabLevel

2 tutoriales
1 articulo
1 ejemplo

Genero:Masculino   SWAT

"la oficina"

firefox
Citar            
MensajeEscrito el 30 May 2005 10:10 pm
El ROOT siempre es Raíz, y si pones un swf que cargue dentro de 5 películas previas, su _root será el swf de base. Por eso es mejor usar el _parent .

Por NEO_JP

BOFH

5724 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

firefox
Citar            
MensajeEscrito el 31 May 2005 08:19 pm
El ROOT siempre es Raíz, y si pones un swf que cargue dentro de 5 películas previas, su _root será el swf de base. Por eso es mejor usar el _parent.

Sip, fallo tonto, pero es por falta de práctica, porque es bien lógico. Lo bueno es que ya me he quedado con "la copla" y espero que no me vuelva a suceder.

Gracias de nuevo ;)

Por vermicida

6 de clabLevel



 

firefox

 

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