Menú contextual de flash
Marzo 6, 2007, 1:41 pm
Guardado en: Flash / ActionScript

Por Patricia Campuzano

Me refiero, con menú contextual de flash, al que sale cuando pulsas el botón derecho del ratón sobre un swf. Sin modificarlo, salen las opciones corrientes (Alejar, aumentar, mostrar todo, etc…).

 El siguiente script nos permite ocultar y añadir opciones al menú.

var myContextMenu = new ContextMenu();

myContextMenu.hideBuiltInItems();

var Yahoo = new ContextMenuItem(”DESIGN-ROOT”, goDesignroot);

var Vyasil = new ContextMenuItem(”GRUPOSYCONCIERTOS”, goGruposyconciertos);

myContextMenu.customItems.push(Design-root);

myContextMenu.customItems.push(Gruposyconciertos);

function goDesignroot() {
           getURL(”http://www.design-root.com”, _self);
}

function goGruposyconciertos() {
            getURL(”http://www.gruposyconciertos.es“, _self);
}

this.menu = myContextMenu;

Probadlo y nos contáis :)



Mostrar datos de un array
Febrero 8, 2007, 7:45 pm
Guardado en: Flash / ActionScript

1.- Crear un campo de texto dinámico. Llamarlo nombres_txt

2.- Código:

// Creamos el array nombres con la cadena de datos string
var nombres:Array = ["Fito", "Pedro", "Iván", "Fernando", "David"];

// Creamos la función que mostrará la cadena de datos en el campo de texto nombres_txt. Utilizamos bucle para averigüar la cantidad de datos que tiene el array.

function listar (){
 for (var i:Number=0; i<nombres.length; i++){
  nombres_txt.text = nombres_txt.text + nombres[i] + “\n”;
 }
}

listar();



Tipos de Array
Febrero 8, 2007, 7:23 pm
Guardado en: Flash / ActionScript

String
var webs:Array = ["Yahoo", "Google", "Design-root"];

Núméricos
var cuentas:Array = [200, 400, 500];

Boleanos
var faltas:Array = [true, true, false];

De instancias
var clips:Array = [clip_mc, clip2_mc, clip3_mc];



Ejemplo attachMovie
Febrero 6, 2007, 8:33 pm
Guardado en: Flash / ActionScript

// ¿cuánto tienen que medir?
var screen:Number = 600;
var cantidad:Number = 20;
var newAncho:Number = screen/cantidad;

// duplicamos hasta la cantidad marcada

for(var i:Number = 0;i<cantidad;i++){
 var copion:MovieClip = _root.attachMovie(”cuadro”, “cuadro”+i, i);
 copion._width = newAncho;
 copion._x = newAncho*i;
}



Creación de MovieClips
Febrero 6, 2007, 8:00 pm
Guardado en: Flash / ActionScript

Por Patricia Campuzano
[Tomando apuntes en clases de Actionscript...] 

Podemos crear un movieclip de tres formas:

- por duplicación

- usando un símbolo de la biblioteca (la que se utiliza normalmente)

- creando uno vacío

Cualquier MovieClip que creemos estará siempre en la profundidad positiva (hasta 1.000.000 en positivo y hasta 32.000 en negativo). A más profundidád, quedará más por encima.

Para conocer la profundidad de un MovieClip

var prof:Number = cuad_mc.getDepth();
trace(prof);

Crear un MovieClip por duplicación

var cuad2_mc:MovieClip = cuad_mc.duplicateMovieClip (”cuad2_mc”, 0);

Para duplicar un movieclip se nos pide, por un lado el nombre del movieclip que queremos duplicar (cuad_mc) y luego, el nombre del nuevo movieclip (cuad2_mc) y la profundidad donde situaremos el nuevo elemento (profundidad 0). Toda esta información la recogemos en una variable con mismo nombre que el nuevo movieclip.

El nuevo movieclip podemos tratarlo como otro cualquiera. Por ejemplo, para cambiar su rotación…

cuad2_mc._rotation = 30;

Crear un MovieClip cogiendo un símbolo de la biblioteca

Al crear un nuevo MovieClip, marcar la opción exportar para actionscript. Necesitamos vincularlo para utilizarlo en actionscript.

El código para “tomar” un símbolo de la biblioteca (pero que no está en el escenario) es el siguiente

var cuad_mc:Movieclip = _root.attachMovie (”cuad”, “cuad_mc”, 5);

dooonde, cuad_mc es el nuevo movieclip y cuad el símbolo de la biblioteca que duplicamos. Podemos tratarlo como un movieclip normal..

cuad_mc._x = 50;

Entra en juego la i maravillosa

Si en lugar de 5 ponemos profundidad i, de este modo cada nuevo movieclip se cargará en una profundidad distinta (desde 0 hasta 1.000.000).

var cuad_mc:Movieclip = _root.attachMovie (”cuad”, “cuad_mc”, i);

Si queremos que nos cambie en _x progresivamente

cuad_mc._x = 50*i;O si queremos que cada nuevo movieclip se nombre de distinta forma

var cuad_mc:Movieclip = _root.attachMovie (”cuad”, “cuad_mc”+i, i);

Crear un movieclip vacío

Podemos crear un movieclip vacío que contenga otros tantos. Por ejemplo..

1.- Creamos el movieclip contenedor

var vacio_mc:Movieclip = _root.createEmptyMovieclip (”vacio_mc”, 0);

2.- Realizamos un bucle que duplique un símbolo de la biblioteca dentro del clip vacío

for (var i:Number = 0; i<10; i++){
   var cuad_mc:Movieclip = vacio_mc.attachMovie (”cuad”, “cuad”+i, i);
   cuad_mc._x= 60*i;
}

3.- El clip vacío podemos igualmente tratarlo como otro cualquiera

vacio_mc._rotation = 45;



Abrir un pop-up con HTML y flash
Enero 9, 2007, 5:04 pm
Guardado en: Flash / ActionScript, HTML / JavaScript

Siempre se me olvida el script para abrir un pop-up en HTML, de modo que aqui me dejo una pequeña chuleta…

<a href=”javascript:window.open(’PAGINA’,'TITULOPOPUP’,'width=ANCHO,height=ALTO’);void(0);”>blablabla</a>

Desde flash, idem…

on (release){
      getURL(”javascript:window.open(’PAGINA’,'NOMBRE’,'width=ANCHO,height=ALTO’);void(0)”);
}



Video en streaming con Flash 8
Diciembre 16, 2006, 9:19 pm
Guardado en: Flash / ActionScript

El término streaming se refiere a descargar un archivo de internet y reproducirlo al mismo tiempo, reduciendo así el tiempo de espera (en la mayoría de los casos, mínimo). Surgió con el lanzamiento de RealAudio 1.0 en 1995, antes para reproducir un archivo multimedia desde internet era necesario descargarlo 100%. Una eternidad…

En este artículo trataré sólo el tema del video, cómo crear un reproductor .swf en Flash listo para incluirlo en una página web y reproducirlo en streaming.

1) Importamos el video desde Archivo > Importar > Importar video. Flash admite video en los siguientes formatos: .avi, .dv, .mpg, .mpge y .mov.

2) Elegimos el archivo de video a importar localizándolo a través del botón Examinar.

3) Seleccionamos la opción Descarga progresiva desde el servidor web (en streaming).

4) Asignamos la calidad del video.

5) Elegimos el formato (estilo) del player. En este apartado podemos decidir además qué sección de video queremos importar márcando el inicio y el final con los marcadores.

Para finalizar nos pedirá guardar la película .fla, le damos nombre y listo. El proceso puede tardar varios minutos dependiendo del tamaño del video.

Flash crea en el escenario una instancia con el archivo de video .flv. Para verlo, tendremos que exportar la película para crear asi el archivo .swf. Es decir, el reproductor del swf carga en streaming el archivo .flv del video. Es necesario que ambos archivos estén en el mismo directorio web.



Imágenes random en Flash
Diciembre 16, 2006, 9:11 pm
Guardado en: Flash / ActionScript

Para crear un banner flash en donde aparezca de forma aleatoria una imagen distinta cada vez que se carge la página sigue los siguientes pasos:

1.- Creamos las imágenes que queremos cargar de forma aleatoria, por ejemplo 5. Convendrá que todas las imágenes tengan el mismo tamaño y formato. Las llamamos de forma secuencial img001.jpg, img002.jpg, etc…

2.- En la película flash, creamos un movieclip y lo nombramos “imagenes_mc”. Aquí es donde se cargarán las imágenes aleatoriamente.

3.- En el primer fotograma clave de la misma linea de tiempo ponemos la siguiente acción:

imagenes_mc.loadMovie (”img00″ add (1+random(5)) add “.jpg”);

“imagenes_mc” donde se cargan las imágenes, loadMovie la instrucción que carga una película/imagen en la película actual, para lo que definimos “img00″ el nombre de la imagen más un número aleatorio del 1 al 5 (número de imágenes) más la extión del archivo .jpg



Eliminar el contorno de un .SWF en una página web
Diciembre 7, 2006, 7:51 pm
Guardado en: Flash / ActionScript, Usabilidad

Por Patricia Campuzano

Desde hace menos un año los archivos .SWF insertados en un documento web aparecen por defecto “desactivados”, es decir, para navegar por una película flash es necesario hacer clic sobre ella previamente.

detecflash.jpg

Desconozco el motivo, pero gracias a un .js obra de Geoff Stear y el uso de capas podemos evitarlo.

1.- Descargar el archivo swfobject.js y guardarlo en la raíz de nuestro sitio web

http://www.design-root.com/js/swfobject.js

2.- Incluimos dentro del <head> del documento web la siguiente etiqueta

<script src="swfobject.js" type=”text/javascript” ></script>

3.- Insertamos el flash en nuestro documento a través del siguiente div:

<div id="flashcontent">
<script type="text/javascript">
var so = new SWFObject("archivo.swf", "Player", "500", "500", "7", "000000");
so.write("flashcontent");
</script>
</div>

Los parámetros que definen el archivo .SWF a mostrar son los de la variable SWFObject

var so = new SWFObject("archivo.swf", "Player", "500", "500", "7", "000000");

Si quisiéramos insertar más de un .SWF en la misma página, podríamos duplicar la capa cambiando su id.



Desplazar un objeto con deceleración
Diciembre 7, 2006, 1:16 pm
Guardado en: Flash / ActionScript

Por Patricia Campuzano 

Hace algún tiempo escribí un post sobre cómo Animar en flash con extensiones MovieClip.tween() ahorrándonos el trabajo de crear las animaciones de forma tradicional (con interpolación de movimiento).

Existe otra forma de desplazar objetos por el escenario aplicándoles una deceleración de movimiento de una forma más breve y sin utilizar las extensiones Tween gracias a la siguiente fórmula:

posX = posX + ((posX_final - posX)/velocidad)

//////////////////////////////////////////

Ejemplo: vamos a cambiar la posición _x del clip “caja” situado en el escenario aplicándole una deceleración en el movimiento. El código lo incluímos en el primer fotograma (sólo será necesario uno gracias al evento onEnterFrame).

// Creamos las variables de posición del objeto: posición inicial y posición final
var posX:Number = 100;
var posF:Number = 500;

// Creamos la variable velocidad
var velocidad:Number = 10;

// Creamos la función que contendrá la fórmula de deceleración y que además aplicará dicha fórmula al clip del escenario para desplazarlo

function moverCuadrado () {
        posX = posX + ((posF - posX)/velocidad);
        _root.cuadro._x = posX;
}

// Ejecutamos la función moverCuadro con el evento onEnterFrame
cuadro.onEnterFrame = moverCuadrado;

////////////////////////////////////////////