Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-settings.php on line 570

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /usr/home/isaacleon.com/web/blog/wp-includes/theme.php on line 1109
Isaac Leon

Entrevista en Ameets

Entrevista en ameets

Después de pasar unas semanas en Buenos Aires, por fin vengo con las pilas un poco más cargadas. En el siguiente post os escribo para recomendaros una nueva comunidad creativa, Ameets. En ella podréis ver muchísimos trabajos, valorarlos, crear contactos y debatir lo que se os ocurra.
Os dejo también una pequeña entrevista que me hicieron los chicos de Ameets y aprovecho la ocasión para mandarles un saludo y agradecerles su interés, fue un placer colaborar para ellos.
Así que ya sabéis, si queréis conocer gente creativa de todo tipo, Ameets es una muy buena propuesta.

La entrevista.
Ameets.

Forever Young

Forever Young

Ojalá tantas cosas pudieran resumirse en tan solo dos palabras. Aquí os enlazo dos vídeos para que los disfrutéis, para que os inspiréis, para que lo mandéis todo a la mierda, para que VIVÁIS.

Original.
Seat 25º Aniversario.

GoogleMaps + AS3

GoogleMaps with AS3

Hola a todos, aquí os dejo un ejemplo para que os lo podáis descargar y trastear,
se trata de un mini ejercicio para poder insertar googlemaps en flash. Decir que está
programado con AS3. He deshabilitado opciones que tenia más desarrolladas para que fuera más sencillo de entender y no liaros tanto. Podéis hacer zoom, hacer una búsqueda, cambiar de vista, moveros por el dragPanel, y ver como se posiciona una marca customizada.

Este seria el código que como veréis no es muy complejo ni muy largo. Más adelante quizás incorporo alguna utilidad más como poner videos o que se yo :p…


 
/*
  
   * BUSCADOR  GOOGLE MAPS WITH AS3
   *
   * @author     Isaac León (KAAX)
   * @version    1.0.0
   * @code       AS 3.0
   * @email      hola@isaacleon.com
   * @url        www.isaacleon.com
   * @blog       www.isaacleon.com/blog
  
*/
 
package com.kaax.clases {
  
 
        //IMPORTS//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    import com.google.maps.controls.*;
    import com.google.maps.styles.FillStyle;
    import com.google.maps.styles.StrokeStyle;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.geom.*;
    import com.google.maps.LatLng;
    import com.google.maps.Map;
    import com.google.maps.MapEvent;
    import com.google.maps.MapMouseEvent;
    import com.google.maps.MapType;
    import com.google.maps.services.ClientGeocoder;
    import com.google.maps.services.GeocodingEvent;
    import com.google.maps.overlays.Marker;
    import com.google.maps.overlays.MarkerOptions;
    import com.google.maps.InfoWindowOptions;
    import flash.display.Stage;
    
      public class Buscador{
      
       //INICIALIZAMOS VARIABLES//////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
        // ESTA APPYKEY TENÉIS QUE CAMBIARLA  POR LA VUESTRA PARA QUE ESTÉ ASOCIADA A VUESTRO DOMINIO
            private var appyKey:String ="ABQIAAAA6wzkJ5pSCnsden7rffzX1BSZMDsZNlBtwbn4yRg11-JRawRw8BSe_1VnBDtJk4ejkS6488Fc0fGzgQ";
        private var map:Map;
            private var punto:Marker;
            private var geo:ClientGeocoder;
            private var gps:MovieClip;
            private var control:MovieClip;
      private var mcStage:Stage;
      
      
      
      public function Buscador( _mc:Sprite, control:MovieClip, gps:MovieClip){
        
         this.mcStage = _mc.stage;
         this.control=control;
         this.gps=gps;
      }
    
      //INICIAMOS LOS OBJETOS EN ESCENA
           public function main():void {
  
      
          // CREAMOS UN CONTENEDOR PARA EL MAPA
          var puntoMapa:MovieClip = new MovieClip();
          puntoMapa.x = 235;
          puntoMapa.y = 175;
            this.mcStage.addChild(puntoMapa);
          
          
          //AÑADIMOS EL MAPA A SU CONTENEDOR
          map = new Map();
          map.key = appyKey;
          map.setSize(new Point(573, 420));
          map.addEventListener(MapEvent.MAP_READY, iniciarMapa);
          puntoMapa.addChild(map);
          
          
          //AÑADIMOS AL ESCENARIO LOS DOS ASSETS, LA PANTALLA DEL GPS Y EL PANEL DE CONTROL
          gps.buttonMode = false;
          gps.mouseChildren = false
          gps.x = 133;
          gps.y = 60;
          this.mcStage.addChild(gps);
          gps.mouseEnabled = false;
          control.x = 133;
          control.y = 60+gps.height;
          this.mcStage.addChild(control);
          control.bt_buscar.buttonMode=true;
 
             }
      
       public function colocamosPuntoInicial():void{
  
  
          map.clearOverlays();
          
          //CREAMOS ESTILOS PARA EL PUNTO
          var estilos:MarkerOptions = new MarkerOptions({
                                  
              strokeStyle: {
                
              color: 0×8F053D
              
              },
              fillStyle: {
              color: 0×000000,
              alpha: 0.8
              },
              label: "Hi ! ",
              labelFormat: {
              color: 0xffffff,
              size:20,
              bold: true
              },
              
              radius: 32,
              hasShadow: true,
              clickable: false,
              draggable: true,
              gravity: 0.5,
              distanceScaling: false
          });
          // CREAMOS UN PUNTO EN EL LUGAR ESPECIFICADO
          punto= new Marker(new LatLng(41.387917,2.1699187),estilos);
          //TEXTO PARA EL TOOLTIP
          var fraseTooltip:String = "Bienvenido a Barcelona!" ;
          //  SI PULSAS LA MARCA APARECE EL TOOLTIP CON EL MENSAJE DE TEXTO
          punto.addEventListener(MapMouseEvent.CLICK, function(event:MapMouseEvent): void {;
          map.openInfoWindow(event.latLng, new InfoWindowOptions({tailAlign: InfoWindowOptions.ALIGN_CENTER, contentHTML:fraseTooltip }));
          });
          map.addOverlay(punto);
      }
      
      // INICIALIZAMOS EL MAPA
      public function iniciarMapa(event:Event):void {
        
        map.removeEventListener(MapEvent.MAP_READY, iniciarMapa);
        map.enableContinuousZoom();
        map.enableScrollWheelZoom();
        map.setCenter(new LatLng(41.387917,2.1699187), 14, MapType.NORMAL_MAP_TYPE);
        //COLOCAMOS LA LANGITUD Y LA LATITUD EN EL PANEL DE CONTROL CON SOLO 3 DECIMALES
         control.long.text = (41.387917).toFixed(3);
         control.lat.text = (2.1699187).toFixed(3);
        colocamosPuntoInicial();
        //AÑADIMOS CONTROLES AL MAPA
        map.addControl(new OverviewMapControl());// CONTROL PARA ARRSTRAR EL MAPA POR ZONAS
        map.addControl(new MapTypeControl());// CONTROLES PARA CAMBIAR LAS VISTAS
        map.addControl(new PositionControl());// CONTROLES PARA NAVEGAR DE FORMA DIRECCIONAL
        map.addControl(new ZoomControl());// CONTROLES PARA EL ZOOM
        
        //INICIALIZAMOS EL OBJETO CLIENTGEOCODER
        geo = new ClientGeocoder();
        
        // BOTON DE BUSQUEDA
        control.bt_buscar.addEventListener(MouseEvent.CLICK, buscar);
        
        // EN CASO DE ÉXITO O ERROR, LLAMAREMOS ACTUAREMOS DEPENDIENDO DEL RESULTADO
        geo.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, exitoBusqueda);
        geo.addEventListener(GeocodingEvent.GEOCODING_FAILURE, errorBusqueda);
        
        
      }
      public function buscar(event:Event):void {
        
        //LLAMAMOS A LA FUNCION QUE NOS DEVUELVE LA LATITUD Y LA LONGITUD DE UNA DIRECCIÓN BUSCADA
        geo.geocode(control.direccion.text);
        control.mensaje.text = "BUSCANDO...";
        
      }
      public function errorBusqueda(event:GeocodingEvent):void {
        
        //DAMOS UN MENSAJE DE ERROR EN EL CASO DE NO ENCONTRAR UNA DIRECCION
        control.mensaje.text = "DIRECCION INCORRECTA";
      }
      public function exitoBusqueda(event:GeocodingEvent):void {
  
         //OCULTAMOS MENSAJE DE BUSCANDO
         control.mensaje.text = "";
        //SI SE HA ENCONTRADO LA DIRECCIÓN COLOCAMOS UNA MARCA Y COMO ES POSIBLE QUE HAYAN VARIOS LUGARES
        //QUE SE LLAMEN DE LA MISMA FORMA, COLOCAREMOS EL PRIMER RESULTADO DEL ARRAY
        if (event.response.placemarks.length > 0) {
          
          map.clearOverlays();
          //CENTRAMOS EL MAPA EN LA DIRECCIÓN BUSCADA CON EL ZOOM QUE LE INDIQUEMOS
          map.setCenter(event.response.placemarks[0].point, 7);
          
          
          //CREAMOS ESTILOS PARA EL PUNTO
          var estilos:MarkerOptions = new MarkerOptions({
                                  
              strokeStyle: {
                
              color: 0×8F053D
              
              },
              fillStyle: {
              color: 0×000000,
              alpha: 0.8
              },
              label: "Hi ! ",
              labelFormat: {
              color: 0xffffff,
              size:14,
              bold: true
              },
              
              radius: 26,
              hasShadow: true,
              clickable: false,
              draggable: false,
              gravity: 0.5,
              distanceScaling: false
          });
          // CREAMOS UN PUNTO EN EL LUGAR ESPECIFICADO Y LE PASAMOS ESTILOS
          punto= new Marker(event.response.placemarks[0].point,estilos);
          
          //TEXTO PARA EL TOOLTIP
          var html:String = "Bienvenido a " + control.direccion.text;
          //  SI PULSAS LA MARCA APARECE EL TOOLTIP CON EL MENSAJE DE TEXTO
          punto.addEventListener(MapMouseEvent.CLICK, function(event:MapMouseEvent): void {
             map.openInfoWindow(event.latLng, new InfoWindowOptions({tailAlign: InfoWindowOptions.ALIGN_CENTER, contentHTML:html }));
          });
          //AÑADIMOS PUNTO
          map.addOverlay(punto);
        }
        //COLOCAMOS LA LANGITUD Y LA LATITUD EN EL PANEL DE CONTROL CON SOLO 3 DECIMALES
         control.long.text = (event.response.placemarks[0].point.lng()).toFixed(3);
         control.lat.text = (event.response.placemarks[0].point.lat()).toFixed(3);
        
      }
      
      
    
   }
}

 

Espero que os guste!

saludos!
Ver Buscador
Descargar Buscador

Feliz 2009

Bueno, después de lavarle la cara al blog,que ya le tocaba por cierto :p, aprovecho la ocasión para felicitaros a todos el año nuevo. Así que ahí va!

Feliz año a todos y espero estar más por aquí este año…

saludos!!

me cargué el diseño del blog :P

no se que he tocado, que al actualizar perdí el diseño, shit!
mientras dejo la versión en pelotas XDDD…hay que ser torpe..

Making of (tutorial)

Making of

Hola a todos! ha pasado muchísimo tiempo… la verdad es que con tanto trabajo cada vez cuesta más dedicar el tiempo que merece un blog, pero bueno, aún así, queria compartir con vosotros un tutorial de photoshop que he creado sobre uno de mis últimos proyectos. El objetivo de este tutorial es dejar ver un poco por encima el proceso que abarca desde la idea de origen hasta la gráfica final. Como siempre había posteado tutoriales de actionscript, creí que ya iba siendo hora que me currara algo para los que como yo, también diseñan.

Y nada, espero que os guste y que os pueda servir.

Un saludo a todos!

Making of.

Ecualizador 3D (AS 3.0 + Papervision 2.0)

ecualizador

Hola de nuevo,

aquí os dejo otro ejercicio en AS3 y Papervision, esta vez jugando con el sonido, unos cubos que interactuan segun la clase SoundMixer.computeSpectrum.
He creado un deslizador para que podáis rotarlo. Las clases estan en la carpeta com.kaax.clases.* , una es la clase Ecualizador, con
todo lo que necesitáis para el 3D, el drag del deslizador, y el movimiento por sonido. Y luego, la clase MiStage, que es tan solo para
reposicionar.

Este seria la clase Ecualizador


 
/*
  
   * ECUALIZADOR 3D
   *
   * @author    Isaac León (KAAX)
   * @version    1.0.0
   * @code    AS 3.0
   * @email    hola@isaacleon.com
   * @url        www.isaacleon.com
   * @blog      www.isaacleon.com/blog
  
  */


package com.kaax.clases {
 
  import org.papervision3d.scenes.*;
  import org.papervision3d.cameras.*;
  import org.papervision3d.objects.*;
  import org.papervision3d.objects.special.*;
  import org.papervision3d.objects.primitives.*;
  import org.papervision3d.materials.*;
  import org.papervision3d.materials.special.*;
  import org.papervision3d.materials.shaders.*;
  import org.papervision3d.materials.utils.*;
  import org.papervision3d.lights.*;
  import org.papervision3d.render.*;
  import org.papervision3d.view.*;
  import org.papervision3d.events.*;
  import org.papervision3d.core.utils.*;
  import org.papervision3d.core.utils.virtualmouse.VirtualMouse;
  
  import flash.display.*;
  import flash.events.*;
  import flash.net.URLLoader;
  import flash.net.URLRequest;
  import flash.media.*;
    import flash.display.Stage;
  import flash.utils.*;
  
    
  
  import caurina.transitions.*;
      
      public class Ecualizador{
      
      
              private var cancion:String;
          private var _background:MovieClip;
          private var _mc:Sprite;
          private var logo:MovieClip;
          private var cubo:MovieClip;
          private var cubo2:MovieClip;
          private var request:URLRequest;
          private var sonido:Sound;
          private var chan:SoundChannel;
                    private var mcStage:Stage;
          private var bt_desliza:MovieClip;
          private var duracion:MovieClip;
          private var carril:MovieClip;
          private var viewport:Viewport3D;
          private var render:BasicRenderEngine;
          private var scene:Scene3D;
          private var camera:Camera3D;
          private var miMaterial1:MovieMaterial;
          private var miMaterial2:MovieMaterial;
          private var currentTime:Number;
          private var arrayCubos:Array;
          private var bits:ByteArray;
          private var totalSpacio:int;
          private var anchura:Number;
          private var arrayClips:Array;
          private var cuantosCubosSpectrum:Number;
          private var tiempo:Timer;
          private var xDist:int;
          private var yDist:int;
          private var deslizando:Boolean;
          private var xFinal:int;
          private var yFinal:int;
          private var mX:int;
          private var soundMixer:SoundMixer;
          
 
                    public function Ecualizador(_mc:Sprite,_background:MovieClip,cancion:String,logo:MovieClip,
cubo:MovieClip,cubo2:MovieClip,bt_desliza:MovieClip,duracion:MovieClip,carril:MovieClip):void{
            
              this._mc = _mc;
              this.mcStage = _mc.stage;
              this._background = _background;
              this.logo = logo;
              this.cubo = cubo;
              this.cubo2 = cubo2;
              this.cubo = cubo;
              this.bt_desliza = bt_desliza;
              this.duracion = duracion;
              this.carril = carril;
              this.cancion=cancion;
              
              initStage();
              initVariables();
              construye2carasCubo();
              construyeSpectrum();
          }
          
          public function initStage():void {
            
                
               var miStage:com.kaax.clases.MiStage=new com.kaax.clases.MiStage(this._mc,_background,bt_desliza,logo,duracion,carril);
          }
          private function initVariables():void {
            
              
               this.viewport= new Viewport3D(0, 0, true, true);
               this._mc.addChild(viewport);
               this.render= new BasicRenderEngine();
               this.scene= new Scene3D();
               this.camera= new Camera3D();
               this.camera.zoom = 4;
 
               this.camera.focus = 100;
               this.camera.y = 500;
               this.camera.x = -2000;
               this.currentTime=0;
                     this.arrayCubos=new Array();
                           this.bits= new ByteArray();
                           this.totalSpacio=1760;
                           this.arrayClips=new Array();
               this.request= new URLRequest(this.cancion);
                                                         this.sonido= new Sound();
                                                         this.sonido.load(this.request);
               this.chan= this.sonido.play();
               this.cuantosCubosSpectrum=6;
               this.deslizando=false;
               //this.soundMixer=new SoundMixer();
               this.tiempo=new Timer(100);
          }
          
          private function rango(numeroMin:Number, numeroMax:Number):Number {
 
              return Math.floor(Math.random() * numeroMax - numeroMin + 1) + numeroMin;
          }
          
          
          private function construye2carasCubo():void{
            
               miMaterial1= new MovieMaterial(this.cubo);
               miMaterial1.interactive = false;
               miMaterial1.smooth = false;
               miMaterial1.animated = false;
                    
               miMaterial2= new MovieMaterial(this.cubo2);
               miMaterial2.interactive = false;
               miMaterial2.smooth = false;
               miMaterial2.animated = false;
            
          }
          
          private function construyeSpectrum():void{
            
                
              for (i:int=0; i < cuantoscubosspectrum ;  i+=1) {
              
                  var miCubo:Cube = new Cube(new MaterialsList({front:miMaterial1, back:miMaterial1, all:miMaterial2}),  1420, 1450,  1450, 6,6,6);
                scene.addChild(miCubo);
                
                var miX=i*100;
                miCubo.scaleX=cubo.scaleY=0.1;
                Tweener.addTween(miCubo, {x:miX,scaleX:1,scaleY:1, z:2900, delay:i*0.2, time: 1.2, transition:"easeinoutquint"});
                render.renderScene(scene, camera, viewport);
                      arrayCubos[i]=miCubo;
              
              }
              iniciaTemporizadorSpectrum();
              iniciaDrag();
          }
          
          private function iniciaTemporizadorSpectrum():void{
            
              
              this.tiempo.addEventListener(TimerEvent.TIMER, refrescarSpectrum);
              this.tiempo.start();
 
          }
          
          private function refrescarSpectrum(event:TimerEvent):void{
            
              
              SoundMixer.computeSpectrum(bits, true);
              currentTime = chan.position;
              duracion.scaleX=currentTime/sonido.length;
              var j:int;
              var anchura:uint = 1;
            
            
                    for (j=0;  j < cuantosCubosSpectrum;  j+=1) {
                
                        var conversion_:Number = bits.readFloat();
                  var desplazamiento:Number = (conversion_ * 5);
                  var cubo:Cube=arrayCubos[j];
                              cubo.x=3400+j*1760;
                              Tweener.addTween(cubo, {scaleY:desplazamiento, time: 0.3, transition:"easeinoutquint"});
                        render.renderScene(scene, camera, viewport);
            
              }
 
          }
          
          private function desliza(deslizador:Sprite):void{
            
              if (deslizando){
                
                deslizador.x = this._mc.mouseX;
                camera.zoom=+this._mc.mouseX/300+5;
                
                for(var i:Number=0 ; i < cuantosCubosSpectrum ;  i++){
                    
                    var cubo=arrayCubos[i];
                    cubo.rotationX = -this._mc.mouseY/4;
                    cubo.rotationY = -this._mc.mouseX/4;
                    
                  }
              }
              
          }
          
          
          private function iniciaDrag():void{
            
              this.mcStage.addEventListener(Event.ENTER_FRAME, dragEnterFrame)
              this.mcStage.addEventListener(MouseEvent.MOUSE_DOWN, dragMouseDown)
              this.mcStage.addEventListener(MouseEvent.MOUSE_UP, dragMouseUp)
              bt_desliza.buttonMode=true;
            
          }
          
          private function dragEnterFrame(event:Event)    {
          
                 desliza(this.bt_desliza)
          
          
          }  
          
          private function dragMouseDown(event:MouseEvent):void {
          
            deslizando = true;
            
            
          }
          private function dragMouseUp(event:MouseEvent)    {
            
            deslizando = false;
            
          
          
          }
          
 
          
          
          
          
    }
  }
          

Y nada, espero que os guste.

Aquí os dejo los enlaces.

Un saludo!

Ver Ecualizador3D
Descargar Ecualizador3D

TypeConverter 3D (AS 3.0 + Papervision 2.0)

typeconverter 3D

Hola a todos!

Espero que estéis todos bien! ya tenía ganas de volver por aquí :p
La verdad es que debido al aumento de trabajo y a cambios importantes en mi vida, mi frecuencia por aquí fue reduciéndose a cenizas…y después de tantos meses sin postear nada, ahora que tenia un poco de tiempo, he realizado un mini ejercicio con AS3 y papervision que me gustaria compartir con vosotros para que os lo podáis descargar para testear, estudiarlo o lo que queráis. Se llama TypeConverter 3D, y es un motor para escribir letras pixel en 3D, puedes borrarlas, ampliarlas con el zoom, activar la cámara para que se mueva respecto al ratón, crear una esfera, etc…

El motor está programado con AS3 y la versión 2.0 de Papervision. El zip consta de un archivo fla, las clases de caurina para las transiciones, el paquete de papervision,
y dentro de la carpeta com, hay una carpeta kaax que es donde encontraréis las 3 clases que he desarrollado para esta mini experiencia.

Esto es un ejemplo de lo que podéis hacer:

Si queréis retocar la tipografia, tenéis que abrir el archivo Abecedario.as y en los arrays correspondientes de cada letra, podéis cambiar el 1 por 0 y viceversa.
Incluso puede que os salgan abecedarios para marcianos :)

Le tecla “DEL” borra las letras que hayas escrito pixel3D por pixel3D.

Aquí os dejo parte de la clase Abecedario.


/*
  
   * TYPECONVERTER 3D
   *
   * @author    Isaac León (KAAX)
   * @version    1.0.0
   * @code    AS 3.0
   * @email    hola@isaacleon.com
   * @url        www.isaacleon.com
   * @blog      www.isaacleon.com/blog
  
  */
package com.kaax.clases {
  
  
    public class Abecedario
  {
 
        
        private var a_,b_,c_,d_,e_,f_,g_,h_,i_,j_,k_,l_,m_,
        n_,o_,p_,q_,r_,s_,t_,y_,v_,u_,w_,x_,y__,z_,
        arrays:Array;
    
        public function Abecedario()
    {
      init();
    }
    private function init():void{
      
      
      
      
        a_=new Array(1,1,1,1,1,
               1,0,0,0,1,
               1,0,0,0,1,
               1,1,1,1,1,
               1,0,0,0,1);
                    
         a_.name = "a";                    
                    
        b_=new Array(1,1,1,1,0,
               1,0,0,0,1,
               1,1,1,1,0,
               1,0,0,0,1,
               1,1,1,1,0);
        
        b_.name = "b";  
                    
        c_=new Array(1,1,1,1,1,
               1,0,0,0,0,
               1,0,0,0,0,
                 1,0,0,0,0,
               1,1,1,1,1);
         c_.name = "c";
        
         d_=new Array(1,1,1,1,0,
                1,0,0,0,1,
                1,0,0,0,1,
                1,0,0,0,1,
                1,1,1,1,0);
         d_.name = "d";      
        
        e_=new Array(1,1,1,1,1,
               1,0,0,0,0,
               1,1,1,1,0,
               1,0,0,0,0,
               1,1,1,1,1);
                    
         e_.name = "e";    
        
        f_=new Array(1,1,1,1,1,
               1,0,0,0,0,
               1,1,1,1,0,
               1,0,0,0,0,
               1,0,0,0,0);
        f_.name = "f";  
        
        g_=new Array(1,1,1,1,1,
                 1,0,0,0,0,
               1,0,1,1,1,
               1,0,0,0,1,
               1,1,1,1,1);
                    
         g_.name = "g";                      
        h_=new Array(1,0,0,0,1,
               1,0,0,0,1,
               1,0,0,0,1,
               1,1,1,1,1,
               1,0,0,0,1);
                    
        h_.name = "h";      
        
        i_=new Array(1,1,1,1,1,
               0,0,1,0,0,
               0,0,1,0,0,
               0,0,1,0,0,
               1,1,1,1,1);
                    
        i_.name = "i";                        
        j_=new Array(0,0,0,0,1,
               0,0,0,0,1,
               1,1,1,0,1,
               0,1,0,0,1,
               0,1,1,1,1);
                    
         j_.name = "j";
        
        k_=new Array(1,0,0,0,1,
               1,0,0,1,0,
               1,1,1,0,0,
               1,0,0,1,0,
               1,0,0,0,1);
                    
        k_.name = "k";  
        
        l_=new Array(1,0,0,0,0,
                 1,0,0,0,0,
               1,0,0,0,0,
               1,0,0,0,0,
                 1,1,1,1,1);
        l_.name = "l";                        
                    
        m_=new Array(1,1,1,1,1,
               1,0,1,0,1,
               1,0,1,0,1,
                 1,0,0,0,1,
                 1,0,0,0,1);
                    
         m_.name = "m";    
        
        n_=new Array(1,1,1,1,0,
               1,0,0,0,1,
               1,0,0,0,1,
               1,0,0,0,1,
               1,0,0,0,1);
                    
         n_.name = "n";    
        
        o_=new Array(0,1,1,1,0,
               1,0,0,0,1,
               1,0,0,0,1,
                 1,0,0,0,1,
               0,1,1,1,0);
         o_.name = "o";                      
                    
        p_=new Array(1,1,1,1,0,
                 1,0,0,0,1,
               1,0,0,0,1,
               1,1,1,1,0,
               1,0,0,0,0);
        p_.name = "p";                        
                    
        q_=new Array(0,1,1,1,0,
                 1,0,0,0,1,
               1,0,0,0,1,
               1,0,1,0,1,
               0,1,1,1,0);
        q_.name = "q";      
        
        r_=new Array(1,1,1,1,0,
               1,0,0,0,1,
                 1,0,0,0,1,
                 1,1,1,1,0,
               1,0,0,0,1);
         r_.name = "r";                      
                    
        s_=new Array(0,1,1,1,1,
               1,0,0,0,0,
                 0,1,1,1,0,
               0,0,0,0,1,
                 1,1,1,1,0);
        s_.name = "s";                        
                    
        t_=new Array(1,1,1,1,1,
                 0,0,1,0,0,
                 0,0,1,0,0,
               0,0,1,0,0,
               0,0,1,0,0);  
         t_.name = "t";                      
                  
                  
        u_=new Array(1,0,0,0,1,
               1,0,0,0,1,
               1,0,0,0,1,
                 1,0,0,0,1,
                 0,1,1,1,0);
         u_.name = "u";                      
                    
        v_=new Array(1,0,0,0,1,
               1,0,0,0,1,
                 1,0,0,0,1,
                 0,1,0,1,0,
                 0,0,1,0,0);  
        v_.name = "v";                        
                    
        w_=new Array(1,0,0,0,1,
               1,0,0,0,1,
                 1,0,1,0,1,
                 1,0,1,0,1,
               0,1,0,1,0);
        
        w_.name = "w";  
                    
        x_=new Array(1,0,0,0,1,
               0,1,0,1,0,
               0,0,1,0,0,
               0,1,0,1,0,
                 1,0,0,0,1);
                    
        x_.name = "x";                        
        y__=new Array(1,0,0,0,1,
                0,1,0,1,0,
                0,0,1,0,0,
                0,0,1,0,0,
                0,0,1,0,0);
        
                    
        y__.name = "y";                        
        z_=new Array(1,1,1,1,0,
               0,0,0,0,1,
               0,1,1,1,0,
               1,0,0,0,0,
               0,1,1,1,1);
        z_.name = "z";  
              arrays=new Array(a_,b_,c_,d_,e_,f_,g_,h_,i_,j_,k_,l_,m_,
                                n_,o_,p_,q_,r_,s_,t_,u_,v_,x_,w_,y__,z_);
      
    }
    
    // FUNCION QUE DEVUELVE EL ARRAY CORRESPONDIENTE DE COORDENADAS
                    EN RELACION A LA TECLA PULSADA POR EL USUARIO
 
    public function returnArray(tecla:String):Array{
      var encontrado:Boolean=false;
      for(var i:uint=0;i<this .arrays.length;i++){
        
        trace(arrays[i].name);
        if(arrays[i].name==tecla){
          encontrado=true;
          return arrays[i];
        }
      }
      return null;
    }
  }
}

Soy consciente de que se podrian hacer mil cosas más para mejorarlo, pero tanto, tanto tiempo ya no tengo jejeje. Así que espero que lo disfrutéis y si os ayuda en algo, mejor que mejor.

Aquí os dejo los enlaces.

Un saludo a todos!

Ver TypeConverter3D
Descargar TypeConverter3D

The Doll

The Doll es un cortometraje que trata sobre la muerte, el deseo y los robots, inspirado en el famoso Real Doll “juguetes sexuales” para el sello de lencería Lascivious y que está producido por Wyld Stallyons. La verdad es que su puesta en escena no te deja indiferente, es bastante diferente al resto de campañas de lenceria femenina. Así que aquí os dejo el enlace para compartirlo.

The doll.

Consejos tipográficos (Galería)

Consejos tipográficos es mi primera galería, entre comillas, de arte. Nace como una prueba de experimentación. Últimamente siento una necesidad abismal por plasmar lo que sea, y estos cuadros que veréis a continuación es fruto de un sábado inundado de inspiración. Salieron uno tras otro, sin poder parar y viendo el resultado tenía curiosidad por saber que más vendría. En los cuadros utilizo la tipografía como medio de expresión para realzar emociones, consejos a quiénes fueron dedicados. Las medidas son de 150 cm x 80 cm. Espero que os guste.

Consejos tipográficos.