Comunidad de diseño web y desarrollo en internet online

añadir funcionalidad a MC creado por AS2

Citar            
MensajeEscrito el 11 Oct 2011 01:17 pm
Hola a tod@s.
Escribo porque tengo un problema añadiendo funcionalidad a un MC creado vía AS2. Os pego el código a ver qué os parece:

Código :

for (i = 0; i < numImagenes; i++)
   {
      myMC = _root.mcReproductor.createEmptyMovieClip("myMC" + i, _root.mcReproductor.getNextHighestDepth());
      loader.loadClip("imagenes/SubcategoriaX1/" + i + ".jpg", _root.mcReproductor["myMC" + i]);
      _root.mcReproductor["myMC" + i].onRelease = function()
      {
         trace("hola");
         _root.mcReproductor.mostrarImagenGrande("imagenes/SubcategoriaX1/" + i + ".jpg");
      };
   }


Código ActionScript :

mostrarImagenGrande = function(url:String)
{
   trace("ruta de la imagen: " + url);
}


Por supuesto que no hace la traza. El código está declarado dentro de un MC llamado mcReproductor, que es quien contiene esta funcionalidad.

Muchas gracias de antemano por la ayuda
Un saludo,
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 02:01 pm
Modifica estas líneas>

Código ActionScript :

      myMC.nr = i;
      myMC .onRelease = function()
      {
         trace("hola");
         _root.mcReproductor.mostrarImagenGrande("imagenes/SubcategoriaX1/" +this.nr + ".jpg");
      }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Oct 2011 02:21 pm
no me funciona. Estoy usando Flash Professional 8 y AS2.

Éste es el código:

Código :

   for (i = 0; i < numImagenes; i++)
   {
      myMC = _root.mcReproductor.createEmptyMovieClip("myMC" + i, _root.mcReproductor.getNextHighestDepth());
      loader.loadClip("imagenes/SubcategoriaX1/" + i + ".jpg", _root.mcReproductor["myMC" + i]);
      
      myMC.nr = i; 
      trace("myMC.nr: " + myMC.nr);
         myMC.onRelease = function() 
         { 
            trace("hola"); 
            _root.mcReproductor.mostrarImagenGrande("imagenes/SubcategoriaX1/" + this.nr + ".jpg");
      };
   }


El trace de nr lo hace bien, pero las imágenes no son susceptibles de onRelease. Tampoco funciona con los movieclips _root.mcReproductor["myMC" + i].nr = i ni tampoco _root.mcReproductor["myMC" + i].onRelease = function() { ... };

Gracias por responder tan rápido
un saludo
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 02:28 pm
Esto de momento es lo máximo que he conseguido hacer funcionar:

Código ActionScript :

listenerImagenes.onLoadInit = function(target:MovieClip):Void
{
   target._height = tamImagen;
    //target._width = tamImagen;
      //target._yscale = target._xscale;
   target._xscale = target._yscale;
   
   target._x = posImagenX;
   target._y = posImagenY;
   posImagenX = target._x + target._width + 20;
   
   target.onRelease = function()
   {
      trace(this._name);
      trace(this._parent);
   };
}


y la salida de las trazas es:

Código :

myMC4
_level0.mcReproductor
myMC3
_level0.mcReproductor
myMC2
_level0.mcReproductor
myMC1
_level0.mcReproductor
myMC0
_level0.mcReproductor


pinchando en cada una de las imágenes...Pero claro, yo necesito poder declarar una nueva propiedad url. No funciona hacer un _root.mcReproductor["myMC" + i].nr = i; y hacer la traza desde el onLoadInit, ya lo he probado... la salida es undefined y la instrucción la meto aquí:

Código ActionScript :

myMC = _root.mcReproductor.createEmptyMovieClip("myMC" + i, _root.mcReproductor.getNextHighestDepth());
      _root.mcReproductor["myMC" + i].nr = i;
      loader.loadClip("imagenes/SubcategoriaX1/" + i + ".jpg", _root.mcReproductor["myMC" + i]);


No sé, si no me queda más remedio, haré que el nombre de los MC sea el mismo que su ruta relativa y a correr, pero vamos, voy chapuza tras chapuza...

Muchas gracias y un saludo,
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 02:51 pm
Claro, le estas cargando una imagen, hasta que no termine de cargar no puedes asignarle un onRelease, para evitar ese problema usualmente se hace un contenedor interno para la carga, se asigna el evento al contenedor externo.
myMC es la referencia al crearlo, no hace falta la notación de array

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Oct 2011 03:35 pm
Es que entonces, no entiendo porqué no funciona esto:

Código ActionScript :

var myMC:MovieClip;
   loader.addListener(listenerImagenes);   
   for (i = 0; i < numImagenes; i++)
   {
      _root.mcReproductor.createEmptyMovieClip(i, _root.mcReproductor.getNextHighestDepth());
      loader.loadClip("imagenes/SubcategoriaX1/" + i + ".jpg", _root.mcReproductor[i]);
      myMC.nr = i;
      myMC.onRelease = function()
      {
         trace(myMC.nr);
      };
   }


Siento estar siendo tan pesado, pero me está tocando hacer guarradas para solucionar cosas que en principio no me deberían llevar nada de tiempo y los días de trabajo se pasan :-(

Gracias de nuevo Jorge

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 03:37 pm
Cambia el trace a esto

trace(this.nr+" en "+this._name);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Oct 2011 03:40 pm
disculpa, código correcto:

myMC = _root.mcReproductor.createEmptyMovieClip(i, _root.mcReproductor.getNextHighestDepth());

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 03:42 pm
nada, las imágenes directamente no tienen un método onRelease, ni siquiera se cambia el icono del mouse a la mano con un dedo. No es un problema de la traza, es un problema de que la imágen no responde ante ese evento

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 11 Oct 2011 03:46 pm
En el último código que pusiste, ¿que se supone que es myMC?

En mi primera respuesta está claro que la carga lo impedía porque era esto>

Código ActionScript :

myMC = _root.mcReproductor.createEmptyMovieClip("myMC" + i, _root.mcReproductor.getNextHighestDepth());
      loader.loadClip("imagenes/SubcategoriaX1/" + i + ".jpg", _root.mcReproductor["myMC" + i]);


Pero ahora no es nada ... mmm ... no le estás dedicando suficiente tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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