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

on (release) que no trabaja...

Estas en el tema de on (release) que no trabaja... en el foro de Flash y Actionscript en Foros del Web. Saludos, aquí les traigo un problemita de los buenos... actualmente estoy terminando un sistema de simulaciones de un puerto bien complejo... el sistema está hecho ...
  #1 (permalink)  
Antiguo 13/05/2003, 09:58
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
on (release) que no trabaja...

Saludos,
aquí les traigo un problemita de los buenos... actualmente estoy terminando un sistema de simulaciones de un puerto bien complejo... el sistema está hecho en visual C++ pero utiliza flash para la interfase... osea, todo lo que ve el cliente es lo que yo he hecho en flash y desde flash le envío las ordenes a C++ a través de FSCommand... hasta ahi todo trabaja de maravillas... pero...
En una parte del sistema está la posibilidad de que el cliente cree shortcuts, estos shortcuts se pueden arrastrar, modificar, eliminar, ordenar, etc; pero hay una cierta area de la pantalla en que no me funciona el on (release), esto es cuando trato de "soltar" el shortcut sobre un objeto determinado, en todas las otras partes funciona bien menos en esa area... se que no está funcionando, pues luego de soltar el boton del mouse, el objeto se sigue arrastrando... será un fantasma????
Aquí hay una adaptación de esa parte del código, que se encuentra en un botón dentro de la movie shortcut:
Código:
on (press) {
     xinit = this._x;
     yinit = this._y;
     // aqui abajo siguen otras cosas
     this.startDrag (false, 0, 0, 800, 600);
}
on (release) {
     this.stopDrag();
}
on (release) {
     actX = this._x;
     actY = this._y;
     if (xinit != actX) || (yinit != actY) {  // movieron el shortcut
          // verifico si está sobre alguna de las areas de los objetos
          for (var i=0; i<6; i++) {
               var tmp = _root["shortcut" add i];
               if (this.hitTest(tmp) {
                    // el shortcut se soltó sobre uno de los objetos
                    // aqui siguen otras cosas

                    found = true;
               }
          }
          if (not found) {
               // mando el shortcut a su lugar de origen
               this._x = xinit;
               this._y = yinit;
          }
     }
}
El código original es mucho más complicado, esta es una versión usando hitTest, pues esos objetos también se crean dinámicos y en el código original la detección se hace por las coordenadas.
Ahhh, ya intenté quitando uno de los on(release) y poniendo todo junto... tampoco funcionó...

Repito la pregunta:
A ALGUIEN LE HA PASADO QUE EL ON (RELEASE) LE FUNCIONE EN UNA PARTE SI Y EN OTRA NO DE LA PANTALLA????

Saludos y 1000000000000 de gracias,
Silver.
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx
  #2 (permalink)  
Antiguo 13/05/2003, 10:07
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Que tal !!

El error esta en que tienes repetida la instruccion on(release)

Cita:
on (release) {
this.stopDrag();
}
on (release) {
actX = this._x;
actY = this._y;
........
Pon todo dentro de uno solo.

Saludos!!
  #3 (permalink)  
Antiguo 13/05/2003, 15:39
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Hola,
gracias por la pronta respuesta... pero no, la instrucción on(release) se puede repetir, eso no es ningún problema... incluso hay veces en que es necesario repetirlo para realizar determinadas operaciones... flash entra en los dos on (release) sin problemas... pero si lees mi post te daras cuenta que YA HICE ESO QUE PROPONES, quitar uno de ellos y no funciona tampoco...
saludos y gracias,
Silver.

Hello!!!!!!!!!!!!
alguien que me ayude, please!!!!!!!!!!
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx

Última edición por Silver; 13/05/2003 a las 15:39
  #4 (permalink)  
Antiguo 13/05/2003, 16:34
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
hola tu codigo es limpio y facil de seguir...da gusto..!

Te cuento aparentemente deberia funcionar, si dices que el on(release) repetido no influye.

Yo revisaria la condicion que pones.: tienes un if y dos condiciones, prueba solo con una ya que el x de un elemento es el x del otro si tienen la misma pos.

Ademas (no deberia influir pero prueba), tienes dos condiciones en ese if y hambas estan entre parentesis, prueba sacandolas a un solo parentesis grande(puede que no entre a comparar).

Ademas tienes un if y ningun else (que pasa si la condicion no se cumple?) y me diras ...pues que entonces no hace nada. y yo te digo que ademas tienes otro if al mismo nivel y podria ser que no sabe cual es el prinsipal y o entra en hambos o en ninguno.

Y por ultimo si nada funciona probaria usando el getProperty en lugar del this._x para asignar la pos del mc a la variable actX = this._x;

por lo demas tu sabes que el action script tiene sus finesas y probando probando se llegan a conocer.




Saludos.

Y cuando soluciones tu problema nos cuentas.
__________________
http://www.flotdesign.dk/
  #5 (permalink)  
Antiguo 13/05/2003, 23:26
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Hola Pulento,
agradezco mucho tu ayuda... te cuento que ya encontré el problema... aún no le he dado solución, pero ya al menos sé en base a qué trabajar... aquí te va la explicación.
Estos shortcuts que se arrastran son MC con un boton dentro sobre el que están las acciones que estabamos mirando.
Pero resulta que los objetos sobre los que los estaba soltando tambien son MC con botones dentro, entonces al dejar caer una MC sobre la otra el evento on (release) de la MC arrastrada se confunde con un evento del boton de la MC de abajo... entiendes? el on (release) de un boton es un on (dragOver) del otro y eso está creando un conflicto.
Bueno, gracias a todos again y sigo trabajando en el código para ver si lo tengo listo para la mañana.
Saludos,
Silver.
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx
  #6 (permalink)  
Antiguo 14/05/2003, 10:51
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Gracias Maltos por la respuesta... la solución provisional que le había dado era condicionar los eventos del boton en la MC de abajo... osea, dentro de cada evento del boton de la MC de abajo puse un IF para verificar que no hubiera otra MC sobre ella, si no había nada encima es que las acciones del mouse eran con esa MC de abajo... jejeje, parece un trabalenguas...
Pero ahora con tu prototype tengo dos opciones, o lo entrego así mismo pues el cliente no va a ver el código o hago las cosas como son y me pongo a reescribir parte del código... que creo es lo que voy a hacer... así que los dejo por ahora amigos,
gracias a todos y en especial a ti Maltos,
saludos,
Silver.

Hola Maltos,
estuve mirando el código con detenimiento (pues ya estoy cambiando todo) y creo que la línea:
[CODIGO]
if (this.hitTest(_xmouse, _ymouse)) {
[/CODIGO]
no es necesaria, pues ese evento onPress se ejecutaría solo en la Movie clickeada, por lo tanto no es necesario chequearla, o hay algo que estoy pasando por alto?
Esa línea sería necesaria si usaras un onMouseDown, no?
saludos
Silver
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx

Última edición por Silver; 14/05/2003 a las 10:51
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 15:05.