AS3 – Singleton
Publicado por Iván Gajate el 6 de junio de 2011 en AS3, Flash, Patrones de diseño | No hay comentarios »
Uno de los patrones de diseño que mas útiles en mi opinión es el Singleton. Si queremos almacenar datos relevantes para nuestro proyecto y que sean accesibles fácilmente desde cualquier sitio es la mejor opción. O para la típica cartela de avisos que solo puede estar abierta una vez y que tiene que llamarse desde muchos sitios.
Para construirlo a mi esta es la forma que mas me gusta:
package { public class Modelo { private static var _instance:Modelo; public function Modelo(singletonenforcer:SingletonEnforcer) { if (singletonenforcer == null) { throw new Error("Modelo es un Singleton. Para acceder a una instancia hacedlo mediante Modelo.getInstance()"); return; } } public static function getInstance():Modelo { if (!_instance) { _instance = new Modelo(new SingletonEnforcer()); } return _instance; } } } class SingletonEnforcer{}
De esta manera podemos acceder así:
Modelo.getInstance().guardarDatos(); Modelo.getInstance().recogerDatos();
The Museum Of Me
Publicado por Iván Gajate el 31 de mayo de 2011 en Sitios Destacados | No hay comentarios »27M – Revolución de Barcelona
Publicado por Iván Gajate el 27 de mayo de 2011 en Eventos | No hay comentarios »AS3 – Baricentro y Ortocentro
Publicado por Iván Gajate el 26 de abril de 2011 en AS3 | No hay comentarios »
Si queremos jugar un poco con las circunferencias y sus radios, radios de curvatura, etc…, esto nos va a venir muy bien:)
http://mx.answers.yahoo.com/question/index?qid=20070313201440AAtsHft
Y con Vectores:
Los enlaces me los ha pasado Drus
PHP – Escribir un XML con CDATA Usando SimpleXML
Publicado por Iván Gajate el 26 de abril de 2011 en Desarrollo Web | 3 comentarios »
Si usamos la fantástica librería de PHP SimpleXML para leer y construir xml, nos habremos dado cuenta que no tiene soporte para meter datos en etiquetas CDATA, lo cual es un engorro.
Tras mucho buscar, he encontrado este truco que soluciona el problema
Consiste en extender la clase SimpleXml para ampliarla con DOM, que sí tiene soporte para CDATA, y devuelve un objeto SimpleXML
Así, si nos creamos una clase “SimpleXMLExtended.php”
<?php class SimpleXMLExtended extends SimpleXMLElement { public function addCDATA($cData) { $node = dom_import_simplexml($this); $no = $node->ownerDocument; $node->appendChild($no->createCDATASection($cData)); } } ?>
Podemos crear un XML así:
<?php Header('Content-type: text/xml; charset=utf-8'); require_once('SimpleXMLExtended.php'); $miXML = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><usuario></usuario>'); $nombre = $miXML->addChild('nombre'); $nombre->addCData('Iván Gajate'); echo $miXML->asXML(); ?>
Y devolverá esto:
<?xml version="1.0" encoding="UTF-8"?> <usuario> <nombre><![CDATA[Iván Gajate]]></nombre> </usuario>
AS3 – Cargar Assets Usando un Proxy
Publicado por Iván Gajate el 26 de abril de 2011 en AS3, Flash | 1 comentario »
Cuando tratamos de cargar imágenes o xmls de otros dominios, nos encontramos con el problema de que por seguridad no es posible hacerlo directamente. Si tenemos acceso al otro dominio, podemos usar el “crossdomain.xml”, pero si no, podemos recurrir a un proxy.
Para entenderlo mejor, aquí hay un tutorial muy explicativo.
La forma de saltarse el problema es cargar las cosas con un php intermedio que se encuentra en nuestro servidor (proxy), y que sencillamente nos devuelve lo que le hemos pedido en el formato que corresponde. Así, con este php en nuestro servidor (proxy.php):
<?php $filename = $_GET['url']; $ext = pathinfo($filename, PATHINFO_EXTENSION); switch ($ext) { case "jpg": header('Content-Type: image/jpeg'); readfile($filename); break; case "gif": header('Content-Type: image/gif'); readfile($filename); break; case "png": header('Content-Type: image/png'); readfile($filename); break; default: header('Content-Type: text/xml'); readfile($filename); break; } ?>
En lugar de llamar a:
http://www.otrodominio.com/imagen1.jpg
Lo haremos a:
http://www.midominio.com/proxy.php?url=http://www.otrodominio.com/imagen1.jpg
De esta manera nos saltaremos el problema del sandbox
AS3 – Bajar Volumen Global
Publicado por Iván Gajate el 20 de abril de 2011 en AS3, Flash | No hay comentarios »
Con estas líneas podemos cambiar el volumen de nuestra película flash de forma global:
function setearVolumen(value:Number):void { var transform:SoundTransform = new SoundTransform(); transform.volume = value; flash.media.SoundMixer.soundTransform = transform; }
El código es de Esedeerre que está muy liado para ponerla en su blog, pero era muy interesante postearla. Gracias Dani!!
AS3 – FullScreen
Publicado por Iván Gajate el 7 de abril de 2011 en AS3, Flash | 2 comentarios »
Poner una web a fullscreen es bastante fácil, pero hay un par de detalles que si no los conocemos nos puede llevar un tiempo descubrirlos.
- En el HTML hay que poner el parámetro allowFullScreen=”true”
- El código que pasa a fullScreen tiene que estar obligatoriamente en la función que recibe el evento de ratón. No vale que una función llame a otra función y esta pase a modo fullScreen.
Este es el código para poner nuestro flash a fullscreen:
function mostrarFullScreen(e:MouseEvent):void{ stage.displayState = StageDisplayState.FULL_SCREEN; }
Si no indico nada, el swf se redimensiona hasta cubrir la pantalla por completo, pero puedo indicarle la zona sobre la que quiero hacer zoom, así:
stage.fullScreenSourceRect = miVideo.getRect(this); // O a mano stage.fullScreenSourceRect = new Rectangle(0, 0, 300, 200);
Además, podemos escuchar cuando se sale del modo full screen.




