⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 carouselvo.as

📁 一个FLEX 的3D相册有放大缩小功能自由转换角度
💻 AS
字号:
package com.pricklythistle.carousel
{
	//##################################################################
	//#
	//#		Class to hold x, y and z values for each item in carousel
	//#		also calculates position and scale based on angle and elevation
	//#
	//##################################################################
	
	import com.pricklythistle.utils.MathUtil;
	
	import flash.display.DisplayObject;
	
	import mx.core.IDataRenderer;
	
	public class CarouselVO
	{
		public var renderer:IDataRenderer;
		public var x:Number;
		public var y:Number;
		public var z:Number;
		public var itemWidth:Number;
		public var itemHeight:Number;
		public var angleOffset:Number;
		public var data:Object;
		
		public function calculatePosition(rotation:Number,elevation:Number,yZero:Number,
			width:Number,height:Number,
			renderWidth:Number,renderHeight:Number, 
			frontScale:Number, backScale:Number):void
		{
			//calculates x, y, z and size from angle, elevation and size of carousel.
			
			rotation = rotation+90;
			var radius:Number = (width - (renderWidth*2))/2;
			var angle:Number = rotation + angleOffset;
			
			angle = MathUtil.degreeToRadian(angle);
			
			var zOffset:Number = (radius * Math.sin(angle));
			z = radius + zOffset;
			var scale:Number = ((z/(radius*2))*(frontScale-backScale)) + backScale;
			
			x = radius * Math.cos(angle);
			x += renderWidth + radius;
			y = yZero + elevation*(zOffset/radius);
			
			var displayItem:DisplayObject = renderer as DisplayObject;
			
			itemWidth = scale*(renderWidth);
			itemHeight = scale*(renderHeight);
			
			displayItem.width = itemWidth;
			displayItem.height = itemHeight;
			
			displayItem.x = x - (itemWidth/2);
			displayItem.y = y - (itemHeight/2);
			
			//trace("displayItem.x: " + displayItem.x + " displayItem.y: " + displayItem.y + " x: " + x + " y: " + y + " itemWidth: " + itemWidth + " itemHeight: " + itemHeight);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -