Comunidad de diseño web y desarrollo en internet online

pregunta rapida

Citar            
MensajeEscrito el 31 Jul 2008 06:38 am
porque cuando tengo un mc boton que se arrastra //con este codigo

Código :

onClipEvent (enterFrame) {
   if (this.hitTest(_root.dresp)) {
      _root.score3 += 1;
      _root.trie3 += 1;
      _root.gotoAndStop("");
   }
}

si toca al mc grafico el score se vuelve loco??? es decir no agrega un punto mas sino que se sigue agregando puntos hasta que no separas el mc boton???
el score funciona perfecto si es que mi mc boton tiene _root.gotoAndStop("frame1");//ya que cambia al frame 1 que es el que estamos llamando, pero si no quiero que vaya a otro frame si no que se quede en el que esta es cuando no funciona...
alguien sabe por que ya me queme el cerebro y no logro comprender porque

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2008 08:31 am
El problema que onEnterFrame se ejecuta continuamente a la velocidad del flash player y entonces cuando toques el movieClip dresp con el movieClip que tenga la acción las dos variables (score3 y trie3) se sumarán hasta que no dejen de tocarse. Mira este ejemplo:

Código :

on(rollOver){

    trace("se ha ejecutado la función");

}


El anterior ejemplo, cada vez que le pases con el mouse por encima al objeto se ejecutará una vez el trace.

Ahora este:

Código :

onClipEvent(enterFrame){

    trace("se ha ejecutado la función");

}


no hace ni falta que le pases por encima, en cuanto se ejecute el flash la función empieza a ejecutarse indefinidamente.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 31 Jul 2008 01:30 pm
muchas gracias no habia pensado en el on roll over, pero y entonces como le hago para agregar el score... todos los ejercicios que tengo con on clip event los podre cambiar por roll over? y lo que pasa es que tengo un ejercicio completo con este script y no me hace este error? pero se pone on clip event con un _root.pawel (que es mi personaje) sera por eso? o porque tambien en ese as tengo como agregado un unloadMovie?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2008 08:45 pm
Mira no tiene nada que ver el onClipEvent, puedes usar con él onLoad, onData, onEnterFrame, entre otros, y no te digo que rollOver sea mejor, solamente te decia que había una diferencia entre ambos y que por lo menos para sumar un score no puedes utilizar onEnterFrame, cada uno de estos eventos los utilizas a tu conveniencia.

Para lo que quieres intenta utilizar startDrag y después con _droptarget chequeas si se ha soltado el movie drageado en el movie correcto.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Ago 2008 04:12 am
el problema con el rollover como dices es que al pasar el mouse se borra y lo que quiero es que el niño tome el cuadro y lo lleve hasta el lugar adecuado...por eso se me hizo facil hacerlo con onclipevent pero si pongo el codigo que me enseñaste aun cuando no toque mi score se vuelve loco es decir nunca termina...
de verdad esto me esta volviendo looooocaaa... mi problema es que no se como usar funciones y convinarlas.. por lo tanto estoy sacando los tutos y de ahi solo modifico lo que necesito.. pero no se me abre el cerebro en este problema =(

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2008 04:28 am
bueno.. despues de mucho pensar me decidi por este codigo

Código :

onClipEvent (enterFrame) {
   if (this.hitTest(_root.dresp)) {
      _root.score3 += 1;
      _root.trie3 += 1;
      unloadMovie(this);
   }
}

si es verdad que no es lo mas optimo, en este momento funciona...ya no se que mas hacer :cry:

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2008 09:35 am
Por qué no haces lo que te recomendé, la unión de startDrag, stopDrag y _droptarget?
Me parece la solución más apropiada.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Ago 2008 07:28 pm
porque no se como hacerlo junto y cuando use startDrag... en cuanto corria la pelicula se desaparecia mi mc... y no pude arreglarlo...

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2008 11:41 pm
Mira crea tres movies en el escenario mc1, mc2 y mc3, crea otro llamado cuadro y sitúa esto en el primer frame de tu película:

Código :

cuadro.onPress = function():Void{
   
   this.startDrag();
   
}

cuadro.onRelease = function():Void{
   
   stopDrag();
   trace(this._droptarget);
   
}


Con este código podrás arrastrar a el movie cuadro y soltarlo cuando quieras, bueno cuando lo sueltes el te dirá el nombre del movie donde fue soltado, si lo sueltas fuera de un cuadro, entonces te mandará un trace en blanco.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Ago 2008 02:58 am
ok.. lo unico que acabo de descubrir es que para que salga se muevan los mcs necesitas ponerle el nombre a la instancia "no lo sabia jeje" ya salio lo de tocar, y lo de agregar score porque puse en el mc1 este codigo

Código :

on(rollOver){
   if (this.hitTest(_root.cuadro)) {
      _root.score3 += 1;
      _root.trie3 += 1;
   }
}
çy como dices solo agrega un punto no mas, pero se me hace que tengo conflicto con mis demas as porque cuando ya lo hago en mi programa no me lo jala no hace nada.. tu crees que tengo que cambiar todos los as para que funcionen?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Ago 2008 05:58 am
bueno ya creo haberlo resuelto.. puesto que rollover tiene que " rodar", el mc1 tiene que ser mas grande que el mc cuadro...cambie todos mis as porque tiene mejor funcion este as.. =) y ya aprendi a usar una nueva funcion yajuuuu!!!! por cierto no se les olvide si usan este codigo.. colocar el nombre de instancia, no colocar el mismo mc para mover (porque la maquina no sabe que hacer.. sobre todo si ponen puntos +) y si estan aprendiendo //como yo ... es mejor abrir una nueva escena y ahi hacer los cambios y pruebas con los as que el proyecto.. por rapidez en el testmovie, para que no borren su programa completo y si lo borran no importe.. y para poder hacer todas las pruebas que necesiten !!! (cosas que no te dicen en los libros =)

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Ago 2008 10:34 am
Me alegra que hayas resuelto, desde los lejanos tiempos en que pawell era cojo y no caminaba y no sabía tirar flechas te dije que había descubierto que no te funcionaba el código porque no le habías puesto el nombre de instancia "pawell" a pawell, recurda que el nombre que tengan los clips en la biblioteca se pierden al compilar el SWF para trabajar con AS los que importan son los nombres de instancias, así que debes crearte como método de trabajo que cada vez que pongas un MC en la escena debes ponerle un nombre de instancia.

Mira no me parece que rollOver sea la solución, ya que si la persona arrastra el cuadro hacia el MC correcto, pero no lo suelta allí, se arrepiente y lo suelta en uno malo entonces, ya te habría sumado un punto al score porque le pasaste por encima al que estaba bien, me parece que el chequeo debe estar al soltar la ficha, tomando el mismo ejemplo que te puse anteriormente supongamos que el mc correcto es el mc1:

Código :

cuadro.onRelease = function():Void{   

   stopDrag();

   if(eval(this._droptarget) == _root.mc1){
      
      trace("resultado bien, se puede sumar el scrore");
      
   }else if(this._droptarget != ""){
      
      trace("resultado mal, dejar el scrore como está");
      
   }   

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 05 Ago 2008 03:57 am
me pide declaracion on??? mira ahora esto que estoy pensando..
en un ejercicio tengo que hacer que una columna empate con otra es decir si tengo a b c d y estos corresponden a 1 2 3 4 pues que con un mc(p1) trace una linea hacia la respuesta correcta mc(e17b)... aqui tengo dos problemas el primero que ya hice que se pueda dibujar la linea (p1) pero como no estoy cambiando de variable (el as lo compuse de un tuto) pues al tocar cualquier mc (e17b) te da score positivo lo que no quiero pues cada mc tiene su respuesta... y la segunda para arreglar esto hice un boton para que este atras de la respuesta correcta y asi poderlo dar con score negativo o positivo segun sea el caso... pero con droptarget no funciona ya que suelta donde quiere y no donde debe y ya intente poner el as que me dices pero me marca con error de declaracion..?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Ago 2008 10:55 am
Mira, cuando veas una funcion que tiene esta sintaxis:

Código :

cuadro.onPress = function():Void{
}


Es para ser utilizada en la línea de tiempo donde se encuentra un Mc con nombre de instancia "cuadro"

Cuando quieras pegar los scripts encima de los objetos, siempre deben tener una sintaxis como esta:

Código :

on(press){
}


o como esta:

Código :

onClipEvent(EnterFrame){
}


Por lo tanto para que te funcione el script que te pongo debe estar en la línea de tiempo donde se encuentra el MC que se llama cuadro.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 06 Ago 2008 02:54 am
lo modifique de esta manera

Código :

llave.onRelease = function():Void{      
stopDrag();   
if(eval(this._droptarget) == _root.d44){            _root.score3 += 1;
_root.trie3 +=1;
}else if(this._droptarget != ""){           
_root.score3 -= 1;
_root.trie3 += 1;
}  
}

mi mc llave es la que se tiene que mover para tocar los otros mc... por lo tanto seria en mc llave donde debe ir el script? pero cuando pruebo la peli no me suma nada el score deberia ir en el mc a tocar? o estoy modificando mal lo del score?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ago 2008 10:13 am
No, el script debe ir en el frame donde está mc llave.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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