Clase para crear scroll con easing en Actionscript 3.0
Esta es una clase para crear un scroll con easing en Actionscript 3.0. Hay que pasarle los siguientes parámetros:
- Clip que queremos controlar con el scroll
- Posición x del Scroll
- Posición y del scroll
- Ancho del scroll
- Altura del scroll (será el alto de la máscara
- Color de la barra grande
- Color de la barra de arrastre
- Color de los contornos de las barras
Por supuesto es mejorable, se admiten comentarios en contacto@esedeerre.com.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
package{ import flash.display.*; import flash.events.*; import flash.geom.Rectangle; public class Scroll extends Sprite{ var alto:Number; var separacion:Number = 10; var ancho:Number; var recorrido:Number; var clip:MovieClip; //Función constructora public function Scroll(mc:MovieClip,posx:Number,posy:Number,anc:Number,alt:Number,color1:uint,color2:uint,color3):void { clip = mc; alto = alt; ancho = anc; recorrido = 7*alto/8; x = clip.x - ancho - separacion; y = clip.y; CrearBarra("Barra_mc",ancho,alto,color1,color3); CrearBarra("Barrita_mc",ancho,alto/8,color2,color3); PonerMascara(clip); getChildByName("Barrita_mc").addEventListener(MouseEvent.MOUSE_DOWN,Arrastrar); getChildByName("Barrita_mc").addEventListener(MouseEvent.MOUSE_UP,Soltar); getChildByName("Barrita_mc").addEventListener(MouseEvent.MOUSE_OUT,Soltar); addEventListener(Event.ENTER_FRAME,Colocar); } //Crea una barra y la añade al escenario private function CrearBarra(nombre:String,ancho:Number,alto:Number,color:uint,colormarco:uint):void { var hijo:Sprite = new Sprite(); hijo.name = nombre; hijo.graphics.beginFill(color); hijo.graphics.lineStyle(0.1, colormarco); hijo.graphics.drawRect(0, 0, ancho, alto); hijo.graphics.endFill(); addChild(hijo); } //Arrastra la barrita de arrastre private function Arrastrar(e:MouseEvent):void{ var mc:Sprite = e.target as Sprite; mc.startDrag(false,new Rectangle(0,0,0,alto-mc.height)); } //Suelta la barrita de arrastre private function Soltar(e:MouseEvent):void{ e.target.stopDrag(); } //Dibuja un rectángulo y lo coloca como máscara del clip sobre el que queremos hacer //croll private function PonerMascara(mc:MovieClip):void{ var mascara:Sprite = new Sprite(); mascara.graphics.beginFill(0x000000); mascara.graphics.lineStyle(1, 0x000000); mascara.graphics.drawRect(0, 0, mc.width, alto); mascara.graphics.endFill(); mascara.x = separacion + ancho; mc.mask = mascara; addChild(mascara); } //Función que mueve el clip cuando hacemos scroll private function Colocar(e:Event):void{ var porcentaje = 1 - (Math.round(recorrido - getChildByName("Barrita_mc").y))/recorrido; var fin = -((clip.height - alto) * porcentaje - y); clip.y += (fin - clip.y)/10; } } } |