JQuery para principiantes

Aquí os dejo unos video tutoriales para todos aquellos que no sepais jquery y que esteis interesados en aprender. Son 15 video tutoriales de una duración aproximada de 10 minutos cada uno donde enseña ejemplos prácticos de uso de jquery.

La pega es que está en inglés. Aunque se entiende muy bien. Es muy fácil seguir el hilo si se tiene un nivel medio de inglés.

Aqui os dejo el enlace
http://blog.themeforest.net/tutorials/jquery-for-absolute-beginners-video-series/

Espero que os sirva

#006 ActionScript [Q] Tips: contains()

Este tip es muy directo ya que simplemente comentaré uno de los métodos que obtienen todos las clases que extienden de DisplayObjectContainer, ya sean propias o las consabidas Stage, Sprite, Loader y MovieClip.

En realidad lo interesante de esta función es que no solamente funciona para descendientes directos en la jerarquia de la Display List, sino que busca el resultado en todos los descendientes. Veamos un ejemplo:

Actionscript:
  1. var abuelito:Sprite = new Sprite();
  2. var padre:Sprite = new Sprite();
  3. var nieto:Sprite = new Sprite();
  4. var unoQuePasabaPorAlli:Sprite = new Sprite();
  5.  
  6. padre.addChild(nieto);
  7. abuelito.addChild(padre);
  8. addChild(abuelito);
  9. addChild(unoQuePasabaPorAlli);
  10.  
  11. trace(abuelito.contains(padre)); // true
  12. trace(abuelito.contains(nieto)); // true
  13. trace(abuelito.contains(unoQuePasabaPorAlli)); // false

Como vemos aunque pasemos como parámetro un elemento de la Display List que no es un descendiente directo del elemento sobre el que buscamos, el resultado es igualmente válido, con lo que esta función nos permite conocer a cualquier nivel si un elemento de la Display List contiene a otro elemento de la misma.

Hay que tener en cuenta que quien llama a contains tiene que ser un objeto de una clase que herede en algún nivel de DisplayObjectContainer, pero el objeto que buscamos en su interior no tiene por qué serlo (por ejemplo un campo de texto). Además aunque en el ejemplo haya añadido abuelito a la DisplayList, contains funciona aunque el contenedor no forme parte de ella (y por tanto ninguno de sus descendientes), con lo que aunque hay usado Display List no es necesariamente estricto (lo siento, me surge llamarlo así aunque los elementos no estén en pantalla).

Nokia 6210 GPS I

El siguiente post y el siguiente sobre este tema para muchos de vosotros quizás no tenga demasiada relevancia pero con que a uno le ahorre los dolores de cabeza que he tenido para conseguir hacer funcionar el GPS de mi Nokia 6210 navigator me doy por satisfecho.

Lo primero que tengo que aclarar es que el GPS es totalmente gratuito, es decir el servicio que nos ubica en el lugar que nos situamos mediante coordenadas es gratis (siempre y cuando sólo utilicemos el GPS integrado en el móvil, esto lo explicare más adelante), pero el programa que utilizamos para ir a un destino, es decir, el que nos calcula la ruta que debemos seguir y nos guía cuesta sus dineros. De este programa es del que nos dan licencia durante un periodo de tiempo, en mi caso Vodafone me la ha dado por 24 meses (más de lo que me durara el móvil, jeje), orange sé que la da por 6 meses. Pues bien, este programa debe realizar una conexión a internet la 1º vez que intentamos calcular una ruta, conexión que nos costará dependiendo de la tarifa que tengamos de datos, pero vamos que 1 euro como mucho :). Esta conexión es para registrar la licencia y desde ese día tendremos 2 años por delante con el servicio totalmente gratuito.

Ahora pasaré a  explicaros como desactivar los servicios de posicionamiento del móvil y quedarnos sólo con el gratuito. Como bien dije antes el servicio que nos ubica en un punto de la geografía es gratis pero siempre y cuando sólo tengamos activado como método de posicionamiento el GPS integrado del teléfono. Para ello debemos ir a: ajustes/generales/posicionamiento/métodos de posicionamiento/ y ahí sólo dejar marcado el GPS integrado, en ningún caso dejar activo alguno de los demás ya que eso haría que teléfono para ayudar a posicionarse más rápidamente utilizara estos métodos de posicionamiento que no son gratuitos.

De esta forma tenemos ya funcionando el GPS en el móvil perfectamente, eso si, al condenao le cuesta un buen rato conseguir ubicarse pero una vez ubicado va como la seda. Un truco para que se posicione más rápidamente es abrir el teclado y ponerlo con un ángulo de 45º mirando hacia el cielo.

¿Pensáis que ya esta todo? Para nada, cual fue mi sorpresa cuando me lo llevo al coche y el GPS guiar me guía con flechitas en la pantalla pero ¿Porqué no me habla? ¡Si el volumen esta al máximo!, me cago en to... Este tema lo abordaré en el próximo post, ya os adelanto que no perdáis el tiempo buscando en opciones del teléfono

#005 ActionScript [Q] Tips: Singleton en AS3

Para los que trabajábamos con clases en AS2, no era raro emplear un Singleton para alguna de ellas, con le objetivo de tener una clase general para toda la aplicación con la capacidad de acceder a ella desde cualquier punto de manera limpia. Con AS2 podíamos declarar constructores privados y dejar un código tal que así:

Singleton AS2

Actionscript:
  1. class Ejemplo
  2. {
  3.     private static var _instancia:Ejemplo;
  4.  
  5.     private function Ejemplo () { }
  6.  
  7.     public static function getInstancia():Ejemplo
  8.     {
  9.         if (_instancia == null)
  10.         {
  11.             _instancia = new Ejemplo();
  12.         }
  13.         return _instancia;
  14.     }
  15. }

Con esas líneas de código lográbamos que la clase solamente se pudiera instanciar una vez, y mediante Ejemplo.getInstancia(), podíamos tener la referencia a ella en cualquier punto de la aplicación. Genial.

Con AS3, no podemos declarar constructores privados, con lo que este modelo de Singleton nos deja de servir, por suerte hay alguna característica nueva en AS3 que nos permite mantener nuestros Singletons sin tener que cambiar demasiado la filosofía:

Singleton AS3

Actionscript:
  1. package
  2. {
  3.     class Ejemplo
  4.     {
  5.         private static var _instancia:Ejemplo;
  6.  
  7.         public function Ejemplo(enforcer:SingletonEnforcer) {}
  8.  
  9.         public static var getInstancia():Ejemplo
  10.         {
  11.             if (_instancia == null)
  12.             {
  13.                 _instancia = new Ejemplo(new SingletonEnforcer());
  14.             }
  15.             return _instancia;
  16.         }
  17.     }
  18. }
  19.  
  20. class SingletonEnforcer { }

No he traducido el SingletonEnforcer porque no encontraba una traducción que me gustara más que el inglés, y además es que yo lo uso así, por lo que me suena muy raro ponerlo de otra manera, de hecho en vez de _instancia para la propiedad privada, le enchufo _instance, y lo mismo con le nombre del método estático, pero vamos que como el blog en castellano, hay que castellanizar lo más que se pueda... XD

Este tip viene de la mano de un libro que pasó por mis manos hace tiempo, pero que es de muy recomendable lectura: Advanced ActionScript 3 Design Patterns.

#004 ActionScript [Q] Tips: reemplazar elementos de un array

Muchas veces veo como para realizar determinadas operaciones con arrays la gente emplea operaciones de intercambio, recorrido, etc. y no analiza a fondo las posibilidades que nos dan a veces los métodos de la clase Array.

En esta ocasión lo que veremos es cómo realizar inserciones en una posición dada, o intercambios de elementos. Para ello el método splice de la clase Array nos da unas cuantas posibilidades, ya que nos permite eliminar, añadir elementos a partir de una posición dada, intercambiar un elemento existente por otro nuevo, o incluso eliminar un grupo y poner en su lugar otro.

Para mostrar las posibilidades ponemos aqui un poquito de código (que es válido tanto para AS2 como para AS3):

Actionscript:
  1. var test_arr:Array = new Array("uno","XXX","YYY","cuatro","cinco");
  2. trace("ARRAY INICIAL: "+test_arr);
  3. // eliminar 2 elementos que no interesan
  4. test_arr.splice(1,2);
  5. trace("CONTENIDO ARRAY TEST: "+test_arr);
  6. // añadir 2 elementos
  7. test_arr.splice(1, 0, "DOSX", "TRESX");
  8. trace("CONTENIDO ARRAY TEST: "+test_arr);
  9. // intercambiar o lo que es lo mismo eliminar + añadir
  10. test_arr.splice(1, 2, "dos", "tres");
  11. trace("CONTENIDO ARRAY TEST: "+test_arr);

Como podéis ver con una simple línea podemos lograr varias operaciones que de usar el clásico pop, push, etc se complicarían bastante.

Horario de verano

Horario de Verano de Q-interactiva, Agosto de 2009

Agosto es sinónimo de veranito, y por mucho que nos guste lo que hacemos tenemos que aflojar un poco el pie del acelerador, para poder tomar aire y afrontar nuevos retos con energías y frescura. Y una buena manera es aprovechar la calma chicha que hay en agosto de manera generalizada para cambiar nuestro horario, y poder aprovechar las tardes para tener un poco de playa tiempo libre (no me di cuenta de que estoy escribiendo desde asturias...)

La cosa es que nuestro horario durante el mes de agosto será de 09.00 a 14.00 horas, y por las tardes si llamas podemos vaticinar que nadie será el que te responda. Eso no quita que nos dejes un mail, y sigamos en contacto.

Además tenemos planes para el último fin de semana de agosto, por si aun no lo sabéis tenemos una nueva cita con los imprescindibles Talleres de Verano Subflash en Alicante, con lo que el viernes 28 no habrá mucha actividad por la oficina.

Quedaís avisados!

Recursos desarrollo de juegos en flash

Recursos para el desarrollo de juegos en flash
Navengado por la web.... cosa que hago muy a menudo y que recomiendo, tanto si es una navegación orientada con un objetivo de búsqueda de información, como dejarse llevar de un link a otro, muchas veces de rebote acabas dando con sitios interesantes que de otra manera quizás google no te hubiera mostrado.

Así dí con éste portal totalmente orientado al desarrollo de juegos en flash, cosa que sabéis que nos encanta y que ya hemos perpetrado en unas cuantas ocasiones (siempre que nos dan oportunidad y nos dejan).

En él podrás encontrar recursos no solo a nivel de código, sino conceptuales y gráficos, como técnicas para diferentes efectos habituales en el desarrollo de juegos, animación de elementos o personajes, etc. Vamos que cubren unos cuantos áreas, y no viven solo de código, que también. Podrás encontrar consejos, inspiración y tutoriales entre otras cosas.

Recursito "pa la saca", y como creo que no lo mencioné aquí antes, otro totalmente indispensable, rey por excelencia de este tipo de información para flash: GOTOANDPLAY con su arsenal de artículos super currados, de los creadores del buenísimo SmartFoxServer.

Y porque también nos gusta jugar... unos links pa echar unos vicios:

Icon Finder, oiga señoraaaa! iconos para llevaaar!

Icon Finder, website con multitud de set de iconos con licencias de uso personal y comercial

Hace ya un tiempo que dí con esta web: IconFinder, y la verdad que es un interesante recurso para los que nos gusta perdernos durante horas y horas recorriendo la web por páginas de imágenes, iconos, tipografías, pinceles de photoshop, tutoriales... empiezas buscando algo concreto y te das cuenta que te has tirado 2 horas recopilando material para posibles futuros proyectos.

Punto fuerte de la página que os comentamos: indica de manera bastante clara en cada pack el tipo de licencia con el que cuenta el pack, con lo que nos podemos ahorrar tiempo seleccionando lo que podremos usar en nuestros proyectos personales, o comerciales, dependiendo...

Ahora mismo cuenta con 167 sets de iconos (con un total de más de 100,000 iconos) de estilos variados y temáticas bastante prácticas para el mundo web. Asi que ale, si te gusta, ya tienes para pasarte un buen rato echando el ojo, que no será por las posibilidades que ofrece pudiendo navegar por categorías o buscar directamente un término (para acceder a iconos individuales).