Return to Snippet

Revision: 16761
at August 14, 2009 18:31 by alexaivars


Initial Code
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();
		}
	}
	
}

Initial URL


Initial Description


Initial Title
Simple Cover flow effect

Initial Tags


Initial Language
ActionScript 3