Como? – Cámbiame
June 9th, 2009

El modo de visualizacion tiene que primero el dominio que tiene el servicio y debajo los servicio que tiene ese dominio pueden ser.

Dios que dura es la vida :)

Especificaciones para banner – Cámbiame
May 20th, 2009

Estas son las especificaciones:

“formato html, que es como si fuera un flash”

Venga pues nos ponemos manos a la obra ;)

Como NO DEBERÍAS nombrar – Cámbiame
May 6th, 2009

No puedo entender como todavía hay gente que aún nombra las carpetas o ficheros como en el siguiente ejemplo (es real):

Os he pasado en la carpeta “videos ok ok” el archivo frontal_ok_ok.mov corregido o_O
o la siguiente:
fondo-ok-ligeramente-fixed.jpg

No me quiero imaginar como pueden acabar estas cosas, siguiendo una sucesión lógica debería ser algo así.

En la carpeta “vídeos ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok” te he dejado el vídeo frontal_ok_ok_ok_ok_ok_ok_ok_ok_ok_ok_ok.mov

En el segundo caso sería algo más complejo pero no menos curioso:

fondo-ok-ok-ok-ok-ok-ok-totalmente-de-verdad-final-completo-ok-ok-definitivo-fixed-del-todo4.jpg

Por favor, señores y señoras de cuentas, diseñadores y programadores… no usen este tipo de nomenclatura cuando tengan que trabajar con personas.

Config Constants – ActionScript 3.0
May 4th, 2009

Config Constants en Flash CS4. Con la creación de las constantes de configuración podemos acceder a partes de nuestro código dependiendo del valor de las mismas. Para ver un pequeño ejemplo, imaginad que tenéis un fla que va a ir en dos idomas, con las constantes podemos hacer que un mismo fla (o fla diferentes) accedan a un idioma en la programación o a otro.

Creamos un par de Constantes, una para el español CONFIG::ES y otra para el portugués CONFIG::PT y le damos a la primera un valor de true y a la segunda un valor de false en la configuración de publicación.

ConfigConstants.jpg

Después en nuestro código podremos tener lo siguiente:

Actionscript:
public function createButtons():void
{
        CONFIG::ES
        {
                botones = [ "El sistema de franquicias", "Pasos a seguir", "Tipos de tienda",
                        "Inversión inicial", "Criterios de emplazamiento" ];
        }
            
        CONFIG::PT
        {
            botones = [ "O sistema de franchising", "Passos a seguir", "Tipos de loja",
                        "Investimento Inicial", "Critérios de localização" ];
        }
}

Al compilar la película flash cogerá lo que aparezca dentro del CONFIG::ES e ignorará lo que esté dentro del CONFIG:PT.

???
April 27th, 2009

???.jpg
Ya queda poco.

El bruto – Juego de moda
April 25th, 2009

elbruto.jpg

Os dejo el nuevo juego que está causando furor en internete.
No os preocupéis por los combates, vuestro bruto es tan inteligente que no tendréis que hacer nada, simplemente encended un cigarro (u otra cosa con aspecto de cigarro) y disfrutad de la lucha.

El bruto

Fases de propagación de eventos – ActionScript 3.0
April 25th, 2009

Stage-->MainTimeLine-->MovieClip-->TextField-->MovieClip-->MainTimeline-->Stage

Cuando el evento se transmite hacia el objeto se le conoce como la Fase de Captura.
Cuando llega al TextField es la Target Fase.
Cuando vuelve a subir hacia el Stage Fase de Burbujeo (Bubbing)

La fase de captura no se utiliza a no ser que lo especifiques explicitamente.

Actionscript:
clip_mc.addEventListener(MouseEvent.CLICK, botonClick, true);

Se suele usar para deshabilitar eventos.

Eventos – ActionScript 3.0
April 25th, 2009

Para enviar eventos usamos la clase EventDispatcher.
Se puede usar por herencia o por composición.

Después tenemos que crear el evento

Actionscript:
var event:Event = new Event("change");

o lo que sería mejor

Actionscript:
var event:Event = new Event(Event.CHANGE);

y después tenemos que distribuir (lanzar) el evento:

Actionscript:
dispatchEvent(event);

Para usarlo por composición tenemos que implementar IEventDispatcher
En el constructor nos creamos un nuevo EventDispatcher();

Actionscript:
dispatcher = new EventDispatcher(this); //donde this es el target que distribuye el evento.

Después en cada función definida por la Interfaz devolvemos el dispatcher:

Actionscript:
return dispatcher.dispatchEvent(event);
return dispatcher.hasEventListener(type);
return dispatcher.willTrigger(type);
return dispatcher.removeEventListener(type, listener, useCapture); etc

Cualquier DisplayObject hereda de DispatchEvent
Si queremos crear un evento propio nuestro tenemos que crear una nueva clase que herede de Event y que llame explicitamente al constructor y crear una constante estática con el nombre y valor que queramos como evento.

Actionscript:
public static const LIMITE_EXCEDIDO:String = "limite";

Después en la clase en la que vamos a usar el evento generamos un nuevo evento EjemploEvent

Actionscript:
var evento:EjemploEvent = new EjemploEvent(EjemploEvent.LIMITE_EXCEDIDO);
dispatchEvent(evento);

En la clase en la que nos vayamos a apuntar al evento

Actionscript:
foo.addEventListener(EjemploConEvento.LIMITE_EXCEDIDO, funcion);

Objetos y clases – ActionScript 3.0
April 25th, 2009

Programación Procedural
Instrucciones que generan procedimientos
En ActionScript todo lo relacionado a funciones que generan tareas.

Pros
- Implantación rápida, resultados rápidos

Contras
- Poco mantenible a la larga, en aplicaciones con más de 500 líneas de código.

Orientado a Objetos
Divide el código en entidades diferentes

Pros
Escalables
Metodología de programación

Contras
Implantación lenta
Fácil abuso de ella sobrearquitectura de las cosas

Objeto
Es un subprograma que mantiene información y funcionalidad que maneja esa información que se está guardando
A los datos se los conoce como propiedades y a las funciones cómo métodos.

Clases
Plantilla para crear objetos
Definición abstracta de lo que va a ser un objeto.
Todos los objetos creados a partir de una misma clase van a tener los mismos métodos y propiedades.
Lo que crea un objeto único o diferente a otro es el valor de las propiedades.

Clases sin propiedades se hacen estáticas como la clase Math.

Todo lo que se puede hacer en flash está encapsulado en clases.

Paquetes
Un paquete puede contener otro paquete, clases o definiciones de funciones.

1.- Paquete Flash
La utilización de este paquete no añade código ni peso a nuestra película. Se encuentra integrado dentro del flash player.

2.- Librería FL
Son los componentes de flash. No viene compilada dentro del flash player. Hay que añadir el código a la película flash cuando usemos un componente.

3.- Libería mx
Componentes de Flex

Sirven para organizar el código y para que no halla colisión entre nombres.

Como crear un objeto a partir de una clase

Operador new

Actionscript:
var punto:Point = new Point(); // instancia un objeto de la clase Point

Una vez instanciado el objeto podemos acceder a sus métodos y propiedades

Actionscript:
punto.x = 30;
trace(punto);

punto.offset(30, 10); // Offset desplaza el punto
trace(punto); salida (60, 10);

El constructor puede recibir parámetros, si vienen entre corchetes, éstos son opcionales.

Si escribimos el código en línea de tiempo podemos usar los paquetes sin importarlos.
Cuando trabajemos con clases tenemos que importar las clases.

import flash.geom.Point;
import flash.geom.*; // importa el paquete entero

Importando una clase no se añade el código al swf. Si no tiene el paquete importado se va a ir al top level a buscar.
En el momento de compilación busca las clases y las compila en el .swf

Cuando se instancia una clase flash va a mirar si es una clase del top level --> si no, se pone a mirar en las directivas import del código para buscar la clase.

COMO CREAR UNA CLASE
creamos el nombre del paquete, si no va dentro de ningún paquete lo dejamos vacío pero usamos la declaración de package

Por cada archivo de ActionScript solo puede haber una definición o de función o de clase.

CLASSPATH (rutas de clase)
Ruta donde va a buscar flash las clases en el disco.

1.- DE DOCUMENTO
2.- GLOBALES

Se configuran en preferencias --> ActionScript
De manera predeterminada vienen dos classpath por defecto
"." va a buscar en el mismo directorio que el propio archivo .fla
$(AppConfig)/ActionScript 3.0/Classes va a buscar en el directorio Adobe Flash CS3 es
Archivos .swc código precompilado ,no son más que archivos .zip con un archivo xml y otro swf

Podemos insertar los classpath que queramos

Librería Standard (Clases de Flash)
Clases del proyecto (Clases que están al lado del fla)
Nuestra librería de clases

En configuración de publicación en la pestaña de Flash tenemos tambien una Ruta de Clases, pero solo para ese archivo.

En configuración de publicación tenemos una pestaña que crea un SWC, código precompilado para dar al cliente cuando no queremos dar nuestras clases.

ATRIBUTOS DE CONTROL DE ACCESO o Visibilidad

Se usan tanto en propiedades como métodos, asigna quien puede utilizar esa función, clase o método.

public: cualquiera puede ver/utilizar esa definición
private: solo se puede usar desde este código (desde esta clase), métodos de ayuda dentro de la clase. Pensado para uso interno.
protected: lo pueden ver la clase y las subclases
internal: solo puede ser visto por otras clases que estén dentro del mismo paquete. Es el valor por defecto cuando no ponemos ningún atributo.

PROGRAMACIÓN ORIENTADA A OBJETOS

CUALIDADES
1- Abstracción:
Nunca se debería saber el funcionamiento de una clase para poder usarla.

2.- Encapsulamiento:
Una clase no debería dejar modificar sus propiedades.
No poner propiedades públicas.

3.- Herencia
4.- Polimorfismo

Polimorfismo – ActionScript 3.0
April 25th, 2009

Capacidad de una clase para comportarse como diferentes tipos de clases.

Se hace la diferencia entre tipo y clase, es decir, la clase círculo es del tipo FormaGeometrica.

Actionscript:
var c:Circulo = new Circulo(); // Círculo hereda de FormaGeometrica
function medirAncho(a:FormaGeometrica) : void
{
    trace(a.ancho);
}
medirAncho(c);

Esto es posible gracias al polimorfismo, el tipo puede ser la superclase (FormaGeometrica) y el valor siempre será el objeto que pasemos, es decir, si como tipo ponemos la superclase podremos pasar como parámetro cualquiera de las subclases (Circulo, Cuadrado, Triangulo, etc).

Después con is podemos averiguar de que tipo es la clase y actuar de una forma u otra con ella.
Pej.

Actionscript:
function medirAncho(a:FormaGeometrica) : void
{
    if(a is Circle)
    {
        trace(a.radius * 2);
    }
    if(a is Rectangle)
    {
        trace(a.ancho);
    }
}

Cuando hablamos de polimorfismo podemos decir: "Tiene un..."