cómo controlar el panel de desplazamiento enmascarado haciendo clic

Tengo un pequeño problema. Quiero crear algo como esto pero vertical en lugar de horizontal. También quiero controlar el control deslizante haciendo clic en los botones arriba/abajo en lugar de desplazarme.

Referencia: http://active.tutsplus.com/tutorials/effects/create-a-responsive-xml-image-scroller-in-actionscript-3-0/

Ahora tengo un contenedor mc que contiene todos mis pulgares y una máscara que enmascara ese contenedor. También tengo mis botones que activarán esta función de desplazamiento hacia arriba/desplazamiento hacia abajo.

No tengo ni idea de cómo escribir la función para eso. He hecho la interpolación del contenedor hacia arriba y hacia abajo, pero necesito un límite para eso, por lo que quiero una interpolación muy lejana y salir de los límites.

¿Alguna sugerencia?

preguntado el 03 de mayo de 12 a las 16:05

1 Respuestas

Primero, para evitar que la máscara se mueva con el contenido, asegúrese de que esté al mismo nivel que su contenido.

Por ejemplo:

myContainer ¬
   - contentBox
   - maskShape

Y también debes contentBox.mask = maskShape.

Para el desplazamiento, solo es cuestión de aumentar o disminuir la posición de su contentBox con cada clic de sus botones de navegación.

En el caso del botón de abajo, en su detector de eventos haría algo como...

contentBox.y = contentBox.y + 25;

Por supuesto, queremos que esto se deslice suavemente, por lo que en el caso de interpolación...

TweenLite.to(contentBox, 0.5, {y:contentBox.y + 25});

El botón "arriba" es simplemente el reverso de esto.

contestado el 03 de mayo de 12 a las 18:05

¡Gracias! Ese parece ser el camino a seguir, y he llegado tan lejos ahora. Ahora simplemente no sé cómo evitar que contentBox se interponga demasiado para que se pierda de vista. ¿Hay una buena manera de hacer un cheque para eso? - user987387

Absolutamente. Recomendaría una operación ternaria (en.wikipedia.org/wiki/Ternary_operation). Suponiendo que su contentBox es de 200 px, y su maskShape es de 100 px, y no quería desplazarse más allá de la parte inferior, haría algo como esto: contentBox.y = (contentBox.y - 25 <= -100) ? -100 : contentBox.y - 25; Básicamente, estamos diciendo "si el resultado de mover la caja hacia arriba va más allá de nuestra ubicación máxima, configúrelo al máximo, de lo contrario, use el cálculo". Por supuesto, podría simplemente escribir esto en una declaración if/else, pero lo que sea que haga flotar su bote. ;) - Atriace

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.