Con las novedades del Flash Player 10.1, Flash Lite 4 y AIR 2.0 existe una que a los usuarios de iphone o macbook les debe ser muy familiar, el multitouch. En este tip enseñaremos como utilizar la clase TransformGestureEvent que nos permite zoom y rotar elementos. Para eso necesitamos Flash Builder con el SDK de AIR 2.0 que ya pueden descargar del sitio Adobe Labs. Cuando Flash CS5 sea liberado, también podrán usarlo para sus aplicaciones.
Una vez configurado el SDK de AIR 2.0, creamos un proyecto FLEX del tipo Desktop (Adobe AIR) y lo primero que haremos es cargar una imagen que usaremos de ejemplo:
Código :
var l:Loader = new Loader();
l.load(new URLRequest("logo.png"));
l.x = l.y = -100;
$__img1 = new Image();
$__img1.addChild(l);
this.addElement($__img1);
$__img1.x = $__img1.y = 200;
Con eso agregamos un elemento a nuestro stage de la aplicación, y ahora pasamos a agregar un evento para que detecte la rotación, usaremos el evento TransformGestureEvent del tipo GESTURE_ROTATE
Este evento se dispará cuando se detecte los dos dedos sobre el stage y hagas el movimiento de rotación
Código :
private function _rotation(e:TransformGestureEvent):void{
$__img1.rotation += e.rotation;
}
Ahora, si queremos usar el zoom o escalar los elementos abriendo o cerrando los dedos sobre el stage usamos GESTURE_ZOOM del evento TransformGestureEvent.
Aquí es necesario un IF porque siempre está detectando que el zoom actual es 1 cada vez que interactuas, entonces si juntas los dedos al momento de querer hacer ZoomIN, irá de 1.0, 0.9, 0.8 así sucesivamente.
Esta nueva posibilidad de AIR abre un montón de posibilidades, está genial
Buen tip Elder Por:Zguillez
Ok, en este momento, es posible usar ese ejemplo en un Ipod Touch?? Por:rolv
ramiro_olvera :
Ok, en este momento, es posible usar ese ejemplo en un Ipod Touch??
Tendrías que torrentear conseguir Flash CS5 beta, usar el compilador de apps Flash para iPhone e insertarla en tu Touch usando el SDK. Por:Freddie
Muy bueno elder, como siempre.
Mi pregunta es porque en la primera parte del codigo, creas $__img1
y a esta le haces el addChild del elemento que cargaste?' que diferencia tiene con utilizar directamente la var l con la que has cargado, o sea, porque no utilizas el comun:
Código :
var l:Loader = new Loader();
l.load(new URLRequest("logo.png"));
l.x = l.y = -100;
addChild(l):
@bubudrc hola, nada del otro mundo, sólo poder acceder a lo métodos y propiedades de un Sprite, por ejemplo starDrag(); Por:eldervaz
@eldervaz, muchas gracias por tu respuesta. La verdad es que nunca lo había manejado de esa forma, pero será cuestión solo de investigar un poco más. Muchas gracias. Por:bubudrc
eldervaz, yo hice unas pruebas con esta nueva api y la verdad es que no logre usar multiples dedos, solo con un dedo. Es cierto o simplemente me habra faltado algo.! Por:Zandy
disculpa 2 dedos maximo.... Por:Zandy
@Zandy, según se la cantidad de dedos que puedes utilizar en este tipo de aplicaciones, depende totalmente del medio.
Es decir, la superficie en donde estas tocando determina la cantidad máxima que detecta. Algunos usan 2 otros 5, pero depende del dispositivo en que corras la aplicación.
Puedes fijarte en la lista de preguntas frecuentes que ha contestado Lee Brimelow en su blog.
Vaya, yo tambien probe con un HP TouchSmart, gracias bubudrc, realmente lo que necesitaba saber acerca del tema
salu2 Por:Zandy
@Zandy hola, espero que tus dudas estén resueltas por Lee, igual, este post es más de programación, estoy preparando uno nuevo más de capacidades y limitantes espero el fin de semana terminarlo Por:eldervaz
wow, con ansias espero a este fin de semana.. , pues hay una cantidad de equipos de esta naturaleza y no todos hablan en el mismo idioma. ( Podra fp10.1 transparentar esto ? ) Por:Zandy
Zandy :
wow, con ansias espero a este fin de semana.. , pues hay una cantidad de equipos de esta naturaleza y no todos hablan en el mismo idioma. ( Podra fp10.1 transparentar esto ? )
No, funciona deacuerdo al dispositivo ya lo verás en mi post Por:eldervaz
me quede esperando eldervaz Por:Zandy
Hola, entiendo que detras de todo esto hay muchos puntos que revisar, no se si valdria la pena tocar estos puntos, por ejemplo:
1.- funciona con pantallas tactiles como touchsmart? el ejemplo de que esto es solo con ciertos dispositivos esta en: http://gestureworks.com/
he estado trabajando mucho en el software del punto 2 y he logrado hacer funcionar este software y es una maravilla pero tiene sus limitantes como desarrollar tus propias aplicaciones y cuando lo haces tienes que compilar con el SDK de este software para que trabaje, cosa que no he logrado, volviendo al tema valdria la pena iniciar desde los principios basicos para aclarar muchas dudas.