Imaginemos que queremos que una foto, un texto o toda una pagina (con imagenes y texto) contenida dentro de un MovieClip, necesitemos que pueda ser manejada a traves de botones con un efecto de scroll y que a la vez solo una parte de ese MovieClip sea visible a medida que se produce el scroll.
Para eso necesitaremos cuatro cosas importantes:
- Un poco de paciencia y ganas de aprender.
- El o los objetos al que necesitamos aplicar el efecto de scroll que debe ser convertido a un unico MovieClip.
- Un MovieClip que nos servira como mascara.
- Uno o dos botones con la propiedad de MovieClip (no como botones).
CODIGO FUENTE DE LA FUNCION:
Copiamos el siguiente codigo y lo pegamos en el primer frame de la pelicula.
MovieClip.prototype.scrollMovieClipFX = function(mcObjetoScroll:MovieClip, mcMascara:MovieClip, mcBotonSubir:MovieClip, mcBotonBajar:MovieClip, velocidadScroll:Number) {
//
var objScroll:MovieClip = mcObjetoScroll;
var mask:MovieClip = mcMascara;
var botSubir:MovieClip = mcBotonSubir;
var botBajar:MovieClip = mcBotonBajar;
//
objScroll.setMask(mask);
//
//
var interScroll:Number = new Number();
var vel:Number = velocidadScroll;
//
var yMask:Number = mask._y;
var yMaxMask:Number = mask._y + mask._height;
//
//
botSubir.onRollOver = botBajar.onRollOver = function () {
this.gotoAndStop(2);
};
botSubir.onRollOut = botBajar.onRollOut = function () {
this.gotoAndStop(1);
};
//
botSubir.onPress = function() {
interScroll = setInterval(function () {
if (objScroll._y >= yMask) {
clearInterval(interScroll);
} else {
objScroll._y += vel;
}
}, 30);
};
//
botBajar.onPress = function() {
interScroll = setInterval(function () {
if ((objScroll._y + objScroll._height) <= yMaxMask) {
clearInterval(interScroll);
} else {
objScroll._y -= vel;
}
}, 30);
};
//
botSubir.onRelease = botBajar.onRelease = function () {
clearInterval(interScroll);
};
};
PARAMETROS DE LA FUNCION
mcObjetoScroll:
El MovieClip o clip de pelicula que sera afectado por el scroll al presionar las flechas.
mcMascara:
La mascara que definira el area visible del objeto scroll. La mascara debe ser un MovieClip o clip de pelicula.
mcBotonSubir:
El boton que al presionar hara subir el objeto scroll.
mcBotonBajar:
El boton que al presionar hara bajar el objeto scroll.
velocidadScroll:
Un numero que le dice a la funcion la velocidad a que debe correr el scroll. Mas alto el valor, mas rapido el scroll.
NOTA: Los botones de subir y bajar DEBEN tener la propiedad (tipo) de MovieClip o clip de pelicula. Los botones basado en la propiedad “boton” son muy limitados y no permiten ser manejados completamente por ActionScript. Por tanto, se deben crear botones parecidos al que expongo en la muestra adjunta. Para mas detalles, descarga la muestra, ve a la libreria y busca el objeto “BotonFlecha” y estudia la forma como lo tengo preparado.
FORMA DE USO:
Si vamos hasta la ultima linea del ejemplo descargable leeras:
this.scrollMovieClipFX(this.texto, this.mascara, this.botonSubir, this.botonBajar, 10);
Los “this” le especifican a la funcion donde se encuentran los objetos. SE DEBE PONER LA DIRECCION EXACTA A CADA OBJETO, si queremos que trabaje el efecto adecuadamente.
- Descargar FLA
- Ver ejemplo
texto, movieclip, movie, pelicula, clip, scroll, flash, efecto
texto, movieclip, movie, pelicula, clip, scroll, flash, efecto