Comunidad de diseño web y desarrollo en internet online

Duda para pasar código de AS2 a AS3.

Citar            
MensajeEscrito el 05 Dic 2010 09:03 pm
Hola que tal,tengo una duda sobre porque un codigo no me funciona en AS3:
Acá está el ejemplo en AS2 y me funciona sin problemas,es una bola que cuando llega a x.550 invierte su velocidad horizontal y cuando llega a 0 la vuelve a invertir,o sea va de un lado hacia otro:

Código ActionScript :

onClipEvent(load) 
{speedX = 5;}
  
  onClipEvent(enterFrame) 
  {
   this._x += speedX;
   if (this._x >= 550) {speedX = -speedX;} 
   else if (this._x <= 0) {speedX = -speedX;}
  }


Acá en AS3 no me funciona,la bola sigue de largo:

Código ActionScript :

this.addEventListener(Event.ENTER_FRAME,mover_bola);
function mover_bola(e:Event)
{
var speedX:Number=5;
this.x+=speedX;
    if (this.x >= 550) {speedX = -speedX;} 
    else if (this.x <= 0) {speedX = -speedX;}
}

probé diferentes variaciones,lo máximo que logré es que cuando llega a 550 se quede en el lugar o retroceda 1 px o más segun lo que ponía y vuelva a avanzar.
Acá hay un ejemplo en el cual primero creé la variable dirección "dirx" y le asigno un valor según en que parte de la pantalla está (1 iría a la derecha 2 iría a la izquierda):

Código ActionScript :

this.addEventListener(Event.ENTER_FRAME,mover_bola);
function mover_bola(e:Event)
        
{
   var dirx=Number;

   if (this.x>=500) {dirx=2}
   else if (this.x<=0) {dirx=1};
   
   if (dirx==1){this.x=this.x+5}
   else if (dirx==2){this.x=this.x-5};
}

Quisiera saber como puedo hacerlo,cuál es la diferencia entre as2 y as3 que no me funciona,se ve que as3 es más estricto para chequear algunas cosas.
Saludos.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 06 Dic 2010 05:01 am
Bien, primero que nada, eso es AS1 prácticamente, no AS2. Además, no puedes usar "this" para hacer las comprobaciones, debes usar e.currentTarget.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 06 Dic 2010 04:08 pm
En tu primer funcion anets de meter la variable de direccion simplemente saca la declaracion de la variable speedX fuera de la funcion mover_bola y asi debe de funcionar mejor.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Dic 2010 06:06 am
Si Angel Roberto,era una tontería,la variable de dirección debía estar fuera de la función sino esta también cambiaba en cada Frame,lo hice con mi segundo ejemplo de AS3 y funcionó.
Saludos y Gracias.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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