Foros del Web » Creando para Internet » Flash y Actionscript »

Problema enlazando movieclips con as3

Estas en el tema de Problema enlazando movieclips con as3 en el foro de Flash y Actionscript en Foros del Web. Buenas noches, estoy intentando mediante as3 , sin crear clases, directamente en la linea de tiempo , que me inicie un mc y justo cuando ...
  #1 (permalink)  
Antiguo 04/06/2010, 17:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema enlazando movieclips con as3

Buenas noches,

estoy intentando mediante as3 , sin crear clases, directamente en la linea de tiempo , que me inicie un mc y justo cuando acabe , lanze otro.

He probado con diversos codigos, incluyendo el el mc final dentro del mc (intro) . en difrerentes frames en la linea de tiempo principal, comprobando mediante codigo si el acutal frame del mc padre es igual al frame total, me pongo tracers y ni siquiera entra en la funcion.

como hago algo tan simple ?

he buscado en diversos foros, y he encontrado muchisima informacion pero no esto , que debe ser tan facil que ni me lo imagino, pero .. llevo casi 5 dias atascado en esta chorradilla, y he probado mil codigos, y ahora ya ... estoy empezando a desvariar, alguien me puede orientar ?

Por si lo he liado demasiado simplemente , quiero que justo cuando finalice de visualizarse un movieclip, aparezca el siguiente, no durante, ni que desaparezca antes de finalizar la visualizacion.

Por adelantado muchisimas gracias!
  #2 (permalink)  
Antiguo 04/06/2010, 21:18
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema enlazando movieclips con as3

hola
bueno, estas usando el evento Event.ENTER_FRAME?
o como estas tratando de enlazarlos?

yo te propongo que hagas una función que escuche ese evento
en el primer movieclip, y luego esa función tendría un if que revisaría
si el movieclip se encuentra en su ultimo frame (mc.currentFrame == mc.totalFrames)???

y si es así, pues que haga lo que debe hacer (otromc.play())

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 08/06/2010, 18:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema enlazando movieclips con as3

Al final , he alargado unos frames , no eran demasiados, pero no acabo de pillar muy bien la programacion con as3, por ejemplo , ahora si que estoy usando el event ENTER FRAME para intentar pasar una variable , o para q me ejecute una funcion .

La historia sigue igual, es un MC Patriarca, MC Padre con 2 botenes y otro MC hijo

EN el MC_Patriarca tenemos todo

MC Padre los 2 botones y los 6 recuadros

MC hijo las 6 acciones que mostrara en el recuadro,

En el MC PADRE ahora tengo esto :

import flash.events.MouseEvent;

var num = 0;
var liniatiempo:Object=root;


function mIzq($event:MouseEvent):void{
if (num == 0 ) {
contador = 5
gotoAndPlay("primero");
/*telas.moverPantallas(Event.ENTER_FRAME,contador); */


}else {
contador = contador - 1;
gotoAndPlay("primero");

/*telas.addEventListener(Event.ENTER_FRAME, telas.moverPantallas(contador));*/

}

}

izquierda.addEventListener(MouseEvent.CLICK, mIzq);

Tambien he tratado de leerla desde el hijo pero siempre me da error el codigo que tengo ahora mismo en el hijo es :

var cont = MovieClip(parent).contador;
addEventListener (Event.ENTER_FRAME, moverPantallas(cont) );
function moverPantallas (int:num) {

if ( num == 0 ){

gotoAndPlay(1);

}

if ( num == 1 ){

gotoAndPlay(6);

}
if ( num == 2 ){

gotoAndPlay(11);

}

if ( num == 3 ){

gotoAndPlay(16);

}
if ( num == 4 ){

gotoAndPlay(21);

}

if ( num == 5 ){

gotoAndPlay(26);

}
}

Llevo horas cambiando codigo y solo consigo más errores, sé que ahora mismo quizás haya alguna burrada, pero es que ahora mismo no se ya ni el orden.... entiendo que debe ser super simple, pero me está costando un monton aclararme con el as3... en fin seguimos
  #4 (permalink)  
Antiguo 08/06/2010, 23:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema enlazando movieclips con as3

Hola

Pues me enredo con tu historia, a ver trato de explicar lo que entiendo

Tienes un mc_patriarca, el cual contiene:
un mc_padre con 2 botones y a su vez, mc_padre tiene un un mc_hijo
o
un mc_padre con 2 botones y un mc_hijo que esta al mismo nivel que mc_padre?

No termino de entender la correcta distribución

Y a su vez, que quieres lograr, que desde mc_padre se muevan los frames de mc_hijo? bueno, espero que postees y te tomes un respiro, y te inspires para escribir lo más explicito posible

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 09/06/2010, 10:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema enlazando movieclips con as3

jajajaja, mil disculpas, lo acabo de leer, y supongo que ya estaba desquiciado. intento expresarme mejor.

Tengo MC_Patriarca que contiene MC_Padre, MC_Padre contiene MC_Hijo.

En el MC_PAtriarca se ve 6 recuadros en forma de hexagono como si fuera pantallas giratorias, los 2 botones para girarlas y lo que sería la pantalla que se ve una vez acaba de girar.

En el MC_Padre tengo el giro de las pantallas y los 2 botones, ademas de en el primer frame y en el ultimo acaban con el MC_Hijo en medio.

El MC_Hijo contiene las diferentes pantallas que se veran si clicas a los botones.

Entonces, desde el MC_Padre me guardo en contador cada vez que se clica a izquierda o derecha, sumando o restando .

Y quiero que segun esa variable el MC_Hijo solo me muestre por ejemplo del frame 1 al 6 donde seis es la pantalla que se vera ( por ejemplo un grafico o otro MC ) o del 7 al 12 ( que sera otro ) y asi continuamente.

Por eso en el codigo de arriba intento guardar una variable contador y que me lo lea el MC Hijo o pasarle directamente por codigo la variable, tb he de decir que empezé incorrectamente esta pagina y empezé a codificarlo todo en la línea de tiempo, y creo que ahora, empezarlo otra vez, programando con clases , todo desde as3 sería ir atras, así que estoy intentando entender como programar as3 desde la línea de tiempo directamente, en cuanto acabe esto y lo entregue , la reharé desde el principio . Muchas gracias , por tu ayuda, y siento el otro post ;)
  #6 (permalink)  
Antiguo 10/06/2010, 02:12
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema enlazando movieclips con as3

Hola
Bueno, pues a ver si ahora comprendi mejor

MC_Patriarca contiene a MC_Padre
MC_Padre tiene 2 botones y a MC_Hijo
MC_Hijo contiene las pantallas que se moverán

Si estoy bien, entonces podrías probar este código
que iría ubicado en la línea de tiempo del stage (escenario)

Código actionscript:
Ver original
  1. var contador:Number = 0;
  2. var framecomienzo:Number = 0;
  3. var frameparar:Number = 0;
  4. MC_Patriarca.MC_Padre.btn1.addEventListener(MouseEvent.CLICK, test);
  5. MC_Patriarca.MC_Padre.btn2.addEventListener(MouseEvent.CLICK, test);
  6. function test(e:MouseEvent):void
  7. {
  8.     if(e.currentTarget.name == 'btn1')
  9.         contador--;
  10.     else
  11.         contador++;
  12.    
  13.     paseoalhijo(contador);
  14. }
  15.  
  16. function paseoalhijo(contador:Number):void
  17. {
  18.     if(contador <= 1)
  19.     {
  20.         framecomienzo = 1;
  21.         frameparar = framecomienzo + 2;
  22.     }
  23.     else
  24.     {
  25.        
  26.         if(contador > 1 && contador < 4 )
  27.         {    //3 pareciera que no hiciera nada, pero es porque ya se ejecuto 2
  28.             framecomienzo = 2;
  29.             frameparar = framecomienzo + 2;
  30.         }
  31.         else
  32.         {
  33.             framecomienzo = 4;
  34.             frameparar = framecomienzo + 2;            
  35.         }
  36.     }
  37.     MC_Patriarca.MC_Padre.MC_Hijo.gotoAndPlay(contador);
  38.     MC_Patriarca.MC_Padre.MC_Hijo.addEventListener(Event.ENTER_FRAME, revisaframe);
  39. }
  40.  
  41. function revisaframe(e:Event):void{
  42.     if(e.target.currentFrame == frameparar){
  43.         e.target.gotoAndStop(frameparar)
  44.     }
  45. }

espero te sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 10/06/2010, 05:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema enlazando movieclips con as3

Muchisimas gracias, ahora por lo menos me compila, he acomodado el codigo a mi fl, pero todavía no hace lo deseado , y no lo entiendo , en el mc telas hay 30 frames, y cada 5 un stop en As, y en cada stop una tela que es la que quiero mostrar, los otro 4 frames son la transicion,yo he dejado el codigo así :

this.stop();

var contador:Number = 0;
var framecomienzo:Number = 0;
var frameparar:Number = 0;
var frameMostrar:Number = 0;

pantallas_mc.izquierda.addEventListener(MouseEvent .CLICK, test);
pantallas_mc.derecha.addEventListener(MouseEvent.C LICK, test);
function test(e:MouseEvent):void
{
if(e.currentTarget.name == 'izquierda')//comprobamos en que objeto ha habido evento
if (contador == 0 ) {
contador = 5

}else {
contador = contador - 1;


}

else {
if (contador == 5 ) {
contador = 0

}else {
contador = contador - 1;


}

}
paseoalhijo(contador);
}

function paseoalhijo(contador:Number):void
{
trace(contador);
if ( contador == 0 ){

frameMostrar = 1;

}

if ( contador == 1 ){

frameMostrar = 6;

}
if ( contador == 2 ){

frameMostrar = 11;

}

if ( contador == 3 ){

frameMostrar = 16;

}
if ( contador == 4 ){

frameMostrar = 21;

}

if ( contador == 5 ){

frameMostrar = 26;

}

trace(frameMostrar);
pantallas_mc.telas.gotoAndPlay(frameMostrar);
// MC_Patriarca.MC_Padre.MC_Hijo.addEventListener(Eve nt.ENTER_FRAME, revisaframe);
}

Sin embargo, me hace los tracers correctos, pero lo que veo en pantalla es siempre el frame 1 de telas hasta el 5, nunca entra a otro frame, y eso que estoy comprobando frameMostrar y es el correcto.

Tienes alguna idea de porque no se visualiza ?
  #8 (permalink)  
Antiguo 10/06/2010, 05:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema enlazando movieclips con as3

Muchisimas gracias, ahora por lo menos me compila, he acomodado el codigo a mi fl, pero todavía no hace lo deseado , y no lo entiendo , en el mc telas hay 30 frames, y cada 5 un stop en As, y en cada stop una tela que es la que quiero mostrar, los otro 4 frames son la transicion,yo he dejado el codigo así :

Código ActionScript:
Ver original
  1. this.stop();
  2.  
  3. var contador:Number = 0;
  4. var framecomienzo:Number = 0;
  5. var frameparar:Number = 0;
  6. var frameMostrar:Number = 0;
  7.  
  8. pantallas_mc.izquierda.addEventListener(MouseEvent .CLICK, test);
  9. pantallas_mc.derecha.addEventListener(MouseEvent.C LICK, test);
  10. function test(e:MouseEvent):void
  11. {
  12. if(e.currentTarget.name == 'izquierda')//comprobamos en que objeto ha habido evento
  13. if (contador == 0 ) {
  14. contador = 5
  15.  
  16. }else {
  17. contador = contador - 1;
  18.  
  19.  
  20. }
  21.  
  22. else {
  23. if (contador == 5 ) {
  24. contador = 0
  25.  
  26. }else {
  27. contador = contador - 1;
  28.  
  29.  
  30. }
  31.  
  32. }
  33. paseoalhijo(contador);
  34. }
  35.  
  36. function paseoalhijo(contador:Number):void
  37. {
  38. trace(contador);
  39. if ( contador == 0 ){
  40.  
  41. frameMostrar = 1;
  42.  
  43. }
  44.  
  45. if ( contador == 1 ){
  46.  
  47. frameMostrar = 6;
  48.  
  49. }
  50. if ( contador == 2 ){
  51.  
  52. frameMostrar = 11;
  53.  
  54. }
  55.  
  56. if ( contador == 3 ){
  57.  
  58. frameMostrar = 16;
  59.  
  60. }
  61. if ( contador == 4 ){
  62.  
  63. frameMostrar = 21;
  64.  
  65. }
  66.  
  67. if ( contador == 5 ){
  68.  
  69. frameMostrar = 26;
  70.  
  71. }
  72.  
  73. trace(frameMostrar);
  74. pantallas_mc.telas.gotoAndPlay(frameMostrar);
  75. // MC_Patriarca.MC_Padre.MC_Hijo.addEventListener(Eve nt.ENTER_FRAME, revisaframe);
  76. }

Sin embargo, me hace los tracers correctos, pero lo que veo en pantalla es siempre el frame 1 de telas hasta el 5, nunca entra a otro frame, y eso que estoy comprobando frameMostrar y es el correcto.

Tienes alguna idea de porque no se visualiza ?
  #9 (permalink)  
Antiguo 10/06/2010, 23:23
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Problema enlazando movieclips con as3

hola
pues no se, pero se me ocurre por ej
que en la función test el primer if
no tiene llaves que abren y cierran y que
deberian enlazarlo con else, tal vez
sea eso
revisa y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: movieclips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:38.