Comunidad de diseño web y desarrollo en internet online

Utilizar onRelease en un MovieClip creado

Citar            
MensajeEscrito el 01 Oct 2007 07:48 am
Buenos días.

Me gustaría saber como utilizar un movieclip recien creado como si fuera un boton.
Os comento mi caso especifico:
Muestro un numero determinado de imagenes, y quiero que al presionarla se carguen unos datos en otros campos creados para tal efecto.
La programacion actual es la siguiente:

function menuCorbatas() {
var indice =0 ;
for (i in corbatas_arr) {
//Show movieclip
var afoto = "img/"+corbatas_arr[indice];
var nombre = "imagen"+indice;
this.createEmptyMovieClip(nombre, indice);
eval(nombre)._x = lugarx;
eval(nombre)._y = lugary;
eval(nombre).loadMovie(afoto);
indice++;
}
}

Intento añadir la siguiente linea:
eval(nombre).onRelease = function () {}

Pero sigo sin poder hacer click en las imagenes.

¿Alguien me puede ayudar?

Muchas gracias.

Por jevimetar

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Oct 2007 08:58 am

Código :

function menuCorbatas():Void {
var indice:Number =0 ;
for (i in corbatas_arr) {
//Show movieclip
var afoto:String = "img/"+corbatas_arr[indice];
var nombre:String = "imagen"+indice;
this.createEmptyMovieClip(nombre, indice);
nombre._x = lugarx;
nombre._y = lugary;
nombre.loadMovie(afoto);
nombre.onRelease = function(){ trace("que pasa?") }
indice++;
}
}


debiese funcionar ;)

salut

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 01 Oct 2007 01:01 pm
El codigo anteriormente posteado esta mal, porque usa el String como objeto, y debes hacer referencia al objeto, no a su nombre:

Código :

function menuCorbatas():Void {
   var indice:Number =0 ;
   for (i in corbatas_arr) {
      //Show movieclip
      var afoto:String = "img/"+corbatas_arr[indice];
      var nombre:String = "imagen"+indice;
      objBtn = this.createEmptyMovieClip(nombre, indice);
      objBtn._x = lugarx;
      objBtn._y = lugary;
      objBtn.loadMovie(afoto);
      objBtn.indice = indice;
      objBtn.onRelease = function(){
         trace("que pasa?");
         // si tienes los datos en un arreglo ->
         Campo1.text = _root.arrDatos[this.indice];
      }
      indice++;
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 02 Oct 2007 08:39 am

gabynufe escribió:

El codigo anteriormente posteado esta mal, porque usa el String como objeto, y debes hacer referencia al objeto, no a su nombre:

Código :

function menuCorbatas():Void {
   var indice:Number =0 ;
   for (i in corbatas_arr) {
      //Show movieclip
      var afoto:String = "img/"+corbatas_arr[indice];
      var nombre:String = "imagen"+indice;
      objBtn = this.createEmptyMovieClip(nombre, indice);
      objBtn._x = lugarx;
      objBtn._y = lugary;
      objBtn.loadMovie(afoto);
      objBtn.indice = indice;
      objBtn.onRelease = function(){
         trace("que pasa?");
         // si tienes los datos en un arreglo ->
         Campo1.text = _root.arrDatos[this.indice];
      }
      indice++;
}


La cosa es que tiene sentido lo que me has puesto, pero no me funciona, ¿puede ser porque estoy utilizando Macromedia Flash 8?

Por jevimetar

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Oct 2007 01:37 pm
estoy utilizando Macromedia Flash 8

Que version de actionScript usas 2 o 3

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 02 Oct 2007 02:52 pm
ActionScript 1.0 & 2.0 según la ventana de acciones del Macromedia Flash 8.

He de decir que no da ningún error, pero que las imagenes no funcionan como boton :(

gabynufe escribió:

estoy utilizando Macromedia Flash 8

Que version de actionScript usas 2 o 3

Por jevimetar

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Oct 2007 03:40 pm
Al cargar la foto, ésta suplanta el objeto, por lo que borra el evento que colocaste. recuerda que la carga con oadMovie es asíncrona, así que termina de cargarse después de colocarle el código. Crea un movieclip dentro de tu contenedor y carga allí la imagen. Tomando el cosigo de gabynufe:

Código :

unction menuCorbatas():Void {
   var indice:Number =0 ;
   for (i in corbatas_arr) {
      //Show movieclip
      var afoto:String = "img/"+corbatas_arr[indice];
      var nombre:String = "imagen"+indice;
      objBtn = this.createEmptyMovieClip(nombre, indice);
      objBtn.createEmptyMovieClip("contenedor", 1); <---Creas es movieclip donde cargarás la foto.
      objBtn._x = lugarx;
      objBtn._y = lugary;
      objBtn.contenedor.loadMovie(afoto); <---Metes la foto en el segundo movieclip que creaste.
      objBtn.indice = indice;
      objBtn.onRelease = function(){
         trace("que pasa?");
         // si tienes los datos en un arreglo ->
         Campo1.text = _root.arrDatos[this.indice];
      }
      indice++;
}

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 02 Oct 2007 04:49 pm

The Fricky! escribió:

Al cargar la foto, ésta suplanta el objeto, por lo que borra el evento que colocaste. recuerda que la carga con oadMovie es asíncrona, así que termina de cargarse después de colocarle el código. Crea un movieclip dentro de tu contenedor y carga allí la imagen. Tomando el cosigo de gabynufe:

Código :

unction menuCorbatas():Void {
   var indice:Number =0 ;
   for (i in corbatas_arr) {
      //Show movieclip
      var afoto:String = "img/"+corbatas_arr[indice];
      var nombre:String = "imagen"+indice;
      objBtn = this.createEmptyMovieClip(nombre, indice);
      objBtn.createEmptyMovieClip("contenedor", 1); <---Creas es movieclip donde cargarás la foto.
      objBtn._x = lugarx;
      objBtn._y = lugary;
      objBtn.contenedor.loadMovie(afoto); <---Metes la foto en el segundo movieclip que creaste.
      objBtn.indice = indice;
      objBtn.onRelease = function(){
         trace("que pasa?");
         // si tienes los datos en un arreglo ->
         Campo1.text = _root.arrDatos[this.indice];
      }
      indice++;
}


Tio, te adoro... me estaba volviendo loco. Así ya me funciona.
Muchas gracias a todos... ahora a seguir pegandome con el resto javascript:emoticon(':D')
Muy Feliz

Por jevimetar

11 de clabLevel



 

firefox

 

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