AS3 native scrollbar


AS3 scrollbar

Para uno de mis proyectos (y lo más seguro es que para todos eventualmente) me encontré con la necesidad de poner un texto en un espacio más chico del total del texto, esto simple y sencillamente se soluciona habilitando un scrollbar.

La onda fue que al hacer uso del Componente que ya existe en flash de scrollbar me vino la duda si a la hora de enviarlo al iphone se vería de manera “nativa” o si mantendría el aspecto de flash. Al hacer las pruebas ví que mantenía el aspecto típico, y eso no me gustó nada porque le quita “usabilidad” (al no usar controles nativos a los que los usuarios ya se van acostumbrando – OJO gracias al desarrollo de apps para ios en flash y as3 se pueden recrear TODOS los controles que se quiera y a veces es bueno para innovar, pero en este caso es algo tan sencillo que no valía la pena recrearlo todo).

Busqué un rato en web y no encontré nada para iOS, hay muchos sí para AS3 pero simplemente para aplicaciones o web nada para mobile. Intenté trucar el componente que viene con flash y no sirvió de mucho, así que tuve que ponerme a hacer esto por código propio desde cero.

Resultó algo muy fácil, es una simple clase que al instanciar se le tienen que dar dos parametros: 1.- el movieclip origen (esto para que tenga acceso al stage y así pueda usar addChild) y 2.- la caja de texto a la que se le va a poner el scrollbar.

Notas

package {
  import flash.display.MovieClip;
  import flash.display.Shape;
  import flash.events.*;
  import flash.text.TextField;

  public class ComponentVerticalScrollbar {
    // ——- Constructor ——-
    public function ComponentVerticalScrollbar(obj_home:MovieClip, obj_text_field:TextField, num_width:Number=5, num_round_w:Number=2, num_round_h=2, num_alpha:Number=.5, num_color:Number=0xCCCCCC) {
      referencia_home = obj_home;
      objeto_text_field = obj_text_field;
      var number_position_x:Number = objeto_text_field.x + objeto_text_field.width ;
      objeto_text_field.width -= 10;
      var number_position_y:Number = objeto_text_field.y;
      var num_height:Number = Math.floor(objeto_text_field.height / objeto_text_field.maxScrollV);
      if(num_height < 20){
        num_height = 20;
      }
      round_square_trackbar = new Shape();
      round_square_trackbar.graphics.lineStyle(0, num_color, 0, false);
      round_square_trackbar.graphics.beginFill(num_color);
      round_square_trackbar.graphics.drawRoundRect(number_position_x, number_position_y, num_width, num_height, 10, 10); round_square_trackbar.graphics.endFill();
      round_square_trackbar.alpha = num_alpha;
      referencia_home.addChild(round_square_trackbar);
      objeto_text_field.addEventListener(Event.SCROLL, handler_scroll);
    }
    // ——- Properties ——-
    private var referencia_home:MovieClip;
    private var objeto_text_field:TextField;
    private var round_square_trackbar:Shape;
    // ——- Methods ——-
    private function handler_scroll(event:Event):void{
      // hago el indice actual basados en cero
      var number_actual:Number = objeto_text_field.scrollV  1;
      var number_total:Number = objeto_text_field.maxScrollV  1;
      round_square_trackbar.y = ((number_actual) / (number_total) * objeto_text_field.height)  (number_actual / number_total * round_square_trackbar.height);
    }
  }
}

En fin espero que a alguien le sirva o ayude.

Saludos,
Gorka


Proyecto: Where is my car?


Direction

La idea es sencilla: al terminar de estacionar el coche abres en tu iphone la app, esperas que te geolocalice y luego marcas el lugar donde estás con el coche. Vas y haces lo tuyo (sea fiesta, trabajo, lo que sea..), cuando sales de tu “evento” prendes la app de nuevo en la opción de guía y te enseña una brújula con una flecha en dirección a tu coche.

¿Qué se necesita para hacer esto? (sin entrar a detalles de computadoras, aparatos y programas de desarrollo, sino más bien en cuanto a procesos)

En una actualización se puede agregar funcionalidad que te guíe tomando en cuenta calles y edificios (ya que esta versión seguro te pide que atravieses paredes para llegar directamente).

Es un proyecto sencillo, espero poder darme unas horas para llevarlo a cabo y tenerlo listo para luego subirlo al app Store y que lo puedan descargar y jugar con el.

Saludos,
Gorka


Gipsy


I’m just a browser, not a systems engineer infront of his computer – computer virus said when expected to root from a sandbox.


La actitud del desarrollo


Mafalda

Me encontré con este gran artículo: http://www.wired.com/epicenter/2011/08/new-york-times-paywall/ en el que tratan el tema de como han actuado diferentes empresas de noticias tratando de implementar nuevos modelos de negocio.

Sin que el análisis tenga que ver con el enfoque de pago por suscripción, el autor del artículo termina diciendo que una de las empresas tomó la decisión de tratar a sus usuarios como personas con sentido común y como personas maduras en un mundo civilizado y eso geeneró frutos, mientras que las otras empresas que trataron a sus usuarios con falta de confianza, como si fueran a abusar de sus servicios no lo lograron.

Creo que poco a poco hemos llegado a un mundo en el que el diálogo y el respeto por el prójimo pueden más que la negligencia y la apatía – y como muchas otras veces, agradezco a un Internet libre y anárquico de tal logro – con lo cual se pueden crear (y recrear) proyectos pensando en las personas que los van a usar/requerir de otro modo.

Se ha recreado la manera de interactuar con los clientes

La forma no es nueva (tratar a las personas como personas no como ladrones) pero la libertad de actuar como personas “civilizadas” en Internet ha opacado los abusos típicos que se pueden dar (ojo no estoy diciendo que ya llegamos al paraiso – pero si quiero decir que el hecho es que ya hay destellos de verdadera fraternidad).

Saludos,
Gorka


Del deber al hacer...


The major problem – one of the major problems, for there are several – one of the many major problems with governing people is that of whom you get to do it; or rather of who manages to get people to let them do it to them. To summarize: it is a well known fact, that those people who most want to rule people are, ipso facto, those least suited to do it. To summarize the summary: anyone who is capable of getting themselves made President should on no account be allowed to do the job. To summarize the summary of the summary: people are a problem.”

The Restaurant at the End of the Universe

Saludos,
Gorka


iPad router


iPad

Lo primero que tengo que decir es que aún no pruebo esto personalmente pero que en cuanto consiga mi plan de datos (vía 3G) lo llevaré a cabo y ahí les diré si era tan fácil como aqui lo voy a poner.

La idea general es así: con el iPad 3G (o con un iPhone y eventualmente si sacan un iPod Touch con 3G) se puede usar la señal de internet de la red de celular y compartirla con computadoras y otros gadgets (iPod Touch, etc.) así ya no se puede tener una red wifi que va contigo a todos lados (donde vaya el iPad o iPhone por supuesto).

Aunque los pasos suenan difíciles la verdad es que no lo son, primero los listaré y luego los explicaré:

  1. Se necesita instalar una aplicación del tipo iProxy (no la iProxy que está en la appStore porque esa no es..) en el iPad. Este paso es el más difícil.
  2. Crear una red con Ad Hoc con una computadora y conectar el iPad a la misma. Luego, desconectar todos los aparatos excepto el iPad.
  3. Configurar el iPad para que sirva como router
  4. Iniciar la app iProxy y configurarla
  5. Conectar cualquier otro gadget a la red wifi y configurar su IP
  6. Configurar un proxy para el gadget que se conecta (es solo una dirección en una forma no hay que aprender de esto)
  7. Navegar

Ahora para la parte más detallada:

  1. Instalar iProxy, lo que pasa es que se necesita una versión personalizada de iProxy para hacer esto ya que Apple no permite esta app así libre en la appStore, entonces hay que conseguir el codigo fuente, compilarlo e instalarlo. Esto se puede hacer directamente si se tiene cuenta de desarrollador de apps o con algún amigo que lo sea.
  2. Esta parte es casi trivial y preferiría que busquen como hacerlo en Google (si no lo encuentran díganlo y lo pongo aqui)
  3. Esto se logra configurando una IP fija de 10.0.0.1 y una mascara de red de 255.255.255.0 en el iPad
  4. Debe de tener la IP fija que pusimos en el punto anterior y el puerto 8888 (tráfico de Internet)
  5. Se puede seleccionar cualquier IP pero para rápido ejemplo ponerle 10.0.0.8 y submáscara de red de 255.255.255.0
  6. Ya sea en el navegador o en el mismo firewall de windows o vía un http proxy se configura la dirección del mismo a: http://10.0.0.1:8080/socks.pac
  7. Abrir alguna dirección web y comprobar que todo funcione.

Estuve leyendo que hay programas que se conectan a Internet sin usar tal configuración de proxy (Skype, etc.) entonces para eso se puede usar un programa de http proxy como Polipo para que todo el tráfico de Internet se canalice por ahí.

Así que bueno, se ve fácil, ya les diré como me va.

Saludos,
Gorka

Aqui les dejo links de referencia:


Creo en un mundo responsable


Una idea corta:

Cada vez que veo cosas que pasan que harían que me quejara me doy cuenta que a veces por falta de noción o “simple vista corta” podemos caer en acciones cuyo efecto puede ser tan culposo/causal como acciones tomadas a conciencia por aquellos que implican que “su manera de pensar es la única que se debe llevar a cabo”.

A veces he sido llamado ciertas cosas por ciertos comentarios, pero es porque mi manera de entender al mundo me ha hecho darme cuenta que aquellas personas que prefieren no “darse cuenta” son tan culpables como aquellos que toman acciones deliberadas de abuso de poder.

Es a mi parecer que podemos crear un mundo conectado, abierto y con sistemas abiertos y sencillos de comunicación en el cual se critique a aquellos que abusan de ideales humanos para “no mover un dedo” y conseguir lo que quieren de la misma manera que aquellos que consideran al ser humano como un “número más en una estadística” y por lo tanto, lo digo y lo repetiré:

“Mientras sea capaz de usar este regalo que recibí (que llamaré razón) trataré de llevar a cabo acciones que promuevan el aprendizaje y uso del mismo para mejora de la condición de vida de todo aquello que se concibe con él.”

Saludos,
Gorka


Pagination