[FMX2004]Que estara mal
hola foreros: hace unos dias compre un libro de action script ,que esta bastante
didactico, pero para variar , algunos de los ejemplos de codigo , no hacen ,al
menos simple vista , lo que se suponen deben hacer.
uno de los ejercicios es hacer un simulador de puertas automaticas, cuando un
objeto (pasajero)mediante startdrag() se aproxima y cruza una linea (limite_inf
o limite_sup) dos rectangulos (puerta_izq y puerta_der) se separan (simulando
que se abren las puertas) y si se aleja de los limites, se cierran.
es cortito y aparentemente sencillo ( hasta yo creia entenderlo) , pero no logro
hacerlo funcionar.
si alguien tiene ganas de investigar un rato los invito participar.
aca va una copia fiel del codigo :
///--------------------------------------------------
var velocidad = 15;
var apertura = 120;
var pasajero = _root.pasajero;
var puerta_der = _root.puerta_der;
var puerta_izq = _root.puerta_izq;
var limite_sup = _root.limite_sup._y;
var limite_inf = _root.limite_inf._y;
var p_i_c = puerta_izq._x;
var p_i_a = puerta_izq._x-apertura;
var p_d_c = puerta_der._x;
var p_d_a = puerta_der._x+apertura;
limite_sup._visible = 0;
limite_inf._visible = 0;
function desplazar_puerta(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 = p_i_a;
puerta_der = 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 = p_i_c;
puerta_der = p_d_c;
_root.onenterframe = null;
}
}
}
}
_root.pasajero.onpress = function() {
this.startdrag(0);
}
_root.pasajero.onrelease = function() {
this.stopdrag(0);
}
_root.onmousemove = function() {
if (_root.pasajero._y < limite_sup || _root.pasajero._y > limite_inf) {
desplazar_puerta("cerrar");
} else {
desplazar_puerta("abrir");
}
}
///------------------------------------
didactico, pero para variar , algunos de los ejemplos de codigo , no hacen ,al
menos simple vista , lo que se suponen deben hacer.
uno de los ejercicios es hacer un simulador de puertas automaticas, cuando un
objeto (pasajero)mediante startdrag() se aproxima y cruza una linea (limite_inf
o limite_sup) dos rectangulos (puerta_izq y puerta_der) se separan (simulando
que se abren las puertas) y si se aleja de los limites, se cierran.
es cortito y aparentemente sencillo ( hasta yo creia entenderlo) , pero no logro
hacerlo funcionar.
si alguien tiene ganas de investigar un rato los invito participar.
aca va una copia fiel del codigo :
///--------------------------------------------------
var velocidad = 15;
var apertura = 120;
var pasajero = _root.pasajero;
var puerta_der = _root.puerta_der;
var puerta_izq = _root.puerta_izq;
var limite_sup = _root.limite_sup._y;
var limite_inf = _root.limite_inf._y;
var p_i_c = puerta_izq._x;
var p_i_a = puerta_izq._x-apertura;
var p_d_c = puerta_der._x;
var p_d_a = puerta_der._x+apertura;
limite_sup._visible = 0;
limite_inf._visible = 0;
function desplazar_puerta(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 = p_i_a;
puerta_der = 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 = p_i_c;
puerta_der = p_d_c;
_root.onenterframe = null;
}
}
}
}
_root.pasajero.onpress = function() {
this.startdrag(0);
}
_root.pasajero.onrelease = function() {
this.stopdrag(0);
}
_root.onmousemove = function() {
if (_root.pasajero._y < limite_sup || _root.pasajero._y > limite_inf) {
desplazar_puerta("cerrar");
} else {
desplazar_puerta("abrir");
}
}
///------------------------------------
More discussions in Foro en español
adobe
Comments
Post a Comment