Mucho exito.
Pablo.
Creen dos botones en una capa, los cuales se van a llamar: der_btn y izq_btn
En otra capa,
Creen un movie Clip donde van a contener las imagenes, texto o lo que quieran poner, este se va a llamar contenedor_2
y en otra capa
Creen una mascara para el movie clip, haganla del tamaño que quieran pero que cubra el movie clip y dejen espacio para los botones. esimportante que la capa de los botones no tenga mascara. La mascara se va a llamar msk
Si alguien me informa como subir el fla al foro, con gusto se lo paso.
/*
NOTAS NOTAS NOTAS NOTAS NOTAS:
Al final de cada "}" he puesto unos comentarios, estos son para que se distinga mejor
a que grupo pertenece cada corchete "}", asi te será más facil jugar con el código.
El código no es perfecto tiene un lijero defecto y esque entre mas grande
hagas el MOVIE CLIP CONTENEDOR, vas a tener que incrementar el numero que se encuentra
al final de la variable diferencia que esta en la LINEA de este código.
Nose a que se deba esto, pero si lo averiguas y perfecciones esto, porfavor, compartelo con todos nosotros.
Te suguiero que leas el apartado de nomenclatura (lineas mas abajo) así podras entender mejor
como y por que he llamado a cada instancia.
Espero que te sea útil y facil de entender.
Mucho exito.
*/
Código ActionScript :
/*
NOMENCLATURA:
Cambio de sección ------
Inicia sub sección ¡¡¡¡ !!!!!
Termina sub sección <<<< >>>>>
btn= boton
ftn=Función
txt=textos
*/
//------Variables------
var inicio:Number=contenedor_2.x;
var numero_desplazamientos:Number=12;//Cantidad de desplazamientos.
var v:Number=0;//Controla la distacia de desplazamiento (está se encuentra relacionada con la variable numero_desplazamientos.) Procura que siempre sea 0 para que inicie en el principio.
var extra:Number=22.5;//Es el espacio extra que deseas que se desplaze
var retraso:Number=200;//Es la velocidad de la animación (mas rapido es menor el numero)
var diferencia:Number=((((msk.width)/(contenedor_2.width))*370));//El tamaño de la mascara entre el tamaño del movie clip, que contiene a los elementos que vas a desplazar.
var factor_desplazamiento:Number=((contenedor_2.width)/(extra));//Tamaño del movie clip contenedor entre los espacio extra que quieres que se desplaze hacia la izquierda.
var limite:Number=((factor_desplazamiento)+(diferencia));//Junta las dos variables y es el resultado final de los calculos efectuados por lo que se recomienda ponerla hasta el final de todas las variables.
var factor_desplazamiento_izq:Number=((contenedor_2.width)/(extra));//Tamaño del movie clip contenedor entre los espacio extra que quieres que se desplaze hacia la derecha.
/*Las variables diferencia, factor_desplazamiento y limite son las que determinan cuanto se va a desplazar el
movie clip, que contiene a los elementos que vas a desplazar.*/
//Empieza el codigo
//-----Declaración de Funciones------
der_btn.addEventListener(MouseEvent.MOUSE_OVER,der_ftn);//Función del boton para desplazar hacia las izq.
izq_btn.addEventListener(MouseEvent.MOUSE_OVER,izq_ftn);
//------Codigo------
//----------Desplazamiento ------------
//¡¡¡¡¡¡¡¡¡¡¡ Para la izquierda (izq) !!!!!!!!!!!!
if (v<limite) {
function der_ftn(e:MouseEvent) {
var repeticion:Number=setInterval(contar,retraso);//Esta variable nos permite repetir la funcion del boton que contrla el desplazamiento.
function contar() {//Lo que este dentro de esta función se va a repetir.
if (v<limite) {
contenedor_2.x-=v;// desplazamiento a la izq por el signo que se usa.
v+=numero_desplazamientos;//signo contrario al movie clip contenedor.x+=v
}//if (v<limite) FIN------
}//Función contar FIN------
der_btn.addEventListener(MouseEvent.MOUSE_OUT,der_out_ftn);//Esta función debe de estar aqui por que se encuentra dentro de una función repetitiva por lo que al ser un evento contrario, a la función principal, es la que va a romper el loop.
function der_out_ftn(e:MouseEvent) {
clearInterval(repeticion);//Impide que la función se repita por siempre.
}//Función der_out_ftn FIN------
}//Funcion der_ftn FIN.---------
}//if (v<limite) FIN-------
//¡¡¡¡¡¡¡¡¡¡¡ Para la derecha (der) !!!!!!!!!!!!
if (contenedor_2.x<inicio) {
function izq_ftn(e:MouseEvent) {
var repeticion:Number=setInterval(contar,retraso);//Esta variable nos permite repetir la funcion del boton que contrla el desplazamiento.
function contar() {//Lo que este dentro de esta función se va a repetir.
if (contenedor_2.x<inicio) {
contenedor_2.x+=v;// desplazamiento a la izq por el signo que se usa.
v-=numero_desplazamientos;//signo contrario al movie clip contenedor.x+=v.
izq_btn.addEventListener(MouseEvent.MOUSE_OUT,izq_out_ftn);//Esta función debe de estar aqui por que se encuentra dentro de una función repetitiva por lo que al ser un evento contrario, a la función principal, es la que va a romper el loop.
if (contenedor_2.x>inicio) {
contenedor_2.x=inicio;
clearInterval(repeticion);
v=0;
}//if (contenedor_2.x>inicio)
function izq_out_ftn(e:MouseEvent) {
clearInterval(repeticion);//Impide que la función se repita por siempre.
if (contenedor_2.x>inicio) {
contenedor_2.x=inicio;
v=0;
}//Función izq_out_ftn(e:MouseEvent)
}//Función izq_out FIN--------
}//if (contenedor_2.x<inicio) FIN---------
}//Función contar FIN-------
}//Función izq_ftn FIN.-----------
}//if (contenedor_2.x<inicio) FIN--------
// FIN DEL CODIGO----------
[BOFH]Cuando escribas código en AS, enciérralo entre las etiquetas [*as] y [*/as] (sin los asteriscos) para que sea más legible - The Fricky![/BOFH]
