Google Web after-hours
Julio 2005
LunMarMieJueVieSabDom
 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

« Jun Ago »

Archivo para la categoría actionScript

Sistema de precarga múltiple

Martes, Enero 3rd, 2006

Dificultad

Este sistema de precarga nos ofrece varias ventajas:

El código es tan genérico que puede servir como plataforma para cualquier sitio sin modificar una sola línea de programación ( excepto los elementos de un Array)

Soluciona el problema de precarga en archivos que utilizan componentes, archivos de sonido, fuentes embebidas, etc. Mostrando los datos de precarga reales.

¿Como utilizarlo?

Muy fácil, escribe los .swf que vas a utilizar como si fueran módulos, un módulo sonido, un módulo fondo de página, un módulo animaciones, etc. Todos estos módulos serán cargados desde un .swf principal cuyo único comentido es el de actuar como nexo entre todos los módulos.

Código

Al utilizar un array multimensinal, puedo almacenar en cada elemento diferentes valores o propiedades que …

SimpleImageGallery I

Viernes, Diciembre 30th, 2005

Dificultad
Keywords MovieClipLoader(), MovieClipLoader.loadClip()

Sencilla galería de imágenes que se muestran una a una en un mismo marco haciendo clic sobre la imagen que se está visualizando. Las URL’s de las imágenes están escritas en un documento XML. Para la carga de archivos se utiliza la clase MovieClipLoader .

Descargar archivos

Breve explicación del código

Se declaran las variables que se van a utilizar durante el proceso.

El array imagenesA almacenará la URL de cada imágen previamente cargada desde XML

Index servirá para conocer en todo momento el número de imagen que se está visualizando, lo cual permitirá empezar a a visualizar las imágenes desde el principio una vez se detecte el final de los elementos de imagenes A.

Para esta …

Efecto nieve

Viernes, Diciembre 16th, 2005

¿Te gusta el efecto de nieve que ves en la felicitación del blog?

Dibuja una forma semicircular, conviertela en clip de película, y dale un nombre de identificador ‘copo_mc’. Ahora solo tienes que copiar el código que hay abajo.

var cantidad = 250;
var max = 50;
var min = 10;
var ancho = Stage.width;
var altura = Stage.height;
for (var i = 0; i < cantidad; i++) {
copo_mc = this.attachMovie("copo_mc", “copo_mc” + i, i);
with (copo_mc) {
_x = Math.floor(Math.random() * ancho);
_y = Math.floor(Math.random() * altura);
_xscale = _yscale = _alpha = Math.floor(Math.random() * (max - min + 1)) + min;
}
copo_mc._ypos = Math.floor(Math.random() * 2 + .5);
copo_mc.incremento = -0.025 + Math.random() * 0.05;
copo_mc.radianes = 0;
copo_mc.onEnterFrame = function() {
this.radianes += this.incremento;
//trace(this.radianes)
this._x += Math.sin(this.radianes);
this._y += this._ypos;
if (this._y >= altura …

AS, Clase graficaBarras

Jueves, Diciembre 8th, 2005

graficaBarras es una clase que nos permitirá representar nuestra información a través de gráficos de barras tal como indica su nombre, la peculiaridad de esta clase es que nos permitirá poner tantas barras como queramos y definir su “apariencia” como el ancho, el alto (vendrá definido por su cuantía a representar), color y perspectiva.

En el archivo .FLA toda la información relativa esta definida a través de arrays, pero estos pueden ser fácilmente substituibles por fuentes externas de datos como txt, xml, bbdd o lo que se os ocurra.

Descargar archivos

Simulando el scroll del navegador con flash

Miercoles, Noviembre 30th, 2005

Dificultad

Ejemplo | see example
Descargar archivos | download source

Para el efecto de deslizamento de esta pelí­cula, he utilizado la clase ‘mc_tween2.as’ de Fernando Zeh, puedes descargarla en: MC Tween

Para dar un efecto de desplazamiento suave a los contenidos del sitio, utilizamos la clase mc_tween2.as, puedes utilizar cualquier otra clase como por ejemplo las de Laco o simplemente trabajar con las propiedades del objeto (en este caso _y) directamente, mas abajo, veremos como. Lo primero que escribimos en nuestro fla es el #include a la clase.

#include “mc_tween2.as”

Como habras podido observar en el ejemplo, tanto la barra de scroll como los contenidos de la pelí­cula adaptan su posición y tamaño a los del navegador …

Creando un control de volumen dinámicamente

Sabado, Noviembre 19th, 2005

Dificultad

KeyWords

Sound(), Sound.attacchSound(), MovieClip.getBounds(), MovieClip.globalToLocal(),

Puedes ver un ejemplo haciendo clic aqui »

Descargar código » (781 kb)

Este script crea dinámicamente una barra para controlar el volumen del sonido, se han utilizado los métodos MovieClip.globalToLocal(), MovieClip.getBounds() para gestionar mejor las propiedades _x, _y, _width de forma que estas sean independientes de la zona de la película en la que insertemos el controlador de volumen.

1. Abre un nuevo documento flash
2. Guardar como volume_slider.swf
3. Archivo>Importar>Importar a biblioteca
4. Selecciona un archivo de sonido>Aceptar
5. Abre el panel biblioteca (Ctrl +L)
6. Haz clic con el botón derecho del mouse sobre el icono de sonido que hay en la biblioteca
7. En el panel ‘Propiedades de vinculación’ marca ‘Exportar para ActionScript’
8. En …

Essential ActionScript 3.0… ya está próximo

Martes, Noviembre 15th, 2005

Colin Moock anuncia la próxima publicación de su nuevo libro Essential ActionScript 3.0 para quien ya tenga Essential ActionScript 3.0 recordará como se implementa una clase ImageViewer. En macromedia labs tienes el código en su versión As3

Yahoo Maps en tus SWF

Jueves, Noviembre 10th, 2005

Durante los últimos días, he leido tanto acerca de Yahoo Maps que no he podido evitar la tentación de experimentar un poco, ignoro si en un futuro está previsto incluir nuevos mapas (de momento solo EEUU) motivo por el cual tampoco he profundizado mucho, pero si he podido comprobar lo sencillo que es implementar uno de estos mapas.

Solo tienes que instalar el componente Yahoo! Maps MXP (Macromedia® eXtensions Package que instalará las clases necesarias en tu máquina y obtener un ID de usuario.

Como se hizo: Paregos scrollText

Lunes, Octubre 31st, 2005

Basado en: http://www.paregos.com
Por supuesto, no pretendo que el código que he escrito sea exacto al original, pero seguramente se acerca mucho. He intentado que la reproducción sea lo má fiel posible en cuanto a funcionamiento, en cuanto a tipografia, tamaño, etc. es sencillo personalizarlo.

Excepto los cursores en forma de mano (que se enlazan en la biblioteca), la aplicación se crea con actionScript, lo he hecho así pensando en una futura clase o componente (el código sería similar).

Es exportable tanto para Flash MX2004 como para Flash 8, la única diferencia es que para textField he utilizado la propiedad align=’justify’ que no está disponible para MX2004.

Para algunas animaciones, he utilizado la clase mc_tween2 disponible en MC Tween

Ver …

Borrar intancias de MovieClip contenidas en otro clip de película.

Martes, Octubre 11th, 2005

Tengo un clip de película contenedor al que en el transcurso de una aplicación se le han añadido dinámicamente instancias de otros clips de película , necesito borrarlas todas, pero no sé cuantas existen ni su nombre …

Esta sencilla función, se encarga de eliminar todas las instancias de clip de película según la ruta especificada. Compatible con clips de película instanciados:

en tiempo de diseño. (el clip de película ya está en el escenario de nuestra película antes de exportar)
con duplicateMovieClip()
con attachMovieClip()

unloadMovieClipChilds = function (myObject) {
for (name in myObject) {
if (typeof (myObject[name]) == “movieclip") {
myObject[name].unloadMovie();
}
}
};

Uso : pasar como argumento de la función la ruta completa del clip de pelicula que queremos ‘limpiar’ (tambien con clips anidados)

unloadMovieClipChilds(clip); // …

Componentes: Utilizando contornos de fuentes incorporadas (embedFonts)

Jueves, Septiembre 22nd, 2005

Tres técnicas para personalizar el estilo de los UI components de flash utilizando contornos de fuentes incorporadas (embedFonts). Para todos los casos, el primer paso consiste en vincular la fuente que se va a utilizar:

1. Abrir el panel Biblioteca
2. Hacer clic en el botón situado a la derecha de la parte superior del panel.
3. Seleccionar Nueva fuente
4. En el combobox Fuente, seleccionar la fuente y escribir un nombre. Aceptar
5. En la biblioteca, se habrá creado un nuevo objeto fuente, seleccionar y hacer clic con el botón derecho.
6. Desmarcar Exportar para ActionScript La casilla identificador, puede ser el mismo que hemos utilizado como nombre. Aceptar
7. Insertar -> Línea de tiempo -> Capa
8. Modificar -> Línea de tiempo -> Propiedades de …

ASDoc format

Martes, Septiembre 20th, 2005

La referencia de ActionScript proporciona información sobre la sintaxis y uso de cada elemento oficialmente soportado por ActionScript. Incluye una sección elementos de lenguaje; entradas alfabéticas para los elementos de cada clase; una sección de elementos de ActionScript obsoletos; y un índice completo que contiene todas las entradas.

Para ver de que estamos hablando:

http://www.asdocs.com »

Puedes descargar la referencia de lenguaje de ActionScript en formato ASDoc en la siguiente dirección:

http://www.macromedia.com/support/documentation/en/flash »

Haz clic en la pestaña ActionScript y busca el enlace Download stand-alone HTML”

Crea una carpeta nueva (recomendado) y descomprime el archivo zip. Para navegar la aplicación, haz clic sobre index.html. La manera más cómoda de navegar entre estos documentos es activar la opción frames

Via: …

Layout class

Domingo, Septiembre 18th, 2005

La clase Layout Class facilita la distribución de objetos en relación al escenario u otro clip de película, al llamar la clase, se pueden enviar parámetros para:

Alinear un clip de película al escenario
Alinear un clip de película a otro clip
Controlar la mínima y máxima posición y tamaño de un clip de película

He estado probando la clase, y la verdad es que creo que se le puede sacar mucho jugo. Puedes ver un ejemplo de uso haciendo clic aqui »

Puedes descargar la clase y su documentación en el blog del autor www.vanrijkom.org//layout_manager »

Math.random(): Situar aleatoriamente un clip de película

Sabado, Septiembre 3rd, 2005

Dificultad

Nunca sabremos cuando un par de sencillas líneas de código ayudarán a hacer más fácil nuestro trabajo. Un ejemplo de ello, es este script que genera aleatoriamente las posiciones _x e _y para un clip de película.

Lo interesante, es que el script puede aplicarse tanto a un clip que está situado en _root como a un clip de película contenido en otro clip de película (siempre indicando la ruta completa)

El script es el siguiente:

MovieClip.prototype.random_position = function() {
x = (this._parent._width-this._width);
y = (this._parent._height-this._height);
this._x = (Math.floor(Math.random()*x));
this._y = (Math.floor(Math.random()*y));
};

Modo de uso;

miclip_mc.random_position();

Como puedes ver, solo necesitas enviar a la función el nombre del clip de película. Como es lógico, necesitamos poner un límite a la posición …

actionScript 2.0 de Colin Moock en español

Miercoles, Agosto 24th, 2005

No puede faltar en tu biblioteca. Anaya multimedia, ha publicado el libro Action Script 2.0 escrito por Colin Moock.

A menudo he oido que (a pesar de las muchas recomendaciones), alguien no compraba el libro a causa del idioma, ahora ya puedes disponer de el en Castellano.

No lo puedo confirmar ya que no dispongo de un ejemplar, pero diría que se trata de la versión del Essential ActionScript 2.0 (al menos la portada es la misma).

ActionScript 2.0 ficha

Recorrer un array

Sabado, Julio 16th, 2005

Dificultad
Autor: mardelcoral

El día a día hace que a veces tengamos que usar scripts que a veces a simple vista pueden parecer inútiles… Pero que en realidad nos pueden servir en multitud de ocasiones, este es el caso de este ejemplo que trata de explicar como podemos recorrer los elementos de un array de forma aleatoria sin repetir ningún elemento y sin dejarnos ninguno, claro ;-)

Este es el código:
Para este ejemplo vamos a llenar la escena de cuadraditos y los haremos desaparecer de uno a uno sin ningún orden establecido.
“clip†es el nombre de la instancia del clip que vamos a duplicar.

Hacemos invisible el clip que usaremos para duplicar.

clip._visible = 0;

opc= al nº de clips que queremos duplicar

opc …

Efecto de texto group94.com

Domingo, Julio 10th, 2005

www.group94.com es referente y fuente de inspiración para muchos de nosotros. Buti, presenta este script que emula el efecto de texto utilizado en el sitio de group94.com .

Autor: Buti

Descargar »

Calculo de años bisiestos

Miercoles, Julio 6th, 2005

En estos dias, ando liado con una pequeña aplicación que requiere un calendario, una de las variables a tener en cuenta, es la posiblidad de que un año sea bisiesto, hasta ahora, lo que sabía sobre el tema, es que estos, se diferencian por tener 366 dias, pero no tenia idea de como calcular dicho valor, buscando, llego a esta conclusión:

Son bisiestos todos aquellos años divisibles por cuatro, y de los años seculares (divisibles por 100), los que sean divisibles por 400.

Huelga decir que hubiera sido más sencillo buscar la formula en internet, y lo hice, pero como me gusta entender lo que hago, y además no encontré nada que me agradara, escribí el siguiente script:

Como método de …

Tostadense ToolTip

Miercoles, Junio 29th, 2005

Hace tiempo Tostadense creó este magnifico toolTip (el mejor que he visto) pero sin saber porque, había quedado sin publicar.

Métodos
myToolTip.show("texto", timer)
myToolTip.hide() oculta el toolTip
myToolTip.colorTransform(ra, rb, ga, gb, ba, bb, aa, ab) modifica el color de fondo del toolTip
myToolTip.resetColor() vuelve color de fondo al modo original
myToolTip.defaultSettings() vuelve variables de ajuste a su valor por defecto

Variables de ajuste
fadeVel velocidad de fundido
maxAlpha nivel máximo de alpha
shadow uso de sombra
embedFonts fuentes embebidas
shadowX desplazamiento horizontal de la sombra el px.
shadowY desplazamiento vertical de la sombra el px.

Descargar »

Zoompane component

Jueves, Marzo 10th, 2005

Autor: Iván

Funciones de carga de la imagen

loadImage("path/file");
attachImage("idName");

Funciones de ajuste de área

setSelectionArea(true/false);
setZoomMode(0); –> (1 | 0 | -1) / cero es inactivo / más de cero es zoom in / menos de cero es zoom out
setMaxZoom(valorMaximoDeZoom); –> rango entre 100 y 3200
setZoomLevel(nivelDeZoom);
setEnabledArea(true/false);
setPosition(xPorcentaje, yPorcentaje);
setSize(width, height);
setColors(colorFondo, colorBorde, colorAreaSeleccionBorde, colorAreaSeleccionRelleno);
addMouseIcons(iconoZoomIn,iconoZoomOut,iconoseleccion,iconoDrag);
removeMouseIcons();
setPreLoadFunction(nombreDeLaFuncion);
setOnLoadFunction(nombreDeLaFuncion);
setOnChangedFunction(nombreDeLaFuncion); –> cada evento que se ejecuta llama la esta funcion
centerImage(); –> centra la imagen en el área de visualización
fitOnArea(); –> ajusta la imagen en el área de visualización
actualPixels(); –> vuelve la imagen a su tamaño real(100%)
fitOnPixels(); –> ajusta la posición de la imagen en números enteros

RETURN –> el componente devuelve las siguientes variables de control

getEnabledArea()
getSelectionArea()
getZoomMode()
getMaxZoom()
getZoomLevel()
getXPercent()
getYPercent()
getWidth()
getHeight()
getBackgroundColor()
getBorderColor()
getSelectionBorderColor()
getSelectionFillColor()
getTotalBytes()
getLoadedBytes()
getUseMouseIcons()
getPreLoadFunction()
getOnLoadFunction()

report –> la variable report devuelve un string con todas las variables de control juntas

Descargar »

After-Hours Header Contest … and the winner is…

Miercoles, Marzo 9th, 2005

1 Premio
Autor:
Diego Mendiguren

1 Plan web en CDMon +
1 Dominio gratuito por un año (gentileza de CDMon)
La biblia de Flash MX 2004 +
Flash MX 2004, trucos esenciales.

2 Premio
Autor:
Isaac

La biblia de Flash MX 2004 +
Flash MX 2004, animaciones y juegos.

3 Premio
Autor:
donDiegote

Flash MX 2004, diseño y creatividad.

Podeis ver el resto de trabajos aquí »

Patrocinan

www.cdmon.com » | www.anayamultimedia.es »

Texto siempre visible

Sabado, Febrero 26th, 2005

Ingenioso truco que Toni nos deja en la sección Mis Trucos del foro.

Caso:

Reproductor de diapositivas con textos (texto en el área de la imagen)

Problema:

Contraste, si la imagen tiene colores muy oscuros y la typo es negra, no se puede leer, por el contario, si la imagen tiene tonalidades claras y la typo es blanca tampoco la puedo leer bien.

Solución:

Se supone que estamos hablando de una aplicación dinámica (si no lo fuera, simplemente pondría el color de typo que se viera bien en cada caso)

1. Duplicar el campo de texto.
Colocarlo en una capa inferior
2. Primera capa color texto negro
Segunda capa color texto blanco
3. Desplazar capa inferior 1 px derecha 1 pixel …

Distribución de objetos en el escenario basado en el cálculo de ángulos

Viernes, Febrero 25th, 2005

Dani www.mardelcoral.com ha escrito este útil script para la distribución de objetos en el espacio basado en los ángulos.

//nº de opciones que queremos desplegar
opc = 9;
//el angulo a partir del cual queremos desplegar la selección
angulo0 = 0;
//cálculo del ángulo asociado a cada opción
angulo = 360/opc;
for (i=0; i<opc; i++) {
duplicateMovieClip(clip, “clip"+i, i);
//incrementamos el angulo para cada opción
elAngulo = angulo0+(angulo*i);
//convertimos el ángulo a radianes
rad = (Math.PI*2/360)*elAngulo;
//aplicamos las leyes de la trigonometria
eval("clip"+i)._x = Math.round(clip._x+(100*Math.cos(rad)));
eval("clip"+i)._y = Math.round(clip._y+(100*Math.sin(rad)));
}
}

Descargar ejemplo »

Minisite en 3 sencillas funciones

Martes, Febrero 22nd, 2005

Nuestro compañero del foro dondiegote nos muestra en la sección de Mis Trucos, la forma de realizar un Minisite en 3 sencillas funciones, esta es su explicación:

Wenas gente.

He tenido que hacer una minisite para enseñar un logo on-line y he caido en que el sistema que utilizo para hacer algo mini podría ser un truco.

El planteamiento es muy sencillo, tengo una función Veo() para mostrar las cosas, una noVeo() para no verlas y una función carga() para controlar los clips cargados y si no están en caché mandar la precarga.

El código:

prof = 10;
Secciones = new Array("peli1″, “peli2″);
// utilizo este array para el nombre de los botones y de las pelis a cargar
function Veo(ke) {
// para …

Prototype reverseAndUnload

Jueves, Febrero 3rd, 2005

Recorre la línea de tiempo de una película cargada via loadMovie() y al llegar a un determinado fotograma (pasado como argumento al prototype) la descarga.

MovieClip.prototype.reverseAndUnload = function($fotograma) {
if (arguments.length == 0) {
this.$fotograma = 1;
} else {
this.$fotograma = $fotograma;
}
this.onEnterFrame = function() {
if (this._currentframe == this.$fotograma) {
unloadMovie(this)
delete this.onEnterFrame;
} else {
this.prevFrame();
}
};
};

Ejemplo de uso:

miclip_mc.reverseAndUnload(2);

Descargar ejemplo »

Libro de visitas con Flash y ASP

Viernes, Enero 21st, 2005

Dificultad

Tener una página web personal, implica una complicidad con el usuario, dotar a nuestro sitio de interacción es un valor añadido, el ‘libro de visitas’ o guestBoock’ permite a nuestras visitas dejar constancia de su paso, opinar o saludar…

En este tutorial, se muestra como crear un libro de visitas en una interface Flash, con ASP como lenguaje de servidor y XML como base de datos (flash no puede escribir directamente en documentos, a excepción de sharedObject() que puede escribir en el disco duro del sistema local).

Kaax

Projecto terminado »

Descargar archivos »

libro.fla

Interface donde se leen los mensajes enviados, pulsando el botón ‘insertar’ se carga la película ‘insertar.swf’ que veremos en la siguiente página.

No explicaré como …

Carga de Archivos Usando Flash, PHP y un poco de Javascript.

Miercoles, Enero 12th, 2005

Esta es la síntesis de una técnica que tuve que crear para un projecto más o menos reciente, que aunque un poco más compleja requiere de exactamente las mismas estructuras. Básicamente, todas las soluciones que he encontrado para cargar archivos a un servidor remoto, desde un formulario hecho en Flash, o son incompletas, demasiado encapsuladas o innecesariamente complejas.

Este es mi intento de establecer una solución general, que al mismo tiempo sea lo suficientemente flexible para ser extendida y contextualizada.

PROBLEMA: La ausencia de controles que nos permitan acceder al sistema operativo desde el reproductor de Flash hace imposible cargar archivos locales a un servidor remoto, desde una interface basada en Flash.

SOLUCION: Usar un formulario HTML oculto en un marco …

Botón doble Click

Lunes, Enero 3rd, 2005

Dificultad

Keywords: getTimer()

Con este sencillo script insertado en las acciones de un botón, se simula el evento ‘doble click’. Para ello se compara alternativamente el valor de dos variables a las que se asigna el valor de getTimer(); en el momento en que la diferencia entre estas dos variables es inferior al estipulado, se produce el evento ‘doble clic’ .

En el ejemplo, se utiliza un intervalo de tiempo de 0,25 segundos (este valor se puede incrementar para hacer más sensible el vento).

boton_mc.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
trace("doble click");
} else {
timer = getTimer()/1000;
}
};

Aprovechando el script anterior, podemos crear un prototype que nos permita simular el evento en varios botones de un mismo documento.

MovieClip.prototype.doubleclic = function() …

Flash XML CDATA

Domingo, Enero 2nd, 2005

Dificultad

La sección CDATA, es un nodo especial de XML, que permite a flash interpretar correctamente caracteres especiales y etiquetas HTML, vemos un ejemplo.

XML

<?xml version="1.0" encoding="utf-8"?>
<enlaces>
<titulo>
<![CDATA[
<font color="#999999" face="Verdana" size="9">
<b>Mis enlaces favoritos</b>
</font>]]>
</titulo>
<categoria>
<![CDATA[
<font color="#999999" face="Verdana" size="9">
<b>Cat:&nbsp;</b><i>Blogs</i>
</font><br><br>]]>
</categoria>
<lista>
<![CDATA[
<font color="#760000" face="Verdana" size="9">
<ul>
<li><a href="http://www.asfusion.com/blog/index.cfm?setlan=es">ASFusion</a></li>
<li><a href="http://www.carlosrovira.com/">Carlos Rovira</a></li>
<li><a href="http://www.code4net.com/">Code 4 Net</a></li>
<li><a href="http://www.cristalab.com/">Cristalab</a></li>
<li><a href="http://www.design-nation.net/es/">Design-nation</a></li>
<li><a href="http://www.elecash.org/blog/">Elecash</a></li>
<li><a href="http://www.10-lab.com/blog/">Flash Lab</a></li>
<li><a href="http://www.flashla.com/">Flashla</a></li>
<li><a href="http://blog.innocuo.com/">Innocuo</a></li>
<li><a href="http://www.kadazuro.com/blog/">Kadazuro</a></li>
<li><a href="http://klr20mg.com/">Krl20Mg</a></li>
<li><a href="http://www.nomaster.com">nomaster</a></li>
<li><a href="http://www.oscartrelles.com/es/">Oscar Trelles</a></li>
<li><a href="http://www.sidedev.net/blog/">SideDev</a></li>
<li><a href="http://x-flash.org/blog/index.html">X-Flash</a></li>
</ul>
</font>]]>
</lista>
</enlaces>

actioncript

Stage.scaleMode = “noscale";
miXML = new XML();
miXML.ignoreWhite = true;
// – creo un campo de texto
createTextField("texto", this.getNextHighestDepth, 10, 10, “", “");
texto.html = true;
texto.multiline = true;
texto.autoSize = …

Contador en Flash

Domingo, Diciembre 26th, 2004

Dificultad
Keywords
SharedObject(), SharedObject.getLocal(), my_so.data, my_so.flush()

Este contador, está pensado para guardar datos en local. PE. Guardar la puntuación obtenida por un jugador.

// – tiempo minimo expresado en minutos (0 para registrar todas las visitas)
var tiempo_minimo = 60;
// – posición para mostrar el contador
var Xcontador = 0;
var Ycontador = 0;
// – formato del texto que visualiza el contador
formato_contador = new TextFormat();
formato_contador.font = “verdana";
formato_contador.color = 0xff0000;
formato_contador.size = 10;
formato_contador.underline = false;
formato_contado.bold = false;
formato_contador.italic = false;
// – función que comprueba el tiempo transcurrido desde la última visita
tiempo = function () {
// – se registran todas
if (tiempo_minimo == 0) {
return true;
}
// – año
if (contador_so.data.aa<anyo ) {
return true;
}
// – mes
if (contador_so.data.mm<mes) {
return true;
}
// – dia
if (contador_so.data.dd<dia) {
return true;
}
// – minutos
minutosUltimaVisita = (contador_so.data.hh*60)+contador_so.data.mt;
minutosAhora = (hora*60)+minutos;
diferencia = …

Menú links estilo FlashGuru.com

Domingo, Diciembre 19th, 2004

Visitando la web de Guy Watson FlashGuru tuve la idea de emular los menús que usa para listar sus enlaces.
Casi lo he conseguido…

Descargar archivos aqui

Nota
Cualquier consulta sobre este tutorial o .fla debe realizarse en el foro.

Flash MX - setInterval() - Detectar inactividad

Miercoles, Diciembre 15th, 2004

KeyWords
setInterval(), clearInterval(), onMouseMove(),addListener().
Este código podriamos utilizarlo por ejemplo, para activar un salvapantallas, un mensaje, etc. tras un periodo de tiempo de inactividad.

tiempo = 2;
// – función que se activa cada intervalo marcado por la variable ‘tiempo’
idInterval = setInterval(function () {
// – mouse_moved = false = no hay movimiento
if (mouse_moved == false) {
// – desactivar setInterVal(), opcional
clearInterval(idInterval);
// – goTo, loadMovie(), etc …
trace(tiempo+” segundos sin actividad");
} else {
// – restaurar variable
mouse_moved = false;
}
}, tiempo*1000);
// – crear un objeto detector
mouse_Listener = new Object();
mouse_Listener.onMouseMove = function() {
// – mouse_moved = true = hay movimiento
mouse_moved = true;
};
// – registrar el detector (mouse_Listener) en el objeto Mouse
Mouse.addListener(mouse_Listener);

Flash MX - MX2004 - Dibujar un borde a un JPEG cargado dinámicamente.

Domingo, Diciembre 12th, 2004

KeyWords
loadMovie, lineStyle(), moveTo(), lineTo()
En el foro se plantea lo siguiente:

Estoy haciendo una web para la que me han pasado un montón de fotos con un marquito que rodea a cada foto de 1 pixel. El problema es que al cargar las fotos en un contenedor, el marco lo “suaviza” y en dos lados no muestra el marco y en los otros dos lo muestra más grueso.

Sé que en la bibliteca se puede controlar esto deshabilitando la opcion “Permitir Suavizado” pero aquí al ser una carga externa…

La única solución que se me ocurre es generar para cada imagen un swf en el que haya deshabilitado en la imagen la opcion de suavizado y en vez de cargar el jpg, cargar …

Flash MX - MX2004 curveTo (entender como actúa)

Viernes, Diciembre 3rd, 2004

Dificultad

keywords
Stage.onResize, Stage.scaleMode, Stage.scale, Stage.addListener() , moveTo, lineTo, curveTo
He creado esta pequeña aplicación por la sencilla razón de que a pesar de usar frecuentemente actionScript y la API de dibujo de flash, no alcanzaba a comprender bien el funcionamiento del método curveTo(), no sé si a alguien le será útil, pero en todo caso, creo que el código puede ser interesante, ya que además he jugado un poco con el objeto Stage() para manejar la posición de los elementos de control de la aplicación y el background de la misma.

Descargas
Ver aplicación
Descargar archivos aquí

Nota
Cualquier consulta sobre este tutorial o .fla debe realizarse en el foro.

Percent prototype

Viernes, Diciembre 3rd, 2004

percent prototype
Extrae el porcentaje de una variable
Parámetros $percent

Number.prototype.percent = function($percent) {
return (this/$percent);
};

Ejemplos de uso

var a = 100;
trace(a.percent(20)); // retorna 5
// –
str= a.percent(10);
trace(str); // retorna 10
// –
a = a.percent(5);
trace(a); // retorna 20

Funcion setDynamicMasck

Martes, Noviembre 30th, 2004

KeyWords
setMask()
Parámetros
clip: clip de pelí cula al que se aplica la máscara.
profundidad: para cada máscara, hay que usar un nivel de profundidad diferente.
pos_x: posición en el eje _x donde se empieza a dibujar la máscara.
pos_y: posición en el eje _y donde se empieza a dibujar la máscara.
ancho: ancho de la máscara.
alto: alto de la máscara.

setDynamicMasck = function(clip, profundidad, pos_x, pos_y, ancho, alto) {
mascara = createEmptyMovieClip("clipMascara"+profundidad, profundidad);
with (mascara) {
beginFill(0x000000, 100);
moveTo(pos_x, pos_y);
lineTo(pos_x+ancho, pos_y);
lineTo(pos_x+ancho, pos_y+alto);
lineTo(pos_x, pos_y+alto);
lineTo(pos_x, pos_y);
endFill();
}
clip.setMask(mascara);
};

Ejemplo de uso
En el ejemplo, se crean tres máscaras para tres instancias de clip de pelí cula (una máscara dinámica, solo puede aplicarse a una instancia)

setDynamicMasck(clip1_mc, 1, 0, 0, 100, 200);
setDynamicMasck(clip2_mc, 2, 100, 0, 100, 200);
setDynamicMasck(clip3_mc, 3, 200, 0, 200, 200);

Puedes descargar un archivo de ejemplo haciendo clic …

unloadMultipleMovieClip Function

Miercoles, Noviembre 24th, 2004

KeyWords
unload multiple, arguments(), unloadMovie()

unloadMultipleMovieClip
Descarga todos las instancias de objeto clip de película enviados como argumento a la función.

unloadMultipleMovieClip = function () {
for (var i = 0; i<arguments.length; i++) {
arguments[i].unloadMovie();
}
};

Uso

unloadMultipleMovieClip(clip1, clip3, clip5);

Barra preloader

Martes, Octubre 5th, 2004

Dificultad

Todo lo que necesitamos para construir este sencillo preloader, es dibujar una barra, convertirla en clip de pelí cula. En la imagen inferior se muestra la lí nea de tiempo del ejemplo.

barra_mc._xscale = 0;
this.onEnterFrame = function() {
carga = Math.floor((getBytesLoaded()/getBytesTotal())*100);
barra_mc._xscale = carga;
porcentaje.text = carga;
porcentaje._x = barra_mc._x+barra_mc._width;
if (carga == 100) {
gotoAndPlay("_inicio");
delete this.onEnterFrame;
}
};

Veamos como funciona el código:

En primer lugar cambiamos la propiedad _xscale del clip de pelí cula barra_mc de manera que al iniciarse la precarga, este tiene un valor igual a 0

barra_mc._xscale = 0;

Declaramos una variable que recoge el resultado de calcular los bytes cargados

carga = Math.round((getBytesLoaded()/getBytesTotal())*100);

Una vez se concluye la precarga, enviamos el cabezal al fotograma siguiente para que la pelí cula se reproduzca.

if …

Scroll Básico

Viernes, Septiembre 10th, 2004

Dificultad

Ejemplo

1. Importar un archivo de sonido a la biblioteca y vincular para exportación, nombre de identificador sonido

2. Insertar un campo de texto dinámico y darle el nombre de instancia miTextField

3. Crear dos botones clip de pelí cula subir_btn - bajar_btn (los clip de pelí cula botón consistirán en un campo de texto con nombre de instancia texto)

Código

Objeto sound()

sonidoScroll = new Sound();
sonidoScroll.attachSound("sonido");
sonidoScroll.setVolume(50);

Crear un clip de pelí cula vacio para crear un bucle (función startScroll)

this.createEmptyMovieClip("loop", this.getNextHighestDepth());

Función llamada por el evento onRollOut de los botones de scroll

stopScroll = function () {
suena=undefined
sonidoScroll.stop();
delete loop.onEnterFrame;
this.texto.textColor = 0x000000;
};

Función llamada por el evento onRollOver de los botones de scroll

startScroll = function (texto, direccion) {
loop.onEnterFrame …

ToolTip dinámico

Miercoles, Septiembre 8th, 2004

Dificultad

Con un poco de código actionScript podemos crear tooltips similares a los de las páginas HTML.

Función que muestra el tooltip

showToolTip = function (texto) {
toolTip_mc.texto.text = texto;
toolTip_mc._x = _xmouse;
toolTip_mc._y = _ymouse;
toolTip_mc._visible = true;
toolTip_mc.startDrag();
};

Función que esconde el toolTip

hideToolTip = function () {
toolTip_mc._visible = 0;
toolTip_mc.stopDrag();
};

Formato para el objeto TextField que vamos a crear

formato = new TextFormat();
formato.color = 0xff0000;
formato.font = “verdana";

Creamos un clip de pelí cula.

this.createEmptyMovieClip("toolTip_mc", this.getNextHighestDepth());
this.toolTip_mc._visible = false;

Creamos un campo de texto dentro del clip de pelí cula.

this.toolTip_mc.createTextField("texto", this.getNextHighestDepth(), 10, -15, “", “");
this.toolTip_mc.texto.setNewTextFormat(formato);

Modificamos las propiedades del campo de texto

this.toolTip_mc.texto.border = true;
this.toolTip_mc.texto.borderColor = 0x000000;
this.toolTip_mc.texto.autoSize = true;
this.toolTip_mc.texto.background = true;
this.toolTip_mc.texto.backgroundColor = 0xffffff;

Ejemplo de uso

boton_mc.onRollOver = function() {
showToolTip("Hola mundo");
};
boton_mc.onRollOut = hideToolTip;

Flash MX - función movieClipPosition

Sabado, Septiembre 4th, 2004

Siempre es bueno optimizar nuestro trabajo, no solo en el aspecto o rendimiento final del producto, tambien podemos optimizar el desarrollo, de hecho con cada versión de flash es más sencillo (componentes, extensiones, commnads, etc) que nos permiten realizar tareas repetitivas de forma más rápida y sencilla.

Hoy estaba preparando un fla que consta de diferentes clips de pelí cula que pueden variar su posición en el escenario de forma interactiva (a petición del usuario), el caso es que para poder asignar las propiedades _x / _y correspondientes a cada clip de pelí cula (durante el proceso de desarrollo) tendrí a que ir situando los clips de pelí cula e ir tomando nota de las posiciones para más tarde …

Flash MX - MX 2004 - preloader con máscara

Jueves, Agosto 5th, 2004

Dificultad:

Un sencillo método para hacer un preloader, en este caso, la precarga se hace desde la pelí cula secundaria.

Versión MX 2004
precargaMascara.zip (116 Kb)
Versión MX
precargaMascaraMX.zip (116 Kb)

Nota
Cualquier consulta sobre este tutorial o .fla debe realizarse en el foro.

Flash MX - MX 2004 - System.capabilities.screenResolution - (determinar la resolución de pantalla desde flash)

Jueves, Agosto 5th, 2004

Con el objeto Stage, podemos averiguar el tamaño de la pelí cula SWF, pero si se trata de averiguar la resolución de pantalla del usuario, nuestro aliado será el objeto System.capabilities.

Ejemplo 1
Detecta la resolución de pantalla y emite un mensaje en la ventana de salida de flash.

ancho = System.capabilities.screenResolutionX;
alto = System.capabilities.screenResolutionY;
switch (ancho) {
case 800 :
trace("Resolución “+ancho+” x “+alto);
break;
case 1024 :
trace("Resolución “+ancho+” x “+alto);
break;
case 1280 :
trace("Resolución “+ancho+” x “+alto);
break;
default :
trace("ni idea de que otras resoluciones :)“);
break;
}

Ejemplo 2
Detecta la resolución de pantalla y llama a la URL correspondiente.

cargarSegunResolucion = function () {
ancho = System.capabilities.screenResolutionX;
switch (ancho) {
case 800 :
getURL("web1.html", “_self");
break;
case 1024 :
getURL("web2.html", “_self");
break;
default :
break;
}
};
// –
miboton.onRelease = cargarSegunResolucion;

Movieclip button, textField hitArea

Lunes, Agosto 2nd, 2004

En el ejemplo de abajo, hay dos clips de pelí cula botón, aparentemente, son iguales, pero en realidad, no lo son, si pasas el cursor sobre ‘botón 1′ apreciarás que basta con que el puntero esté próximo al link (por la derecha) para que este detecte el evento onRollOver, sin embargo ‘botón 2′ requiere que el puntero se pose exactamente sobre el enlace para ser activado (esto es lo deseable).

Solucionar este pequeño defecto es tan sencillo como asignar la propiedad textfield.autoSize de la instancia de textField contenida en el objeto movieClip.

this.texto.autoSize = true;

Nuevo blog

Miercoles, Julio 28th, 2004

Nuestro compañero Paul “Vicho” a abierto su propio blog (aún en pruebas), donde escribirá sus ‘cosillas’ y buenos tutoriales enfocados al diseño web.

Suerte Paul!

http://www.vichitex.com/blog

Detectar movimiento del cursor

Miercoles, Julio 21st, 2004

quietor = function () {
// – si la posición del mouse es igual a la de la anterior vez …
if (_root._xmouse == x && _root._ymouse == y) {
trace("parado");
}
// –
x = _root._xmouse;
y = _root._ymouse;
};
// –
var x = _root._xmouse;
var y = _root._ymouse;
var t = 1;
// – la función quietor se ejecuta cada t segundos
idInterval = setInterval(quietor, t*1000);

// – para detener

clearInterval(idInterval)

Cargar archivos evitando cache

Domingo, Julio 18th, 2004

Habrás oido hablar de la memoria cache, pero �que es en realidad?, como actua, como nos afecta y como evitarla.

Objetivos

Reducir el tiempo de acceso promedio a la memoria.Reducir el ancho de banda entre memoria principal y procesador.

Como actúa

Cuando escribimos un URL en el navegador, la dirección generada por el procesador es comparada con los datos almacenados en la cache, si el dato está presente (la dirección fué visitada y almacenada), el procesador lo lee desde la cache, si el dato no está presente (no se visitó, o bien se limpió la cache), se transfiere desde la memoria principal a la cache.

Como evitarla

Dependiendo del navegador:

IE:
Herramientas>Opciones de Internet>Borrar Archivos>AceptarCtrl+F5
Mozilla:
Si tienes instalada la extensión Web Developer:

Miscellaneus>Clear Cache

Por que evitarla?

En principio, …

Flash MX - Scrolling Text con OnMouseWheel

Sabado, Julio 17th, 2004

Scrolling Flash with OnMouseWheel

Un script para Flash MX que permite hacer scroll a textos con la rueda del ratón. (Solo para Flash MX, Flash MX 2K4 incorpora la propiedad mouseWheelEnabled para el obketo textField.

Tutorial, código fuente y archivos de ejemplo en:
http://www.mustardlab.com/developer/flash/mousewheel

movieClip.enabled versus invisible_button

Miercoles, Julio 14th, 2004

Este es un viejo truco que empecé a utilizar antes de la versión MX de flash, cuando no existía la propiedad enabled, que como sabréis es utilizada para deshabilitar un objeto movieClip o button.

Problema
Veamos un caso en el que se hace necesario desactivar un número de objetos, de manera que no interfieran en el funcionamiento de otros. Un caso típico es el siguiente:

Tenemos en el escenario una serie de botones y cargamos un clip de película (vía loadMovie, attachMovie etc.

El clip de película que acabamos de cargar, está en un nivel más alto que el resto de objetos de nuestra película, sin embargo, cuando el cursor incide en una zona del clip de película que se corresponde a …

Flash MX Menu 01

Domingo, Julio 11th, 2004

Este menú, está inspirado en el site del prestigioso estudio de diseño Web Group94. No pretendo que la construcción del mismo sea igual, si en cambio que el resultado sea similar.

uacute;

Abre un nuevo documento de flash de 300px de ancho x 150 px de altura.

Crea un clip de pelí cula Insertar>Nuevo sí mbolo (Ctrl.+ F8)
En la ventana �Crear nuevo Sí mbolo�:
Nombre: menu_mc
Comportamiento: clip de pelí cula
Aceptar

Cambia el nombre de la capa actual por �hitArea�.
Inserta una capa �base�
Inserta una capa �botones�
Inserta una capa �selección�
Inserta una nueva capa �labels�
Inserta una nueva capa �acciones�

Capa base

Inserta un fotograma en la posición 30 de la lí nea de tiempo (F5)
Selecciona el fotograma clave 1 de la …

Flash MX - El objeto Sound - Básico

Jueves, Julio 1st, 2004

Como sabes el sonido de un aplicación flash, puede ser incorporado arrastrando los archivos de sonido que tenemos en la biblioteca y dejándolos en un fotograma clave, sin embargo, esta no es siempre el mejor sistema, flash cuenta con el objeto Sound() que permite un mayor control y número de propiedades, en este tutorial, analizaremos los aspectos básicos para insertar sonido de forma dinámica con Flash MX (flash 2004 dispone además del componente Media).

Importando un archivo de sonido para vinculación

El primer paso, consiste en importar un sonido a la biblioteca de flash para seguidamente vincularlo, veremos como y para que.

Selecciona Menú>Archivo>Importar a biblioteca.
Selecciona el archivo de sonido de la biblioteca.
Haz clic con el botón derecho del Mouse
Selecciona vinculación
En la ventana …

klr20mg.com Nuevo Flash Blog

Jueves, Junio 10th, 2004

Demos la bienvenida a klr20mg.com un nuevo blog de temática flashera, con un elegante diseño y buení simos artí culos. Seguramente los nombres de sus creadores no os serán desconocidos.

… pues nada, uno más para los favs