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

puerta deslizable inteligente

Estas en el tema de puerta deslizable inteligente en el foro de Flash y Actionscript en Foros del Web. 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) ...
  #1 (permalink)  
Antiguo 09/04/2010, 12:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 10 años, 4 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
  #2 (permalink)  
Antiguo 10/04/2010, 02:18
 
Fecha de Ingreso: diciembre-2009
Mensajes: 25
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: puerta deslizable inteligente

a simple vista veo estos errores:

// 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; // esa t al inicio?
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; //falta el subguion a 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");
}
}

Etiquetas: inteligente
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 05:47.