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

Problema con mi codigo AS

Estas en el tema de Problema con mi codigo AS en el foro de Flash y Actionscript en Foros del Web. Buenas tengo un problemilla con el siguiente codigo AS ç Código: onClipEvent (load) { movimiento = _x += +100/velocidad _x = 999.0/2 velocidad = 15; ...
  #1 (permalink)  
Antiguo 08/08/2008, 09:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Problema con mi codigo AS

Buenas tengo un problemilla con el siguiente codigo AS
ç
Código:
onClipEvent (load) {
		movimiento = _x += +100/velocidad 
		_x = 999.0/2
        velocidad = 15;
}

onClipEvent (enterFrame) {
	posX = _root._xmouse;
 
    while ( _x < 630 )
	{ if (posX < 490 )
	{ _x += -100/velocidad}}}
El problema es que sin utilizar la opcion "while" si k funciona ..osea solo cn el if si k funciona lo k kiero ( k es k la umagen se mueva horizontalmente segun la posicion del raton .. pero al poner "While" ( que es para k la imagen no se pierda por la pantalla y se pare en determinada posicion ... ) cuando le doy a reproducir la pelicula .. me pone que el escript hace k flash o el reproductor flash valla lento y me da la opcion de eliminar el script ...

Alguien me puede decir pork pasa esto ?
  #2 (permalink)  
Antiguo 08/08/2008, 11:10
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Respuesta: Problema con mi codigo AS

Hola Jaime18 !

El evento onEnterFrame de los movieclips se dispara X veces por segundo, si tu película esta configurada para reproducirse 24 cuadros por segundo, el evento onEnterFrame se dispara 24 veces por segundo.

En cambio el ciclo while ejecuta un bloque de código si la condición es verdadera muchísimo más veces por segundo, en tu caso la condición del while nunca es falsa, por eso no sale del ciclo y como resultado te manda esa alerta el flash player.

No tiene caso que pongas ahí el while, con que pongas el if es más que suficiente, ya que el onEnterFrame se ejecuta como te dije antes, N veces por segundo y tu condición se va estar revisando constántemente.

Mira por ejemplo ve el while que colocaste dentro del onEnterFrame:

Código PHP:
while ( _x 630 ) {
 if (
posX 490 ) { 
     
_x += -100/velocidad
  
}

En esta caso, no le veo sentido que aumentes la propiedad _x de tu movieclip, ningún ojo alcanzarían a ver el movimiento en x.

Te pongo 2 casos, movimiento en x con onEnterFrame y con While, crea un movieclip y ponle como nombre de instancia 'mc', y colocalo en donde quieras:

Prueba pegando este código en el primer fotograma:

Código PHP:
this.onEnterFrame = function():Void {
    if(
mc._x >= Stage.width) {
        
this.onEnterFrame null;
    }
    
mc._x += 10;
}; 
Vas a ver que tu movieclip recorre el escenario.

Ahora borra el código anterior y sustitúyelo por este:

Código PHP:
while(mc._x Stage.width) {
    
mc._x += 10;

EL mc llego hasta los límites del ancho de la película, pero no viste el movimiento en x, esto es como te dije antes porque el ciclo while se ejecuta cientos o no sé miles de veces por segundo.

Espero que se hayan aclarado tus dudas.


Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 08/08/2008, 11:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Problema con mi codigo AS

Creo que te e entendido ..pero nose como hacer .. mira .. te explico lo que quiero hacer en realidad ...

La imagen y el lienzo tienen la misma altura ....

Pero la anchura la de la imagen es mayor que la del lienzo...

Para hacer que moviendo el raton hacia la derecha y que la imagen se desplaze hacia la izkierda e puesto este codigo...

Código:
onClipEvent (load) {
		_x = 999.0/2
        velocidad = 15;
}

onClipEvent (enterFrame) {
	posX = _root._xmouse;
	if ( posX <490) { 
    _x += +100/velocidad; }
	
	
	if ( posX >508) { 
	_x += -100/velocidad};
	
	}
El problema es que como e puesto en el " IF" que si la posicion del raton esta a uno de los lados del centro la imagen se desplace hacia un lado .. sumando o restando 100 y dividiendo entre la velocidad .... eso lo hace en forma de bucle .. por lo tanto la imagen llega un momento k se va de la pantalla ...

Lo que yo kiero hacer es k solo se mueva hasta que llege el borde derecho de la imagen al borde derecho del lienzo y el borde izkierdo .. al borde izkierdo..para que no se pierda .. pero no se como ponerlo ...

Podrias ayudarme ? ... esk necesito hacer eso lo antes posible ...

Gracias ...
  #4 (permalink)  
Antiguo 08/08/2008, 12:30
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Respuesta: Problema con mi codigo AS

Hola Jaime18 !

Podrías hacer que el lienzo siga al mouse hasta su punto de referencia.

Código PHP:
var velocity:Number 15;
lienzo.onEnterFrame = function():Void  {
    var 
diffX:Number _xmouse this._x;
    
diffX diffX velocity;
    
this._x += diffX;
}; 
Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #5 (permalink)  
Antiguo 08/08/2008, 16:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Problema con mi codigo AS

Agradezco tu ayuda ..pero eso que dices de que el lienzo siga al raton .. ya lo avia pensado yo .. pero esque yo el efecto que quiero crear es algo parecido a esto ..

www.themummy.com ( una vez pinchas en ...ENTER THE SITE ... )

Entonces si el lienzo sige al raton .. cada vez que dirigiese el raton hacia algun boton que en este caso serian personas .. el lienzo acompañaria el puntero y no me dejaria ponerme encima de lo k yo kisiese ...

por eso la unica forma que veo .. es .. haciendo alguna condicional o algo .. de forma que a la posicion del MC se le sume o reste 100 y se divida entre la velocidad .. pero que cuando llege a cierta posicion .. ( que he echo calculos y las posiciones limites del centro del MC deverian de ser .. la posicion 371 y la posicion 630

Pero como soy medio nuevo en esto de actionscript ..poues nose como programar eso .. de que forma .. y cn que comando ...

Aver si alguien me puede ayudar .. a eso..

Gracias ...
  #6 (permalink)  
Antiguo 08/08/2008, 19:01
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Respuesta: Problema con mi codigo AS

Cita:
Iniciado por Jaime18 Ver Mensaje
Agradezco tu ayuda ..pero eso que dices de que el lienzo siga al raton .. ya lo avia pensado yo .. pero esque yo el efecto que quiero crear es algo parecido a esto ..

www.themummy.com ( una vez pinchas en ...ENTER THE SITE ... )

Entonces si el lienzo sige al raton .. cada vez que dirigiese el raton hacia algun boton que en este caso serian personas .. el lienzo acompañaria el puntero y no me dejaria ponerme encima de lo k yo kisiese ...

por eso la unica forma que veo .. es .. haciendo alguna condicional o algo .. de forma que a la posicion del MC se le sume o reste 100 y se divida entre la velocidad .. pero que cuando llege a cierta posicion .. ( que he echo calculos y las posiciones limites del centro del MC deverian de ser .. la posicion 371 y la posicion 630

Pero como soy medio nuevo en esto de actionscript ..poues nose como programar eso .. de que forma .. y cn que comando ...

Aver si alguien me puede ayudar .. a eso..

Gracias ...
Hola Jaime18 !

Ya viendo el ejemplo de la página, este tutorial te puede servir:
http://www.kirupa.com/developer/flas..._image_pan.htm

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #7 (permalink)  
Antiguo 09/08/2008, 06:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Problema con mi codigo AS

Ohhhh !!!

muchas gracias JAHEPI .... Ahora solo tengo que intentar traducir el As de ese flash ..para entenderlo...

Muchas gracias ..
  #8 (permalink)  
Antiguo 10/08/2008, 19:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Problema con mi codigo AS

Despues de solucionar mi problema ... ahora tengo otro .. jejeje

El problema es .. que como dige quiero hacer algo similar a la pagina de la momia entonces una vez echo el movimiento de mi fondo y delimitado los vordes etc ..etc ..etc... ahora tengo unas pequeñas casas detras del fondo .. justamente detras de los unos arboles .. y estoy intentando que se mueva justo al contrario de la imagen

Lo que es la creacion del codigo .. esta clara .. ya lo tengo es practicamente el mismo que el del fondo ..pero cambiando limites y los valores de movimiento ...

El codigo que e utilizado es este ..

Código:
onClipEvent (load) {
	posX  = _root._xmouse;
	_x =  999.0 / 2
	velocidad = 30;
}

onClipEvent (enterFrame) {
	
	if ( posX <490 && _x <664.5 )
	{ casas._x += -100/velocidad};
	
	if ( posX >508 && _x > 287)
	{ casas._x += +100/velocidad};
}
El problema esta .. en que solo se mueve hacia la derecha y no acia la izkierda ...
Al mover el puntero hacia un lado .. la imagen de fondo se mueve al contrario y las casas al contrario del fondo ...pero solo acia la izkierda .. al llegar a su limite la foto de las casitas .. esta para .. como yo le e dixo en el codigo ... pero .. cuando para el fondo la imagen siges moviendose hacia la derecha hasta perderse en la pantalla ....

Creo que el problema es ... que como utilize para el fondo el .. "_x" al utilizarlo en el otro clip de pelicula .. se raya o algo parecido ..

Me puede alguien explicar que es lo que pasa verdaderamente ?

Gracias...
  #9 (permalink)  
Antiguo 10/08/2008, 19:48
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 10 años
Puntos: 51
Respuesta: Problema con mi codigo AS

es posible por que estas sumando un valor ya añadido Xd vueno prueba asi

onClipEvent (load) {
posX = _root._xmouse;
_x = 999.0 / 2
velocidad = 30;
}

onClipEvent (enterFrame) {

if ( posX <490 && _x <664.5 )
{ casas._x += -100/velocidad};

if ( posX >508 && _x > 287)
{ casas._x += 100/velocidad};
}
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #10 (permalink)  
Antiguo 10/08/2008, 20:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 61
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Problema con mi codigo AS

E provado con el codigo que me has puesto .. pero lo que pasa ai ..es que la imagen de las casitas .. se mueve hacia la derecha hasta que llega al limite que le indicavamos ...

Y si pongo el raton en la derecha para que se muevan a la izkierda ....estas se kedan kietas...pork es .. ? ..

Esque yo de action script estoy empezando entonces hay cosas que no entiendo ...

En el codigo que te he escrito mencionava el MC casas ... pero asi nisikiera se mueven y si dejo solamente ek " _x" si ..
  #11 (permalink)  
Antiguo 10/08/2008, 23:04
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 10 años
Puntos: 51
Respuesta: Problema con mi codigo AS

a ver mira e echo algo parecido siguiendo tu código pero para que resulte como quieres tube que poner como valores 275 suponiendo que el escenario mida 550 de ancho el codigo es el siguiente

onClipEvent (load) {

_x = 999.0/2;
velocidad = 30;
}

onClipEvent (enterFrame) {

if (_root._xmouse<275 && _x<664.5) {
_x += 100/velocidad;
}

if (_root._xmouse>275 && _x>287) {
_x += -100/velocidad;
}
}
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
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:09.