Comunidad de diseño web y desarrollo en internet online

ejecutar un mc en cierto momento

Citar            
MensajeEscrito el 14 Oct 2009 07:02 pm
buenas tardes a todos primero y principal gracias por leer mi mensaje, estoy teniendo un problema que no puedo resolver soy novato en as2 y trato de rebuscarmelas pero esto me ha superado.
tengo un sitio que cada seccion es una imagen diferente es un plano grande y se va moviendo segun la seccion elegida
si no me equivoco el ejemplo lo tome de cristalab
esta compuesto asi

en el root en el movie clip mundo_ints que contiene el siguinte codigo

onClipEvent(Load){
mueveX = _x;
mueveY = _y;
velocidad = 10;
}

onClipEvent(enterFrame){
_x += (mueveX-_x)/velocidad;
_y += (mueveY-_y)/velocidad;
}

adentro de este se encuentran cada seccion formando una cuadrilla de 3 column y 3 filas denominadas s1,s2,s3.....etc
poniendo como ejemplo s2adentro esta la info y el menu que cada link tiene una accion asi (varia segun la seccion y el link) para poder hubicar mundo_ints en la posicion requerida
on(release){
_root.mundo_ints.mueveX = -_root.mundo_ints.s1._x;
_root.mundo_ints.mueveY = -_root.mundo_ints.s1._y;
}

bueno la cosa es que yo quiero que cuando cambia de seccion y llegue a ese lugar se ejecute un mc que esta parado (pergamino desenrrollandose) , la verdad probe varias cosas y nada me funciono, espero puedan ayudarme
muchas gracias
saludos
gaston

Por gfliess

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Oct 2009 11:36 am
Estás usando una fórmula de slide de la época de Flash 5, actualmente conviene usar Tween y el callback onComplete. De todas formas si usas AS2 puedes inventarte algo así:

Código ActionScript :

on(release){
 _root.mundo_ints.mueveX = -_root.mundo_ints.s1._x;
 _root.mundo_ints.mueveY = -_root.mundo_ints.s1._y;
 var t = setInterval(function(t1,t2,t3){
    if(t1._x == t2._x) {
       clearInterval(t)
       t3.play()
    }
  }, 500, _root.mundo_ints,  _root.mundo_ints.s1, _root.pergamino)
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Oct 2009 05:03 pm
jorge gracias por tu respuesta, veo que estoy usando algo bastante viejo pero bueno ya esta echo asi el proyecto, despues podrias recomendarme por donde empezar o algun lugar con manuales/tutoriales o libro para poder aprender sobre lo actual???

por el momento te cuento que probe con tu codigo y no hace nada, me olvide de comentar que en el frame 1 del root tengo un _root.mundo_ints.s2.pergamino.stop() supongo que nosera eso el porque no anda o si???

Código ActionScript :

on(release){ 
   _root.mundo_ints.mueveX = -_root.mundo_ints.s2._x;
   _root.mundo_ints.mueveY = -_root.mundo_ints.s2._y;
   var t = setInterval(function(t1,t2,t3){
      if(t1._x == t2._x) {
         clearInterval(t)
         t3.play()
      }  
   }, 500, _root.mundo_ints,  _root.mundo_ints.s2, _root.mundo_ints.s2.pergamino)
}


pd: que significa el 500???? y lo que le sigue seria t1 t2 y t3 no?


salduos
y gracias
gaston

Por gfliess

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Oct 2009 05:35 pm
Dado que usas formula de slide, los valores nunca van a ser iguales, cambia el if:

if(Math.abs(t1._x-t2._x)<1) {

Luego agrega un trace antes del if para ver que tienes:

trace(" t1._x="+t1._x+" t2._x="+t2._x)

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 Oct 2009 08:11 pm
bueno cambie el if y pasa lo siguiente en el trace me muestra como va variando t1 desde su posicion original hasta esta
t1._x=597.55 t2._x=-598 (cuando llega a este valor continuna mostrandolo indefinidamente)

pero no arranca el play del t3

probe ponerle un if asi
if(t1._x == 597.55) {
pero no arranca tampoco

alguna idea?


gaston

Por gfliess

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Oct 2009 06:40 pm
La fórmula de slide siempre se acerca a cero pero nunca llega, entonces si has reemplazado como te dije:

if(Math.abs(t1._x-t2._x)<1) {

eso sería según los valores que cuentas

if(Math.abs(597.55- -598)<1)

Lo cual debería ser true, y luego ejecutaqr lo que está dentro del if

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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