Comunidad de diseño web y desarrollo en internet online

Problema xml: galeria de fotos y texto (este ultimo en xml)

Citar            
MensajeEscrito el 24 Sep 2008 09:55 pm
Increible que hayamos llegado hasta aquí y ahora es que se me ocurra esto, vuelve al punto en que tenías la lectura en el primer frame y en el frame 2 y 3 las animaciones y en el primer frame antes de la lectura escribe esto:

Código ActionScript :

this._lockroot = true;


Creo que se solucionará todo.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 10:52 pm
:lol: :lol: :lol: :lol:
¡Sí señor, funciona!

Ahora solo me queda... ¡actualizar mi web!
Gracias! Gracias, elchininet por tu ayuda. Gente como tú hace grandes estos foros... Ojalá pueda yo echarte un cable algún día en temas que me son más familiares (está claro que el AS no mucho). Ya había pensado en un plan "B" cargando txt en lugar de xml; en esencia una "chapuza", porque el xml me soluciona muchos problemas (tooodos los problemas).

:D

Muchas gracias por tu ayuda, de nuevo!!!!

Por cierto... ¿en qué demonios influye la última acción que me indicas?

Un abrazo!!!!!!!!!!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2008 11:12 pm
Busca _lockroot en al ayuda de Flash y verás en qué influye. Por cierto, estos problemas ocurren por la mala costumbre que aún tenemos de usar _root.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 24 Sep 2008 11:38 pm
Hola, The fricky.

Acabo de leer la ayuda de Flash y no acabo de entender el problema. Evidentemente, mi inexperiencia tiene "algo que ver". Supuestamente lockroot hace referencia a un "mal uso" de root pero, ¿dónde y por qué se ha hecho un mal uso de root?

Os aseguro que trato de verlo, pero no lo veol. :|

Gracias por la ayuda!!!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 12:15 am
Es simple:
_root (root en AS3) siempre se refiere a la raíz o nivel 0 del swf. Cuando creas una película y usas _root, siempre apuntará al nivel 0, lo que está bien si sólo trabajas con ese swf.
Pero si a este swf lo cargas dentro de otro (a este otro lo llamaremos "contenedor"), el nivel 0 ya no será el que solía ser, sino que será el del swf "contenedor", lo que jode todas las rutas porque ahora lo que antes estaba en el root, ya no lo está.
No es cuestión de inexperiencia realmente ni es que sea tu culpa, es más una cuestión del mal modo como se ha enseñado AS; básicamente porque la mayoría de los tutoriales (incluídos los de la ayuda de flash) no enseñan a trabajar correctamente, sino como si todavía trabajásemos con AS1.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 25 Sep 2008 09:09 am
Gracias por la aclaración, The Fricky!
En estos últimos días he aprendido mucho... ¡y lo que me queda por aprender!

Un saludo!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 09:24 am
@The Fricky! tiene razón, es mejor trabajar siempre con "this" o "_parent" en vez de "_root", de esta forma donde quiera que se encuentre tu película podría funcionar y no se tendría que estar mirando si hay referencia o no a un nivel específico. Si tu código está dentro del evento de un objeto como un XML "this" se referiría al objeto y "_parent" no sería una propiedad del mismo, por lo que una buena técnica sería declarar una variable que guardara el camino del movie donde se encuentra el código y utilizas esta variable para referirte a la raiz, un ejemplo:

Código ActionScript :

//---Aquí se declara la variable
var myRoot = this;

//---Cuando se cargue el XML   
videoXML.onLoad = function(success:Boolean):Void  {

   if (success) {

      nodos = this.firstChild.childNodes;
      var total:Number = nodos.length;

      for (var i:Number = 0; i < total; i++) {

         myRoot["f00" + (i + 1)].numero = i;

         //---Acción de onPress de los botones   
         myRoot["f00" + (i + 1)].onRelease = function():Void  {

            //---Acciones

         };
      }
   }
};

videoXML.load("03_Textos/publicidad.xml");

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 25 Sep 2008 11:39 pm
:|

Entonces... ¿por qué se sigue utilizando tanto _root?... ¿está cayendo en desuso?
En cualquier caso, tomo buena nota. Estoy haciendo unas pruebas para terminar de entenderlo... la teoría se me atraganta de mala manera.

Ya estoy incorporando contenidos a mi web y desarrollando el diseño definitivo. Cuando termine pondré un post en "comunidad/muestranos tu trabajo" para ver qué tal funciona.

Bueno, no me enrollo porque tenía una nueva consulta.

Si accedéis a www.idgrafico.com veréis de qué os hablo. Todo parece funcionar bien, pero hay un error: al pulsar en un botón (publicidad) funciona correctamente (carga el submenú de thumbnails, y a través de estos cargan las imágenes grandes con su descripción). Si pulsamos de nuevo el botón "publicidad", carga el submenú pero no funcionan los botones (al clickar en los thumbnails ya no cargan las imágenes grandes ni las descripciones).

Inicialmente pensé que el problema estaba en el submenú publicidad (en el que tanto me habéis ayudado), porque consta de 3 fotogramas: en el primero están las acciones de los botones (thumbnails) y en el último hay un gotoAndPlay(2). Pero no es eso, porque he colocado el código de los botones en el fotograma 2, y pasa lo mismo.

Luego pensé que el problema estaba en el menú principal, porque en el código tengo un stop en cada uno de los botones. Pero tampoco parece ser eso, porque he eliminado los stop y todo sigue igual. Probé también a crear un nuevo fotograma al final de todo, dándole un gotoAndPlay al fotograma anterior (el que contiene el AS). Pero nada...

Algo he leído sobre la orden "no-cache" para borrar la caché del navegador, pero no estoy seguro de que sea buena idea, porque ralentizaría toda la carga una y otra vez, ¿no?

Os pongo el código del menú principal por si podéis echarle un vistazo.
En el último fotograma está el AS sospechoso:

Primero, una precarga como la que usé en la otra peli:

Código ActionScript :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
Stage.showMenu = false;

listener.onLoadStart = function(target_mc) {
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
};

listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.barra_mc.gotoAndStop(porcentaje);
   target_mc._visible = false;
   target_mc.stop();
};

listener.onLoadComplete = function(target_mc) {
   _root.barra_mc.removeMovieClip();
   target_mc._visible = true;
   target_mc.play();
};


... y a continuación las acciones de los botones (os pongo solo un par para no llenar tantas líneas):

Código ActionScript :

b_editorial.onRelease = function() {
   precargador_mcl.loadClip("01_Flash/99_en_construccion.swf",contenedor1);
};
stop();

b_publicidad.onRelease = function() {
   precargador_mcl.loadClip("01_Flash/02_publicidad.swf",contenedor1);
};


He estado buscando en el foro por si a alguien le ha pasado algo similar, pero no he encontrado nada...
¿Alguna sugerencia, porfa?

Muchas gracias!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 09:47 am
No es que "_root" esté cayendo en desuso, solo que si se va a trabajar con lectura de películas externas no es nada recomendable usarlo, en los livedocs de adobe muchas veces lo ves utilizado porque suponen que trabajarás con un solo documento y no realizarás lectura de películas externas.

Para el problema que presentas, solo debes deshabilitar el botón en el que te encuentras, no tiene ningún sentido si te encuentras en esa sección volver a presionarla, observa este post.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 26 Sep 2008 06:06 pm
Ok, tomo nota. Lo cierto es que para ser mi primera web con AS, me he liado la manta a la cabeza y quizás me he complicado las cosas en relación a mis conocimientos. Pero siempre da gusto aprender cosas nuevas...

Respecto a la consulta, creo que me he enrollado mucho y no me he explicado del todo bien. Es cierto lo que me indicas, pero ese es uno de los problemas que dejo para resolver más adelante (confío en que podré hacerlo solo... espero). A no ser que me digas que está directamente relacionado con lo siguiente:

1. Pulso en el botón publicidad
> carga un submenú (en un nuevo mc) donde los thumbnails son botones
> al pulsar en estos, aparece la imagen grande y la descripción (en un nuevo mc)

2. Ahora pulso en, por ejemplo, editorial (del menú principal)
> carga un mc con la odiosa frase "en construcción"

3. Nuevamente pulso en el botón publicidad
> carga un submenú (como en el paso 1) donde los thumbnails son botones
> al pulsar en estos, ya no aparece la imagen grande ni la descripción

Si limpio la caché del navegador y recargo la web, todo vuelve a funcionar de la misma manera.
¿Tienes alguna sugerencia?

Muchas gracias, y un saludo!!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 12:25 am
Por cierto,

he actualizado algunos contenidos del menú "editorial". Ahora ya no se leerá "actualizando datos (en construcción)", si no que aparecerá el menú de thumbs y las ampliaciones al clickar en cada thumb. Sigo sin solucionar el problema: si entro en editorial y miro algunas imágenes, luego entro en publicidad (miro algunas más) y vuelvo a clickar en el menú editorial, no podré volver a ver las imágenes grandes: no funcionará el menú de thumbs.
:roll:

Estoy haciendo pruebas... :| :| :|
Trato de aplicar algunas de las cosas que he aprendido en este foro... pero no encuentro el problema.

Intuyo que algo se me escapa en la complicada estructura de mc que he creado: un menú principal con botones que cargan en un mc vacío una serie de menús secundarios. Estos menús constan de botones que cargan, en un mc vacío 1, una imagen grande, y en otro mc vacío 2, las descripciones de las mismas.

Ups...
ya son las 2:30 de la mañana. Voy a dormir a ver si sueño con una posible solución...

Un saludo!!!!!!!

Por midisseny

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 04:56 pm
He descargado tu SWF para analizarlo y he notado que tienes el primer frame vacío, no tienes ningún layer ocupando esta posición, esto lo que provoca es que la primera vez que leas el XML se demore un poco y cuando lo lea ya está en el segundo o tercer frame y por lo tanto le da las acciones a los botones, ahora, la segunda vez como está en cache el XML trata de darle las acciones a los botones en el primer frame y en este frame no están los botones, debes tenerlos ocupando el primer frame también.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 27 Sep 2008 05:31 pm
Ay, ay, ay...

Joder, mira que le he estado dando vueltas... llevo todo el día... He introducido un código no-cache en el html inicial; he eliminado elementos del menú principal; he cambiado el orden de los AS en varios menús, he estado leyendo tutoriales, post de foros, etc...

Acabo de probar tu solución y... ¡no falla! Como dice un amigo mío, a veces el valor de las cosas no está en "apretar el tornillo" (parece sencillo), si no en "saber qué tornillo has de apretar".

Definitivamente me declaro un "torpe" con AS. Seguiremos aprendiendo de los maestros...

Un saludo!!

Por midisseny

26 de clabLevel



 

firefox

 

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