/ Published in: ActionScript 3
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.MouseEvent; import gs.TweenLite; import gs.plugins.SetSizePlugin; import gs.plugins.TweenPlugin; public class Main extends Sprite { private var m_body:Sprite; public function Main() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; TweenPlugin.activate([SetSizePlugin]); m_body = new Sprite(); for( var i:int; i<16;i++) { m_body.addChild( new Item() ).x = i * Item.WIDTH; } stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler); addChild(m_body); } private function set scroll(a_val:Number):void { var index:int = Math.round((m_body.numChildren-1)*a_val); var item:Item; var speed:Number = .15; for ( var i:int; i<m_body.numChildren;i++) { item = m_body.getChildAt(i) as Item; TweenLite.killTweensOf(item); item.visible = true; switch(i) { case index: TweenLite.to(item,speed,{x:i*Item.WIDTH,setSize:{width:Item.WIDTH*.8, height:Item.HEIGHT*.8}}); break; case index -1: TweenLite.to(item,speed,{x:i*Item.WIDTH+Item.WIDTH*.2*.5 + Item.WIDTH*.37*.5,setSize:{width:Item.WIDTH*.63,height:Item.HEIGHT*.63}}); break; case index -2: TweenLite.to(item,speed,{x:i*Item.WIDTH+Item.WIDTH*.2*.5 + Item.WIDTH*.37 + Item.WIDTH*.5*.5,setSize:{width:Item.WIDTH*.5, height:Item.HEIGHT*.5}}); break; case index -3: TweenLite.to(item,speed,{x:i*Item.WIDTH+Item.WIDTH*.2*.5 + Item.WIDTH*.37 + Item.WIDTH*.5 + Item.WIDTH*.61*.5 ,setSize:{width:Item.WIDTH*.39, height:Item.HEIGHT*.39}}); break; case index -4: TweenLite.to(item,speed,{x:i*Item.WIDTH+Item.WIDTH*.2*.5 + Item.WIDTH*.37 + Item.WIDTH*.5 + Item.WIDTH*.61 + Item.WIDTH*.75*.5,setSize:{width:Item.WIDTH*.25, height:Item.HEIGHT*.25}}); break; case index +1: TweenLite.to(item,speed,{x:i*Item.WIDTH-Item.WIDTH*.2*.5 - Item.WIDTH*.37*.5,setSize:{width:Item.WIDTH*.63,height:Item.HEIGHT*.63}}); break; case index +2: TweenLite.to(item,speed,{x:i*Item.WIDTH-Item.WIDTH*.2*.5 - Item.WIDTH*.37 - Item.WIDTH*.5*.5,setSize:{width:Item.WIDTH*.5, height:Item.HEIGHT*.5}}); break; case index +3: TweenLite.to(item,speed,{x:i*Item.WIDTH-Item.WIDTH*.2*.5 - Item.WIDTH*.37 - Item.WIDTH*.5 - Item.WIDTH*.61*.5 ,setSize:{width:Item.WIDTH*.39, height:Item.HEIGHT*.39}}); break; case index +4: TweenLite.to(item,speed,{x:i*Item.WIDTH-Item.WIDTH*.2*.5 - Item.WIDTH*.37 - Item.WIDTH*.5 - Item.WIDTH*.61 - Item.WIDTH*.75*.5,setSize:{width:Item.WIDTH*.25, height:Item.HEIGHT*.25}}); break; default: item.visible = false; // TweenLite.to(item,speed,{x:i*Item.WIDTH,setSize:{width:Item.WIDTH, height:Item.HEIGHT}}); //TweenLite.to(item,speed,{x:i*100,setSize:{width:50, height:50}}); break; } } TweenLite.to(m_body,speed,{x:(stage.stageWidth*.5)-Item.WIDTH*index}); } private function mouseMoveHandler(e:MouseEvent):void { scroll = e.stageX/stage.stageWidth; } } } import as3ui.UIObject; import as3ui.events.UIEvent; import flash.events.Event; import flash.display.Sprite; internal class Item extends Sprite { public static const WIDTH:Number = 140; public static const HEIGHT:Number = 257; private var m_color:uint; public function Item() { m_color = uint( Math.random()*0x1000000); setSize(WIDTH,HEIGHT); } public function setSize(a_width:Number,a_height:Number):void { with(graphics) { clear(); beginFill(0xFFF000,.1); drawRect(-a_width*.5,0,a_width,a_height); endFill(); beginFill(m_color,.1); drawRect(-a_width*.5+1,1,a_width-2,a_height-2); endFill(); } } }