Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/12/2010, 09:22
Avatar de lucasiramos
lucasiramos
 
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 20 años, 3 meses
Puntos: 13
Respuesta: Asignar funciones a movieclip creado dinámicamente.

A ver... creo que ya lo tengo, voy a hacer unas acotaciones del código, para que comprendas lo que trate de hacer.

Por lo visto, si le asignaba el evento al movieclip que carga el archivo punto.png, no funciona. Lo que hice fue crear otro movieclip, un botón invisible del mismo tamaño que el archivo punto.png y le asigné el evento onRelease. Fijate que fue creado con beginFill/endFill. Lo que vas a tener que hacer es cambiar el tamaño de ese movieclip de acuerdo al tamaño del archivo punto.png, para que ese "botón invisible" te quede igual de tamaño. Yo en el ejemplo puse 22x15 (22 de ancho, 15 de alto), vos tendrías que cambiar de acuerdo a lo que mida en píxeles tu archivo punto.png ¿Se entiende?

Asi que por cada ítem te quedarían tres movieclips, uno para el archivo punto.png, otro para el botón invisible que sirve para redireccionar a la página deseada, y otro para el cuadro de texto. Todos generados dentro de un movieclip contenedor. Aquí el código:

Código:
function creaMC(posx:Number, posy:Number, nombre:String, car:String): Void
{
	//************************************************************************
	//Cargo el archivo punto.png
	_root.contenedor.createEmptyMovieClip(nombre, _root.contenedor.getNextHighestDepth());
	_root.contenedor[nombre]._visible = true; 
	_root.contenedor[nombre]._x = posx;
	_root.contenedor[nombre]._y = posy; 
	_root.contenedor[nombre].loadMovie("punto.png");
	
	//************************************************************************
	//Genero el botón que me redirige a otra página, con su evento para click
	_root.contenedor.createEmptyMovieClip(nombre + "marco", _root.contenedor.getNextHighestDepth());
	_root.contenedor[nombre + "marco"].beginFill(0xF5F8FA, 0); 
	_root.contenedor[nombre + "marco"].lineStyle(1, 0x3C536C, 0);
	_root.contenedor[nombre + "marco"].moveTo(posx, posy)//(50, 0);
	_root.contenedor[nombre + "marco"].lineTo(posx + 22, posy);
	_root.contenedor[nombre + "marco"].lineTo(posx + 22, posy+15);
	_root.contenedor[nombre + "marco"].lineTo(posx, posy+15);
	_root.contenedor[nombre + "marco"].endFill();
	_root.contenedor[nombre + "marco"].nombre = nombre
	
	_root.contenedor[nombre + "marco"].onRelease=function(){
		var enlace = "http://localhost/aplicacion/elemento/" + this.nombre; 
		getURL (enlace);
	}
	
	//************************************************************************
	//Genero cuadro de texto
	_root.contenedor.createEmptyMovieClip(nombre + "txt", _root.contenedor.getNextHighestDepth());
	_root.contenedor[nombre + "txt"]._x = posx + 25
	_root.contenedor[nombre + "txt"]._y = posy
	_root.contenedor[nombre + "txt"].createTextField("campo", _root.contenedor.getNextHighestDepth(), 0, 0, 300, 100);
	_root.contenedor[nombre + "txt"].campo.text = car;
}

creaMC(10,10,"pepe","texto primero")
creaMC(40,40,"pepe2","texto segundo")
A ver si esto te puede ayudar!!! :D

Edito: Aquí te paso los archivos de pruebas que yo hice, por si queres seguir editando. A mi me funcionó bien :D

Última edición por lucasiramos; 07/12/2010 a las 09:30