Google Web after-hours
Septiembre 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

 
« Ago Oct »

Archivo para la categoría Prototypes

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 …

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 »

unloadMovieWithFadeOut Prototype

Viernes, Enero 14th, 2005

Este prototype, facilita la descarga de películas via unloadMovie().

Se puede utilizar para descargar una o varias peliculas almacenadas en clips de película (clips contenedores). Antes de efectuar la descarga, se aplica un efecto fadeOut a la propiedad _alpha del clip contenedor. La velocidad de la transición, se puede indicar al prototype como argumento, si no se establece se asigna por defecto.

MovieClip.prototype.unloadMovieWithFadeOut = function () {
// – compruebo si se ha enviado el argumento velocidad
if (typeof (arguments[arguments.length-1]) == “number") {
// – se ha enviado, lo aplico
var vel = arguments[arguments.length-1];
var items = arguments.length-1;
} else {
// – no se ha enviado, lo creo
var vel = 10;
var items = arguments.length;
}
// –
for (var i = 0; i<items ; i++) {
this = eval(arguments[i]);
// – …

loadMovieFX prototype

Lunes, Noviembre 8th, 2004

Este sencillo script, permite cargar películas externas con la siguiente particularidad: antes de cargar una nueva película, la película actual se reproduce en sentido contrario, consiguiendo un bonito efecto.

prototipo loadMovieFX
parámetros $clip
descripción

Reproduce en sentido inverso la pelí cula cargada
en el objeto movieClip (holder_mc) y carga una nueva ($clip)

MovieClip.prototype.loadMovieFX = function($clip) {
this.onEnterFrame = function() {
if (this._currentframe == 1) {
delete this.onEnterFrame;
this.loadMovie($clip);
}
this.prevFrame();
};
};

Utilización:

miClipContenedor_mc.loadMovieFX("pelicula.swf");

Descargas

Ver ejemplo »

Descargar archivos fuente Versión MX 2004 »

Descargar archivos fuente Versión MX »

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

Carga aleatoria

Miercoles, Marzo 17th, 2004

Un nuevo dí a una nueva imagen. ¿Te gustarí a mostrar una imagen diferente cada vez que visitan tu web?, este sencillo script te muestra como conseguirlo

// – en un array los nombres de las imágenes
miArray = new Array();
miArray[0] = “imagenes/imagen1.jpg";
miArray[1] = “imagenes/imagen2.jpg";
miArray[2] = “imagenes/imagen3.jpg";
miArray[3] = “imagenes/imagen4.jpg";
miArray[4] = “imagenes/imagen5.jpg";
miArray[5] = “imagenes/imagen6.jpg";
miArray[6] = “imagenes/imagen7.jpg";
miArray[7] = “imagenes/imagen8.jpg";
// – un clip de pelí cula vací o para cargar la imagen
this.createEmptyMovieClip("contenedor", 1);
// – situo el clip contenedor en el escenrio
contenedor._x = 3;
contenedor._y = 3;
// – selección aleatoria de la imagen
img = miArray[random(miArray.length)];
// – carga de la imagen
contenedor.loadMovie(img);

Nota
Puedes utilizar el mismo script para cargar SWF’s

Descargar ejemplo aquí

updateAfterEvent, uso apropiado

Sabado, Febrero 28th, 2004

Es muy habitual el uso de la función updateAfterEvent() , también es cierto que en numerosas ocasiones se utiliza sin saber exactamente que hace o como utilizarlo.

El script siguiente es un ejemplo de mal uso, en este caso updateAfteEvent() es ignorado.

this.onEnterFrame = function() {
// – acciones
//…
//…
updateAfterEvent();
};

Veamos un poco de teorí a y unos ejemplos que espero sirvan para entender mejor el uso correcto de updateAfterEvent().

Descripción
Actualiza la visualización (independientemente de los fotogramas por segundo establecidos para la pelí cula) cuando el usuario la llama en un controlador onClipEvent o como parte de una función …

Botón + Enter

Jueves, Enero 29th, 2004

Sin duda, este es hasta el momento el tutorial más corto que he escrito nunca, sin embargo, estoy convencido de que será útil a más de un flashero. Un botón que recoge un input y ejecuta una acción por el método tradicional (haciendo clic sobre éste) o bien pulsando la tecla ENTER.
Para el ejemplo, he necesitado tan solo un botón clip de pelí cula y un campo de entrada. Introduce una cifra y al hacer clic o ENTER se convierte en su equivalente en euros.

txt_euros.onSetFocus = function() {
this.text = undefined;
};

Código para el botón

on (release, keyPress “") {
_root.euros *= 166.39;
}
fla de ejemplo aquí »

Personalización de los componentes predeterminados

Sabado, Enero 24th, 2004

Personalización de los componentes predeterminados

Hay dos maneras de cambiar el aspecto de los componentes predeterminados: haciendo uso del objeto FStyleFormat o el empleo de aspectos. En el tutorial que nos ocupa, veremos como definir estilos para un componente.

El objeto FStyleFormat

El proceso para cambiar el aspecto de un componente es como sigue:

Crear un nuevo objeto FStyleFormat
Añadir detectores a lo componentes que queremos modificar
Cambiar los atributos de estilo que escojamos.

Cambio de estilo global

Los componentes vienen con un estilo predeterminado globalStyleFormat, y actúa sobre todos los componentes que usemos en nuestra pelí cula, de manera que si queremos cambiar el estilo de todos los componentes para que tengan el mismo aspecto, basta con cambiar las propiedades de globalStyleFormat y …

Movimiento de un objeto

Martes, Enero 20th, 2004

¿El fin justifica los medios?
En flash no, optimizar, optimizar y optimizar, esta debe ser tu meta. No basta con que funcione, hay que buscar el mejor método.

Un ejemplo sencillo

Quiero hacer una animación que mueva un clip de pelí cula a lo ancho del escenario, para ello sé que tendré que modificar la propiedad _x del objeto movieClip, puedo conseguirlo valiendome de distintas técnicas, pero todas tienen algo en común , una repetición controlada de acciones que se denomina bucle (loop en inglés).

Flash se caracteriza por facilitar el que cualquier persona con muy pocos conocimientos, pueda ver algo más que texto estático en su pantalla, seguramente alguien que empieza solucionarí a el problema con una interpolación de movimiento, …

Dibujar con AS (I)

Domingo, Enero 4th, 2004

Creo que padezco una fuerte adicción al blogin, no me puedo ir a dormir sin escribir algo + hoy, hay va:

// copiar y pegar en primer fotograma

onMouseMove = function () {
if (dibujar) {
lineStyle(0, 0x000000, 100);
lineTo(_root._xmouse, _root._ymouse);
}
};
onMouseDown = function () {
dibujar = true;
moveTo(_root._xmouse,_root. _ymouse);
};
onMouseUp = function () {
dibujar = false;
};

Hasta mañana!
Continuará…

Habilitar/desahabilitar un botón

Jueves, Enero 1st, 2004

Siguiendo con el objeto botón, vamos a ver como conseguir que un botón presente el estado activo/inactivo; con flash 5, tení amos que servirnos de ingeniosos trucos, por ejemplo, cambiar la propiedad _visible=false del objeto botón y mostrar un gráfico en su lugar, veamos que sencillo es conseguir esto mismo con flash MX gracias a la propiedad enabled del objeto botón.

// deshabilitar botón
boton.enabled=false
//al pasar el cursor sobre el botón, este no mostrará el icono ‘mano’
// habilitar botón
boton.enabled=true

Ejemplo práctico:

Al hacer clic en un botón, lo deshabilitamos y para hacer mostrar su estado ‘inactivo’ ajustamos la propiedad _apha por debajo de su valor por defecto.

boton01.onRelease=function(){

boton01.enabled = false
boton02.enabled = true
boton03.enabled = true
boton01._alpha = 75
boton02._alpha = 100
boton03._alpha = 100
gotoAndStop("contactar")

}

Analicemos cada sentencia del script que …

Configurar un botón en flash MX

Lunes, Diciembre 29th, 2003

Este pretende ser el primero de una serie de artí culos dirigidos a quien ha pasado recientemente a MX desde una versión inferior, por experiencia, sé que hay una tendencia a empezar a usar el programa sin fijarse mucho en las novedades que la nueva versión ofrece, cayendo de esa forma en el error de usar métodos de programación clasificados como obsoletos.

La configuración de un botón flash MX es idéntica a la de un botón en flash 5, si editamos una instancia de botón, veremos que tiene los estados reposo, sobre, presionado y zona activa.

Tambien los eventos son casi los mismos ( onDragOut, onRelease, onReleaseOutside, onRollOver, onRollOut, onPress).Con flash 5 la forma de asociar un evento a un …