Comunidad de diseño web y desarrollo en internet online

como modificar un clip que esta dentro de otro clip en una funcion

Citar            
MensajeEscrito el 15 Sep 2011 01:55 am
como hago para pasar un clip interno de otro clip para poderlo modificar dentro de la funcion

Código Javascript :

function cambioC (t_1,t_2,contenedor):void
{
   if (texto_1.y==150)
   {
      t_1.y=800;
      t_2.y=150;
      contenedor[va_mc].y=150; // aqui es la ayuda
      

   }
   
}

la intencion es enviar todo el movie clip y poder modificar los clip internos.. gracias...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Sep 2011 01:35 pm
La pregunta es un poco confusa, entiiendo que quieres pasar el contenedor como parámetro, entonces si todos los contenedores tienen una propiedad llamada va_mc que supongo es un MovieClip, lo puedes hacer asi

MovieClip(contenedor["va_mc"]).y = 150

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 02:08 am

solisarg escribió:

La pregunta es un poco confusa, entiiendo que quieres pasar el contenedor como parámetro, entonces si todos los contenedores tienen una propiedad llamada va_mc que supongo es un MovieClip, lo puedes hacer asi

MovieClip(contenedor["va_mc"]).y = 150

Jorge


lo que estoy enviando es un movieclip que tiene alvergado varios movieclip

contenedor es el principal

dentro de contenedor tiene

va_mc
ve_mc
vi_mc

entonces la intencion en si es enviar el contenedor para luego modificar cada uno de los movieclip internos... en si eso como lo hago...
si los paso por separado si me los acepta (va_mc, ve_mc,vi_mc) pero son como 20 y es mas facil enviar el contenedor...

XD

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 02:15 am

Código Javascript :

function cambioC (t_1,t_2,contenedor):void 
{ 
   if (texto_1.y==150) 
   { 
      t_1.y=800; 
      t_2.y=150; 
      contenedor[va_mc].y=150; // aqui es la ayuda 
   }   
}

en si en t_1 y t_2 si funciona se mueven los objetos a la nueva posicion, pero en el otro me sale

Código :

TypeError: Error #1009: Cannot access a property or method of a null object reference.

aun con movieclip, creo que la que pusiste funciona en as2... pero en as3 como seria...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 02:32 am
contenedor es el padre y va_mc es el hijo

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 02:49 am
Ok, hacer una referencia, no es

contenedor[va_mc].y=150

es

MovieClip(contenedor["va_mc"]).y = 150

Nota el cast y las comillas, funciona?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 03:09 am
no, mi clip contenedor es llamado desde una funcion no desde el stage
lo puse igual pero nada...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 03:23 am
Boton en el stage

Código ActionScript :

b_01.addEventListener (MouseEvent.CLICK, function () {menu(1)});

funcion en el menu

Código ActionScript :

function Sector(numero) {
// mi contenedor principal
var cont_l:MovieClip = new MovieClip();
addChild(cont_l);
// mi movie clip de valor
var va_mc:valor = new valor();
   va_mc.x = 300;
   va_mc.y = 500;
   cont_l.addChild(va_mc);
// mi boton que llama a la otra funcion
var valor_mc:valores = new valores();
   valor_mc.x = 750;
   valor_mc.y = 650;
   valor_mc.buttonMode = true;
   cont_l.addChild(valor_mc);
   valor_mc.addEventListener (MouseEvent.CLICK, function () {valorC(t_S,t_S2,cont_l)});
/*en si al dar click al boton enviar todo el contenedor para poderlo modificar adentro del mismo...*/

al dar clip el contenedor es enviado a la funcion

Código ActionScript :

function valorC (texto_1,texto_2,contenedor):void
{
   if (texto_1.y==150)
   {
      texto_1.y=800;//si se mueve  
      texto_2.y=150;//si se mueve
  /****************************************************************************/
      MovieClip(contenedor["va_mc"]).y = 150;//aqui el problema no se mueve
  /****************************************************************************/
   }
}



aqui esta todo parte del codigo que estoy utilizando...

boton 1 ingresa a la funcion
luego ingresa a la funcion crea un contenedor
crea los botones
ingresa a la funcion y mueve los clip internos....
texto_1 y texto_2 si se mueven, pero el va_mc no...

ahora como rayos se hace eso... jejeje...

gracias por la atencion prestada

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 03:27 am
donde dice function sector es "untion menu", es para ser mas entendible...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 02:48 pm
Ok, rebuscado. La llamada es esta>

valorC(t_S,t_S2,cont_l)

¿Que es t_S y t_S2?, no lo veo definido por ningún lado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 03:58 pm

solisarg escribió:

Ok, rebuscado. La llamada es esta>

valorC(t_S,t_S2,cont_l)

¿Que es t_S y t_S2?, no lo veo definido por ningún lado

Jorge

jeje, perdon... son otros clip de pelicula, que contienen texto...
estan dentro del contenedor y de la funcion... tambien, si envio los clip por separado me permite modificaros, pero si envio el contenedor, todavia no se como...
pero si estan declarados dentro de la funcion...
son en si texto dinamico... en si lo que hace es desaparecerlos o cambiarlos de posicion, nada más...

en si deveria ser

valorC(cont_l)

lo que envie no t_S, t_S2,etc...
lo que deseo es no tener que enviar cada uno de los clip de esa forma, por que en general son como 12 a enviar, es mas facil el contenedor...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 04:01 pm
Para encontrar un elemento dentro de un contenedor puedes hacer

contenedor.getChildAt(index)

o

contenedor.getChildByName("nombre");

Si tienes un esquema de nombres estandarizado, la segunda opción te permite obtener la referencia

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 04:17 pm

solisarg escribió:

Para encontrar un elemento dentro de un contenedor puedes hacer

contenedor.getChildAt(index)

o

contenedor.getChildByName("nombre");

Si tienes un esquema de nombres estandarizado, la segunda opción te permite obtener la referencia

Jorge


perdon, XD por la pregunta, pero como lo aplicaria, o en que parte...
en si lo que necesito es poder modificar las propiedades del clip interno dentro de la funcion

gracias de antemano...

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 04:21 pm
Suponiendo que tengo un mc llamado "va_mc" dentro de contenedor, puedo hacer

Código ActionScript :

var va_mc:MovieClip = MovieClip(contenedor).getChildByName("va_mc") as MovieClip;
va_mx.x = 10;
va_mc.y = 10;


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 05:35 pm
me sale el mimso error..

Código ActionScript :

TypeError: Error #1009: Cannot access a property or method of a null object reference.

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 05:44 pm
Empieza a debuggear, por ejemplo ¿tiene childs realmente el contenedor

trace("childrens: "+contenedor.numChildren)

Tu estructura es un poco rebuscada, y si quieres ser tan dinámico, tienes que poder debuggear, sino perderás mas tiempo del que ganes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 06:22 pm
ok, me sale
childrens: 15

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 06:24 pm
Ok, entonces tiene contenido. Si le estas dando nombre, entonces puedes averiguar el nombre del primero asi

trace("Primero "+MovieClip(contenedor).getChildAt(0).name)

Averigua un poco que es lo que tienes ah{i dentro. Con un loop puedes trazar todos los elementos, mira si est{a lo que esperabas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 06:43 pm
childrens: 14
Primero instance65
Primero instance67
Primero instance74
Primero instance80
Primero instance86
Primero instance92
Primero instance97
Primero instance102
Primero instance107
Primero instance112
Primero instance116
Primero instance118
Primero instance140
Primero instance159

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 07:31 pm
Entonces es lógico que no encuentre va_mc, porque no hay nada con ese nombre de instancia, todos los nombres de instancias los crea Flex automaticamente, deberías darle nombre a los elementos si los quieres encontrar de esa manera

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Sep 2011 07:43 pm
XD y como se las daria dinamicame ??

Por xamla22

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Sep 2011 07:46 pm
Para asignar name se hace asignando un string a la propiedad

loquesea.name = "algun_nombre"

Ahora si tu sabes que es cada cosa, entonces puedes usar getChildAt(index) en vez de getChildByName

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Sep 2011 04:30 pm
Ok, listo,

la solución fue ponerle nombre en la funcion al clip de la pelicula

Código ActionScript :

va_mc.name = "va_mc";


y despues definirlo como clip dentro de la función

Código ActionScript :

var va_mc:MovieClip = MovieClip(contenedor).getChildByName("va_mc") as MovieClip;


gracias por todo... Solisarg

Por xamla22

21 de clabLevel



 

chrome

 

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