Creando una aplicación de fotografía para Android con Adobe AIR – Part 2/2

Continuando con nuestra aplicación para Android sobre Adobe Air. Hasta el punto en el que quedamos en la parte 1. Al corre la aplicación encontraremos que se despliega el video que arroja la cámara nada mas sobre el contenedor de video creado (Figura 1).
Captura de pantalla 2014-08-25 a la(s) 9.59.57

Figura 1

Ya agregaremos la funcionalidad de capturar la imagen con el siguente codigo Con esto nuestra imagen sera almacenada en la memoria del dispositivo (si este soporta esta funcionalidad). Para  nuestro caso lo que grabaremos sera todo lo que esta contenido en nuestro MovieClip bg. Por ultimo agregamos las opciones de rotar la cámara 90 grados, cambiar la cámara y que cuando el usuario presione el botón back del teléfono se salga de la aplicación.

Creando una aplicación de fotografía para Android con Adobe AIR – Part 1/2

En esta entrada les explicare como crear una aplicación para tomar fotografias y guardarlas en en carrete de fotos de tu celular o tableta Android. Una alternativa para desarrollar aplicaciones “nativas” es Adobe Air, que es como una maquina virtual que se encargara de hacer corre nuestra aplicación en el dispositivo. Esta aplicación la podriamos crear con Adobre Flash o Adobe Flash Builder. Aqui les mostrare como crearla con Adobe Flash CS 6  
adndroidair

Figura 1

Nuestra aplicación nos permitirá tomar fotos y enmarcarlas en un cartel tipo el viejo oeste como el de la figura 2  
foto

figura 2

 

AS3: Segundos a Formato Hora

Tratando de crear un video player personalizado em encontre con la necesidad de coger el tiempo que me arroja el streaming que es en segundos y pasarlo a el formato conocido de h:mm:ss. Asi qeu cree esta clase estatica muy sencilla que hace esto de  manera  facil.  Podemos testiar nuestro codigo de la siguiente manera: Obteniendo para este caso “0:03:30″. Nuestro Clase estaria definida de la siguiente forma:

Actionscript 3.0 sendAndLoad

Una de las cosas mas utilizadas a la hora de hacer una aplicacion es la comunicacion con ficheros externos (.php, .asp, .aspx etc), para realizar diversas tareas. Como sabemos o si no lo sabes te comento que esta funcion ya no existe dentro del Core de ActionScript 3 asi que si quieres hacer eso que podias hacer con el sendAndLoad en AS2, solo sigue esta pequeña guia. Si estamos trabajado sobre un AS, tenemos que importar la librerias necesarias Creamos el elemento de envio y donde se recibe los datos de respuesta Tambien creamos un elemnto tipo URLVariables que es donde se almaceneran cada una de las variables que se enviaran a la pagina. Luego tenemos los eventos asociados, el primero es el de respuesta, que se ejecuta una vez completado el llamado y si este fue exitoso. El segundo es el de error, en caso de no tener respuesta por cualquier razon (no existe el vinculo, fallo de conexion, etc) El archivo php es el siguiente: Este es un ejemplo de como quedaria con algunas funcionalidades adicionales:

Mi Primer mundo para BOX2D en Actionscript 3

Dentro del lo motores fisicos que mencione en un post anterior esta BOX2D que para mi es el mejor y con el cual he empezado a desarrollar proyectos, la idea ante todo es conocer muy bien su funcionamiento y saber donde esta la documentacion para de esta forma saber todas las posibilidades que nos ofrece. La wiki de BOX2D la puede encontrar aqui. La libreria de flash se puede descargar aqui. El primer elemento, o prime paso que se sebe realizar es la creacion del mundo, que es donde los elementos van a interactuar. lo que vamos a realizar se puede ver a continuacion. Bodies y Shapes (cuerpos y formas) En este mundo todas las particulas de Box2D son cuerpos rigidos es decir tienen un cuerpo y una forma asociada; el cuerpo tiene unas propiedades como lo son la masa, la posición, el factor de amortiguamiento en cambio la forma maneja las colisiones, la fricción, la densidad entre otras variables. Teniendo todos estos datos, box2d puede llevara  cabo los calculos necesarios para darle el realismo necesario a nuestro mundo.

Basicamente nuetro primer ejemplo con BOX2D consta de 2 objetos, una superficie que es una mesa y un objeto que es una caja, coloque un botón para mirar el debug de box2d y asi no ensuciar la animación. Dentro del mismo codigo he colocado la explicacion de cada uno de los elementos utilizados para la programación. Esperen el siguiente tutorial donde agregare nuevo elementos :-) Archivos para Descargar.

ActionScript 3 Motores fisicos

fisica Buscando motores de control de variables fisicas me encontre con varias opciones como son (historia del arte): 1- The Fisix Engine: Este motor solo puede ser usado en flex, tiene una buena documentacion, y ha creado una comunidad al rededor de esta comunidad. Visitar Sitio 2. ActionScript Physics Engine Estas librerías físicas pueden ser usadas tanto en flash como Flex, es muy facil de usar, aunque se encuentra muchos tutorial y ejemplos muchos esta enfocados a Flex. Visitar Sitio 3. FOAM De las librerías físicas creo que es la peor documentada, toca ver ejemplos para poder entender su funcionamiento Visitar Sitio 4. Box2DFlashAS3 Estoy en el apredizaje de esta librería que para mi es la más poderosa y la mejor documentada, se basa en una creada para c++ y empezare a explicar mas adelante su manejo. Visitar Sitio

Flash Screen con swfObject (javascript)

Por inercia muchas personas confunden el termino fullscreen y lo asocian al tamaño de la animación dentro del navegador (piensan automaticamente poner tanto alto como ancho en 100%), pero en primera instancia fullscreen es relativo a la pantalla completa del ordenador. La forma de hacer un fullScreen lo colocare en un siguiente Post. Por ahora me limitare a explicar algo sumamente util y es el control del tamaño de la pantalla. Con esto me refiero a que podemos tener una animación de 800×600 y al tener una pantalla con una resolución mayor el contenido se desplegara sobre toda esta, pero si tenemos una pantalla de menor tamaño ó se hace un resize de la ventana no queremos que la informacion se pierda y por ende queremos que cuando suceda esto salga el scroll respectivo. El Problema It may be worth pointing out that in most cases there are two distinct reasons a flash website might have, for wanting to enable the browser scrollbar. * Si la ventana se ajusta a un tamaño menor al que fue diseñado se deberia agregar un scrollbar. * El contenido es mas largo que el diseño original.

SWFResize, SWFForcesize y SWFObject

SWFResize es una pequeña adicion para el codigo  SWFObject . Este codigo funciona para el SWFObject anterior al 2, igual tambien existe una implementacion utilizando JQuery que mas adelante explicare. Lo realmente importante esta en la funcion createFullBrowserFlash() que es donde se agregara el tamaño minimo de presentacion de nuestra pelicula, en este caso el tamaño es de 980×553 px, de igual forma la funcion setHeight() setiara el alto de la animacion de acuerdo al tamaño que escogimos (553px). Ya reemplazas los puntos donde se refiere al swf por el archivo respectivo y listo. El codigo completo [js]<br /> &lt;script type="text/javascript"&gt;// &lt;![CDATA[<br /> var size = getViewportSize();<br /> function getViewportSize()<br /> {<br /> var size = [0, 0];<br /> if (typeof window.innerWidth != "undefined") {<br /> size = [window.innerWidth, window.innerHeight];<br /> }<br /> else if (typeof document.documentElement != "undefined" &amp;#038;&amp; typeof document.documentElement.clientWidth != "undefined" &amp;#038;&amp; document.documentElement.clientWidth != 0) {<br /> size = [document.documentElement.clientWidth, document.documentElement.clientHeight];<br /> }<br /> else {<br /> size = [document.getElementsByTagName("body")[0].clientWidth, document.getElementsByTagName("body")[0].clientHeight];<br /> }<br /> return size;<br /> }<br /> function createFullBrowserFlash()<br /> {<br /> swfobject.createCSS("html", "height:100%;");<br /> swfobject.createCSS("body", "height:100%;");<br /> swfobject.createCSS("#container", "margin:0; width:100%; height:100%; min-width:980px; min-height:553px;");<br /> }<br /> function setHeight( h )<br /> {<br /> if ( h &lt; size[1] ) h = "100%";<br /> var el = document.getElementById("container");<br /> if ( h != "100%" ) el.style.height = h &lt; 553 ? "553px" : h + "px"; else el.style.height = "100%"; } var flashvars = { }; var params = { "allowscriptaccess": "samedomain" }; swfobject.embedSWF("main.swf", "content", "100%", "100%", "9.0.0", false, flashvars, params); if (swfobject.hasFlashPlayerVersion("9.0.0")) { swfobject.addDomLoadEvent( createFullBrowserFlash ); }<br /> // ]]&gt;&lt;/script&gt;[/js]