Comunidad de diseño web y desarrollo en internet online

Dar funciones (texto y onPress) a MC creado dinámicamente

Citar            
MensajeEscrito el 04 Dic 2010 06:26 pm
Hola!
Tengo la siguiente función, que invoco para crear MC dinámicamente. Ademas, tengo que darles un texto a cada uno y asignarles un enlace... pero no me funcionan estas dos cosas. Me los crea bien, pero ni texto, ni enlace.

No sé que puede pasar, por favor les pido ayuda.

function creaMC(posx:Number, posy:Number, nombre:String, car:String): Void
{
_root.contenedor.createEmptyMovieClip(nombre, _root.contenedor.getNextHighestDepth());
_root.contenedor[nombre]._visible = false;
_root.contenedor[nombre]._x = posx;
_root.contenedor[nombre]._y = posy;
_root.contenedor[nombre].loadMovie("punto.png");
_root.contenedor[nombre].createTextField("campo", 1, 100, 100, 300, 100);
_root.contenedor[nombre].campo.text = car;

_root.contenedor[nombre].onPress = function(){
var enlace = "http://localhost/aplicacion/elemento/" + this.nombre;
getURL (enlace);
}
}

Muchas gracias de antemano.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:01 pm
Si haces un loadMovie tienes que esperar a que termine de cargar para poder agregar cualquier otra cosa, sino agrega un segundo MC interno donde cargues el contenido, porque al cargar reemplaza todo lo que haya

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:08 pm
Es la primera vez que encuentro una explicación a mi error, y llevo semanas peléandome con el.
¿Podrías ampliarme como solucionarlo? No soy muy experta. Muchas gracias.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:17 pm
Reemplaza esta línea:

_root.contenedor[nombre].loadMovie("punto.png");

Por esto

var loader:MovieClip = _root.contenedor[nombre].createEmptyMovieClip("loader", 1)
loader.loadMovie("punto.png");

El resto lo puedes dejar igual ... si la imagen no se carga donde necesitas, modifica la posición _x e _y de loader

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:49 pm
Gracias por tu respuesta, pero creo qeu quizás nome he expresado bien en mi primer post.

El movieclip me lo crea bien; me carga bien la imagen que le indico y lo situa donde le mando.

Pero el problema es que necesito que a cada uno de los MC darle un identificador al lado (createTextField) y que sirvan de enlace a otra página. Ésto es lo que no me funciona.

Me sale el MC, pero no hay ni texto, ni enlace al pinchar en él .

Muchas gracias. Saludo

PD He probado tu código. Me sale igual, me crea el Mc pero ni texto, ni onPress.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 04:00 pm
Lo del onPress lo tienes mal (una vez que se vea tu campo de texto lop arreglamos), pero crer el campo de texto lo tienes bien, solo que invisible, ya que tienes esto:

_root.contenedor[nombre]._visible = false;

¿Que tal si lo quitas?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 04:03 pm
Gracias por estar ayudándome, de verdad.


He quitado el _visible = false; pero no veo el texto. Puede ser que me quede por detrás del dibujo que he cargado? Es un circulo (estilo de los indicadores de Google Maps)

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 04:05 pm
Puede ser ... ¿que tal si cambias la posición del TextField para comprobarlo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 04:08 pm
Nada, ya lo tengo cambiado

_root.contenedor[nombre].createTextField("campo",1, 100, 100, 300, 100);

mientras que el Mc se creal en las Posiciones que se le pasan a la funcion.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:17 pm
Ok, ambos están en el mismo depth (1), y si la foto tiene más de 100 x 100 lo tapa,
Prueba:

_root.contenedor[nombre].createTextField("campo",2, -50, 1, 300, 100);

O así, es decir cambias las coordenadas, el texto anda por allí

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:24 pm
La imagen es de 48x48 (típico icono que me he bajado de internet)

He puesto:

_root.contenedor[nombre].createTextField("campo",_root.contenedor[nombre].getNextHighestDepth()+1, -50, 1, 300, 100);

y _root.contenedor[nombre].createTextField("campo",2, -50, 1, 300, 100);

y el texto más grande: _root.contenedor[nombre].campo.text = "Hola";

Pero sigo sin verlo en todo el documento Flash . :(

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:30 pm
Aquí un ejemplo que me funciona joya

Código ActionScript :

function creaMC(posx:Number, posy:Number, nombre:String, car:String): Void
{
   holder = this.createEmptyMovieClip(nombre, this.getNextHighestDepth());
   holder._x = posx;
   holder._y = posy;
   var loader:MovieClip = holder.createEmptyMovieClip("loader", 1);
   loader.loadMovie("cena.jpg");
   holder.createTextField("campo", 2, 20, 1, 300, 100);
   holder.campo.text = car;
}
creaMC(1, 1, muestra, "dia de sol");


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:39 pm
Gracias por el ejemplo, la función es semejante a la que yo tengo: de todos modos he probado la tuya asi:

function crearMC(posx:Number, posy:Number, nombre:String, letra:String): Void
{
holder = _root.contenedor.createEmptyMovieClip(nombre, _root.contenedor.getNextHighestDepth());
holder._x = posx;
holder._y = posy;
var loader:MovieClip = holder.createEmptyMovieClip("loader", 1);
loader.loadMovie("map_blue.jpg");
holder.createTextField("campo", 2, 20, 1, 300, 100);
holder.campo.text = car;
}

Pero no hay forma. No entiendo que puede pasar.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:49 pm
He descubierto que si lo hago usando this me lo crea bien (pero no en movieclip contenedor, que es en la que quiero)

contenedor es un MC que hace de fondo de imagen, y es necesario.
Es decir, si hago

var holder:MovieClip = _this.createEmptyMovieClip(nombre, this.getNextHighestDepth()); --> BIEN

PERO var holder:MovieClip = _root.contenedor.createEmptyMovieClip(nombre, _root.contenedor.getNextHighestDepth()); --> CREA SOLO EL MC, PERO NADA DE LO DEMÁS

Será quizás por tener MC unos dentro de otros... tema de profundidades?

gracias.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Dic 2010 06:10 pm
No, AS2 te deja crear donde quieras, el this va sin guión bajo. Es un tema de rutas seguramente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 06:11 pm
Si, el this lo tengo sin guión ha sido error al copiarlo aquí.

Gracias de todas maneras por todo.

Por ferola

20 de clabLevel



 

firefox

 

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