Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2010, 11:09
beatger
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 10 años, 5 meses
Puntos: 0
puerta deslizable inteligente

Hola a todos queridos colegas; tengo el siguiente action script, donde la puerta_der , puerta_izq, los limites y el pasajero, son nuestras variables (actores estelares) de nuestro escenario principal.
El problema se genera cuando en algun punto de la programacion, se produce un error y el objetivo final no se lleva a cabo; siendo este, que las puertas se abran cuando el pasajero ingresa al area de deteccion.

Aqui el codigo:

Código:
// configuracion
var velocidad=15;	//velocidad de clausura-apertura
var apertura=120;	// distancia entre clausura-apertura
// inicializacion de actores
var pasajero=_root.pasajero;
tvar puerta_der=_root.puerta_der;
var puerta_izq=_root.puerta_izq;
var puerta_der=_root.puerta_der;
// area sensible de deteccion de pasajeros
var limite_sup=_root.limite_sup._y;
limite_sup._visible=0
var limite_inf=_root.limite_inf.y;
limite_inf._visible=0
// rango de movimiento de puertas
var p_i_c= puerta_izq._x			// puerta izq. cerrada
var p_i_a= puerta_izq._x - apertura	// puerta izq. abierta
var p_d_c= puerta_der._x			// puerta der. cerrada
var p_d_a= puerta_der._x + apertura	// puerta der. abierta
// apertura de puertas
function desplazar_puertas(sentido){
	if (sentido == "abrir"){
		_root.onEnterFrame=function(){
			if(puerta_izq._x > p_i_a && puerta_der._x < p_d_a){
				puerta_izq._x-=velocidad;
				puerta_der._x+=velocidad;
			} else {
				puerta_izq._x=p_i_a;
				puerta_der._x=p_d_a;
				_root.onEnterFrame=null;
			}
		}
	} else if (sentido == "cerrar"){
		_root.onEnterFrame=function(){
			if(puerta_izq._x < p_i_c && puerta_der._x > p_d_c){
				puerta_izq._x+=velocidad;
				puerta_der._x-=velocidad;
			} else {
				puerta_izq._x-=p_i_c;
				puerta_der._x+=p_d_c;
				_root.onEnterFrame=null;
			}
		}
	}
}
// movilidad de pasajero
pasajero.onPress=function(){
	this.startDrag(0);
}
pasajero.onRelease=function(){
	this.stopDrag(0);
}
// chequeo de ingreso a area sensible
_root.onMouseMove=function(){
	if(pasajero._y <limite_sup || pasajero._y > 52 limite_inf){
		desplazar_puertas("cerrar");
	} else {
		desplazar_puertas("abrir");
	}
}
Espero alguien pueda ayudarme a resolver el problema, y por supuesto tambien usar este codigo (resuelto) para algun proyecto personal.

GRACIAS A TODOS.
Saludos

beatger