Es un tema algo abstracto pero muy muy potente. Consiste en definir la
posici�n del rat�n con un n�mero y crear filtros sobre elementos
(representados num�ricamente tambi�n). Ayer estuve hablando con Hari del
tema, es posible que ya tenga alg�n c�digo visible.

La posici�n del rat�n la representamos con un n�mero de 27 bits (o de m�s,
pero en principio con 27 es m�s que suficiente):

000 | 000 000 000 000 | 000 000 000 000
^^^   ^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^
 a          b                  c

Este n�mero (que es del tipo Number, l�gicamente) representar�a la posici�n
del rat�n y el estado del rat�n en ese momento. Este valor se actualiza con
onMouseMove o cuando cambia el estado del rat�n (con un listener global).
Los valores de a, b y c son los siguientes:

a = estado del rat�n (8 posibles estados)
b,c = posici�n x e y del rat�n respectivamente (da una precisi�n de
4096x4096 p�xeles enteros)

De la misma forma, representamos el sistema l�quido con n�meros (que definen
posici�n, alto, ancho, estado, etc.). Posiblemente necesitemos m�s de 32
bits para almacenar los datos, con lo que podemos (debemos) crear n�meros
pareados 1-1 y almacenarlos en un par de Arrays.

Luego se filtra uno de estos arrays --por ejemplo el que contiene los
n�meros que definen el men� seleccionado-- y luego se aplica otro filtro
sobre esa selecci�n en el otro Array (que est� pareado) de forma que
un�vocamente obtengamos un �nico elemento (num�rico). Todo el sistema de
filtrado se har�a con operaciones de bit (3 comparaciones sobre 20.000
elementos de 32bits tardan en mi CPU ~170ms) que son extremadamente r�pidos
por la naturaleza del procesador.

Ese elemento num�rico podemos luego vincularlo a un objeto m�s complejo, que
contenga la referencia al MovieClip de la vista, almacene el texto, etc. El
acceso a estos objetos se har�a de forma �nica y directa y *si y solo si* ha
cambiado el estado del rat�n respecto al estado del objeto.

Los 8 estados con los que contamos no tienen por qu� ser exclusivamente
estados del rat�n, pueden definirse estados dependiendo de pulsaciones de
teclas, estado de la aplicaci�n o whatever.

HTH,

M.

 

> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Joseba Alonso
> Enviado el: viernes, 13 de mayo de 2005 12:00
> Para: [email protected]
> Asunto: RE: [ASNativos] Men� pull-down + Sistema "Zero Energy"
> 
> Jodo, Manu, no te sigo, puedes concretar un poco? Como 
> sabrias sobre que elemento se esta haciendo click?
> 
> Joseba Alonso
> www.5dms.com
> www.sidedev.net 
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En 
> > nombre de Manuel de la Higuera Enviado el: jueves, 12 de 
> mayo de 2005 
> > 21:37
> > Para: [email protected]
> > Asunto: RE: [ASNativos] Men� pull-down + Sistema "Zero Energy"
> > 
> > He seguido vuestro hilo y creo que se le podr�a dar un cambio 
> > (radical) de perspectiva. En primer lugar, descartar�a el uso de 
> > hitTest por motivos de rendimiento y cuestionar�a el uso de eventos 
> > --locales-- de rat�n porque puede presentar problemas (es un bug 
> > conocido que hay eventos de rat�n que se ven "eclipsados" 
> por otros).
> > 
> > Dado que se trata de un sistema l�quido, creo que es interesante 
> > plantear la cuesti�n utilizando exclusivamente n�meros: una clase 
> > intermedia que gestione qu� elemento se asocia a qu� 
> posici�n (que a 
> > su vez depende directamente del controlador del men�). El 
> rendimiento 
> > se ver�a mejorado considerablemente haciendo tambi�n un sistema de 
> > selecciones y, desde el punto del modelo, no se necesitar�a 
> m�s que un 
> > int�rprete del sistema (o no, depende de c�mo sea).
> > 
> > As� tambi�n conseguir�as la compatibilidad con un sistema 
> de n-niveles 
> > sin forzar la m�quina y permitir�as cambiar de sistema de 
> navegaci�n 
> > (click- up, rollover-click, etc.).
> > 
> > �2 c�ntimos? :D
> > 
> > M.
> > 
> > 
> > 
> > > -----Mensaje original-----
> > > De: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED] En nombre de Joseba Alonso 
> > > Enviado el: jueves, 12 de mayo de 2005 16:59
> > > Para: [email protected]
> > > Asunto: RE: [ASNativos] Men� pull-down + Sistema "Zero Energy"
> > >
> > > >         Necesito hacer el rollover tambi�n de los botones de
> > > segundo nivel,
> > > > con lo cu�l tengo que usar o un onMouseMove o un
> > > onEnterFrame, ya que
> > > > el onRollOver lo tiene asignado el bot�n (MC) de nivel 1
> > > que contiene
> > > > a estos botones (MCs) de nivel 2; �dices que el onMouseMove
> > > carga m�s
> > > > la m�quina que el onEnterFrame? Porque si es as�, entonces me 
> > > > quedo con el onEnterFrame...
> > >
> > > No entiendo porque el onRollOver te va a impedir usar el 
> onMouseUp...
> > >
> > > >
> > > >         Por otro lado, �hasta que punto es "eficiente" el
> > > hitTest? Vamos, si
> > > > es m�s r�pido y eficiente que calcular yo a pelo si est� o
> > > no est� el
> > > > puntero del mouse encima de mi MC, con algo como esto 
> por ejemplo:
> > > >
> > >
> > > Eso ya no lo se, la verdad, pero creo que seria mas rapido el 
> > > hitTest al tratarse de codigo nativo. C++ en el Flash 
> Player contra 
> > > codigo interpretado vamos.
> > >
> > > >
> > > >         Otra cosa, �el handler no se asocia �nicamente al MC
> > > d�nde se define?
> > > > Vamos, que si yo capturo el onMouseMove y el onPress en un MC 
> > > > determinado (como hago en ese cacho de c�digo, el this
> > > ser�a referente
> > > > a un MC determinado, no a la timeline principal), �no se supone 
> > > > que ese handler solo se va a activar cu�ndo estoy en ese MC? �Y
> > > no cu�ndo
> > > > no est� en ese MC?
> > >
> > > Si que se asocian a un clip, pero los eventos onMouseUp, 
> onMouseDown 
> > > y onMouseMove saltan independientemente de la posici�n 
> del raton e 
> > > independientemente de la posici�n del clip. Mientras que 
> onPress y 
> > > onRelease si que requieren que el raton este sobre del clip.
> > >
> > >
> > > > Por que si chequea est� o no est� encima del MC, lo m�s 
> eficiente 
> > > > ser�a crear MC controladores "dummy" en la timeline 
> principal, y 
> > > > chequear varias cosas de un solo plumazo con ellos.
> > >
> > > En realidad creo que si, pero para controlar clicks es 
> infinitamente 
> > > mas comodo usar el onPress y onRelease por el tema del 
> scope cuando 
> > > salte el evento. Adem�s controlar en un solo handler lo 
> que se tiene 
> > > que hacer con un click a nivel de aplicaci�n seria 
> bastante complejo 
> > > e inficiente desde el punto de vista de la arquitectura.
> > >
> > > Espero haberte ayudado ;)
> > >
> > > Un saludo,
> > >
> > > Joseba
> > >
> > > ----------------------------------
> > > Lista ASNativos:[email protected]
> > > http://www.5dms.com/listas
> > > ----------------------------------
> > >
> > 
> > ----------------------------------
> > Lista ASNativos:[email protected]
> > http://www.5dms.com/listas
> > ----------------------------------
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------
> 

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a