Archive for the ‘ AS2 ’ Category

Libreria para carga de archivos externos en flash.

me encantan la librerías de cualquier lenguaje sobre todo las de Flash. Tweenlite es mi librería por defecto que utilizo en el 90 por ciento de mis proyectos. Esta semana empecé a usar una nueva librería que tiene mas utilidades y no se especializa en animaciones si no que se utiliza para hacer la carga de archivos externos. Lo que más me gustó de esta librería es que permite hacer optimizaciones de memoria en cualquier momento, cosa que nos podría ser útil en caso de estar desarrollando alguna aplicación para dispositivos móviles donde la memoria es acotada. Otra ventaja es que viene en dos gustos para los clásicos AS2 y para aquellos más atrevidos AS3.

Más información en:

http://as3.casalib.org/releases/1.2.1/docs/

más formulas útiles.

Siguiendo con formulas útiles de mi post anterior y estudiando un poco algoritmos Euclidianos, cree un par de funciones para saber cual es la relación de aspecto de una imagen.

function getMCD(w:int, h:int):int{ 
return ((h != 0) ? arguments.callee(h, w % h): w); 
}
 
function getAspectRatio(w:uint, h:uint):String{ 
var mcd:Number = getMCD(w, h);
return [(w / mcd), (h / mcd)].join(":"); 
}

y estos son algunos testeos:

trace (getAspectRatio(320, 240)); // 4:3 
trace (getAspectRatio(540, 480)); // 9:8 
trace (getAspectRatio(550, 400)); // 11:8

Numero aleatorio dentro de un rango

Math.random() es una función super utilizada dentro de flash. Pero mucho más versátil es poder elegir el rango en el que nos devuelve dicho numero aleatorio, por ejemplo: si queremos un numero aleatorio entre el 5 y el 13. Eso se Puede solucionar fácil haciendo min + (max – min) * Math.random();

function randomMinMax( min:Number, max:Number ):Number {
return min + (max - min) * Math.random(); 
}
var miNumeroAleatorio:Number=randomMinMax(5,13);
trace(miNumeroAleatorio);

Se que no es una maravilla pero es muy útil y la utilizo aunque sea una vez por semana en mis proyectos.

Formulario de contacto

Dejo acá un formulario de contacto bonito  y que ocupa poco espacio para aquellos sitios con restricción de espacio. Es para AS2 y el campo de texto se ajusta a lo que escribas, lo único que le faltaría es que onfocus borre el texto inicial, pero eso es fácil de cambiar.

http://www.flashuser.net/flash-components/freebie-good-looking-flash-contact-form.html

Supongamos que estamos desarrollando un kiosco interactivo,y queremos implementar un teclado virtual para utilizar una pantalla touch screen.  Si lo programamos en ActionScript y necesitamos  limitar la cantidad de caracteres permitidos en algunas cajas de textos dinámicos, hay una manera muy sensilla utilizando la siguiente funcion propia de ActionScript 2  “Length(nombre:variable)“.

Ejemplo:

var contenido_texto = cual_txt.text;
var caracteres_n:Number = 4; //Definimos la longitud permitida
 
// Esta condición iría en el momento en que se tipea.
if (Length(contenido_texto) == caracteres_n) {
trace ("DynamicText bloqueado");// codigo que indica el fin de la estructura
}else{
trace ("DynamicText desbloqueado");
// Código de escritura normal
}

Esta función no esta documentada en el Help Reference de Flash CS3, cuantas mas habrá?

machete de actionscrip 2.0 y 3.0

Genial para no tener que acordarse como iniciar objetos, array, preloaders, etc. Un buen machete fácil de usar con ejemplos.

http://www.weberdesignlabs.com/cheatsheet/

Formulas útiles

La idea de este post es publicar formulas que son súper útiles para hacer cálculos de MCs con respecto el mouse. Por ejemplo mover hacia un lado u otro un mc según la distancia del puntero del mouse al centro de escenario o mover una lista de thumbnails según la posición del mouse con respecto distancia al centro del movieclip contenedor.
Lo anterior lo podríamos hacer por trigonometría sacando la distancia, pero también hay formulas útiles para calcular circunferencias y con ellas dibujar tortas para estadísticas incluso animarlas en tiempo de ejecución.

Distancias

La distancia entre dos puntos (x1,y1) y (x2,y2) es representada por la siguiente formula:

Como sacar la distancia del mouse al centro del escenario en AS3:

   var x1=stage.stageWidth/2;
    var x2=mouseX;
    var y1=stage.stageHeight/2;
    var y2=mouseY;
    var distx:Number=Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));

y si necesitamos esa distancia en porcentaje:

var porcentage=(distx*100)/x1

La única aclaración sería que el método con el cual saco la mitad al centro del escenario en AS3 es: stage.stageWidth y AS2 sólo cambiaría por Stage.width . Cambiando sólo eso debiran andar sin problemas en AS2.

Cortar parte de un texto

Se habrán encontrado varias veces con la necesidad de mostrar un resumen del texto de una noticia, esta función les va a facilitar la tarea sin necesidad de tener que poner  en la base de datos un campo con el resumen de la noticia, salvo que esta sea necesaria.

texto_completo = es la variable que contiene texto de la noticia completa
resumen = es la nueva variable que contendrá 80 caracteres de la noticia completa

var resumen = texto_completo.substring(0, 80);

IF ELSE simplificado

La semana pasada trabajando con un programador de sistema y vi una linea en su codigo que me llamo la atención,
en una sola linea habia escrito algo asi como  distance= (prevDist < 30) ? 50:20;
Lo que hace ésta sentencia es simplificar en una linea un IF ELSE, la sentecia anterior podría escribirse de la manera tradicional:

if (previDist<30)
{
distance=50;
} else
{
distance=20;
}

De manera que en una sola linea podemos ahorranos un par de lienas, es válido tanto en AS2 como en AS3.

Ejemplo:

var myvar:Number;
myvar=2
var i:Number = (myvar < 3) ? 5:2;
trace(i);// el resultado sería 5