Aqui yo de nuevo queriendo terminar mi flashgame!

Ya habia elaborado un codigo que me "funcionaba" pero descubri que tenia una fuga de memoria y integrantes del foro me recomendaron reestructurar el codigo...asi que empeze otra vez..(Paciencia y Dedicación Hermanos)
Se me ocurrio ya que debo hacerlo de nuevo integrarle una nueva funcion al personaje, UN SALTO DOBLE! suena sencillo pero...

Primero le mostrare el codigo que utilize al principio:
Código ActionScript :
var velLateral:Number = 3; var friccion:Number = .6; var friccionAire:Number = .6; var gravedad:Number = -4.5; var tiempoSalto:Number = 4; var salto:Number = 30/tiempoSalto; var velMaxima:Number = 20; var puntoIzq:Number = -10; var puntoDer:Number = 10; var puntoBajo:Number = 17.5; var puntoArriba:Number = -17.5; //Inicializar Personaje// function inicializarPersonaje(mc:MovieClip):Void{ if(mc.dx==undefined){ mc.dx = 0; mc.dy = 0; mc.saltando = true; mc.empezoSalto=0; } mc.friccion = friccion; mc.vel = velLateral; mc.salto = salto; } function manejarPersonaje():Void{ if(Key.isDown(Key.UP)&&personaje_mc.saltando==false&&_root.atacando==false){ salta(personaje_mc); personaje_mc.gotoAndStop("saltando"); }else if(Key.isDown(Key.UP)&&personaje_mc.empezoSalto>0){ personaje_mc.dy-=personaje_mc.salto; } personaje_mc.empezoSalto--; } function salta(mc:MovieClip):Void{ inicializarPersonaje(mc); mc.friccion = friccionAire; mc.dy -= mc.salto; mc.saltando = true; mc.empezoSalto=tiempoSalto; } function aplicarMovimiento():Void{ this._x+=this.dx; this.dx*=this.friccion; if(this.dx>velMaxima){ this.dx=velMaxima; }else if(this.dx<-velMaxima){ this.dx=-velMaxima; } this._y+=this.dy; if(!piso.hitTest(this._x,this._y+puntoBajo+1,true)){ this.saltando = true; } if(this.saltando){ this.suelo = 0; this.dy-=gravedad; if(this.dy>salto*tiempoSalto){ this.dy = salto*t
Orale! un poco engorroso no y admito que use un tuto de la internet y aunque me esforce en entender al final no lo logre pero si me funciono... entonce me propuse entender como diantres funcionaba...leyendo por aqui y por alla saque las siguientes conclusiones...
¿Que es un Salto?
El saltar en flahs es una variacion de la posicion _y de un clip, esta debe aumentar de forma continua y luego bajar. Entonces se deberia determinar hasta que numero va a aumentar (Esto seria que tan alto saltaria) y que a partir de alli baje...suena sencillo

Ok, quize elaborar un codigo que me funcione y que sea mas sencillo... me puse a trabajar en esto:
Primero tengo en el escenario un clip que llamare "piso" //sobre el el personaje saltara//
Luego otro clip que sera el personaje llamado "personaje_mc"
ok entonces invente este
Código ActionScript :
var velocidad:Number = 10 var gravedad:Number = 5 var saltomax:Number = 20 var saltando:Boolean = false function saltar(){ if(_root.piso.hitTest(this._x, this._y+20, true)){ saltomax=20 } if(!_root.piso.hitTest(this._x, this._y+20, true)&&!saltando){ this._y+=gravedad } if(Key.isDown(Key.RIGHT)&&!_root.piso.hitTest(this._x+20, this._y, true)){ this._x+=velocidad } if(Key.isDown(Key.LEFT)&&!_root.piso.hitTest(this._x-20, this._y, true)){ this._x-=velocidad } if(Key.isDown(Key.UP)&&!saltando){ empezosalto(); } } function empezosalto(){ if ( saltomax >= 0){ personaje_mc._y-=saltomax saltomax-=gravedad } } personaje_mc.onEnterFrame=saltar
Voy a explicar para que es y ver si me corrigen o me podrian ayudar para que sea mas PRO jejejeej
Primero determine la variable "velocidad" que es para el movimiento lateral
despues "gravedad" que es para que el personaje baje
despues "saltomax" que es hasta donde puede subir
y finalmente el Boolean "saltando" para saber cuando lo esta haciendo
Código ActionScript :
var velocidad:Number = 10 var gravedad:Number = 5 var saltomax:Number = 20 var saltando:Boolean = false
Luego cree la funcion saltar que tiene varios condicionales
Código ActionScript :
if(_root.piso.hitTest(this._x, this._y+20, true)){ saltomax=20 }
eso es para que cuando toque piso coloque de nuevo la variable en 20
Código ActionScript :
if(!_root.piso.hitTest(this._x, this._y+20, true)&&!saltando){ this._y+=gravedad }
eso para que cuando no toque piso el personaje baje ps hasta que toque
Código ActionScript :
if(Key.isDown(Key.RIGHT)&&!_root.piso.hitTest(this._x+20, this._y, true)){ this._x+=velocidad } if(Key.isDown(Key.LEFT)&&!_root.piso.hitTest(this._x-20, this._y, true)){ this._x-=velocidad }
esto para dezplazar a la derecha e izquierda
Código ActionScript :
if(Key.isDown(Key.UP)&&!saltando){ empezosalto(); }
y esto hace un llamado a la funcion empezo salto
Código ActionScript :
function empezosalto(){ if ( saltomax >= 0){ personaje_mc._y-=saltomax saltomax-=gravedad } } personaje_mc.onEnterFrame=saltar
Aqui me dice que si saltomax es mayor a 0 que la propiedad _y le reste "saltomax" y al mismo tiempo a "saltomax" se le reste gravedad... eso hace que suba y el condicional de mas arriba que baje...
AHORA SI LA AYUDA QUE QUIERO ES QUE ME PODRIAN CORREGIR Y ME AYUDEN A INVENTAR UN DOLE SALTO

Desde ya gracias a quien se apiade de mi...
Saludos