http://www.3797sweets.com/images/11.jpg
谁有和上图效果一样的 原代码文件 请发我个 谢谢!
------解决方案--------------------
没有这个源码,去百度找一下,类似的应该挺多的吧。
------解决方案--------------------
在www.9ria.com可以找到。或flash8.net
------解决方案--------------------
- JScript code
package { import flash.display.Sprite; import flash.display.StageQuality; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLLoaderDataFormat; import flash.events.MouseEvent; import flash.filters.BlurFilter; import gs.TweenMax; /** * ... * @author pz */ [SWF(width='900',height='600',frameRate='30',backgroundColor='#000000')] public class Main extends Sprite { private var container:Sprite; private var album_xml:XML; private var req:URLRequest; private var loader:URLLoader; private var lists:Array; private var planeArray:Array; private var planeX:int = 200; private var planeZ:int = 200; private var planeRotationY:uint = 50; private var time:int = 1; private var median:uint; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); container = new Sprite(); addChild(container); container.x = stage.stageWidth / 2; container.y = stage.stageHeight / 2; reqXML(); } private function reqXML():void { req = new URLRequest("album.xml"); loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onComplete); try { loader.load(req); } catch (error:Error) { trace("Unable to load URL: " + error); } } private function onComplete(e:Event):void { loader.removeEventListener(Event.COMPLETE, onComplete); album_xml = new XML(e.target.data); lists = new Array(); for each (var k:XML in album_xml.photo) { lists.push(k.@url); } addAlbum(); } private function addAlbum():void { planeArray = new Array(); for (var i:int = 0; i < lists.length; i++) { var plane:LoadPhoto = new LoadPhoto(lists[i]); container.addChildAt(plane,0); plane.id = i; planeArray.push(plane); plane.addEventListener(MouseEvent.CLICK, onClick); } if (lists.length % 2 == 0) { median = lists.length / 2; } else { median=(lists.length+1)/2 } shiftToItem(median) } private function shiftToItem(id:int):void { stage.quality = StageQuality.BEST for (var i:int = 0; i < planeArray.length; i++) { var plane:LoadPhoto = planeArray[i] as LoadPhoto; if (i == id) { TweenMax.to(plane, time, { x:0, z:0,rotationY:0 } ); } else if (i < id) { TweenMax.to(plane, time, { x: -planeX * (id - i), z:(id - i) * planeZ , rotationY: -planeRotationY } ); container.setChildIndex(plane, i); } else { TweenMax.to(plane, time, { x:planeX * (i - id), z:(i -id) * planeZ , rotationY:planeRotationY } ); container.setChildIndex(plane, 0); } } } private function onClick(e:MouseEvent):void { var plane:LoadPhoto = e.currentTarget as LoadPhoto; var index:int = plane.id ; shiftToItem(index); } } } package { import flash.display.Bitmap; import flash.display.Loader; import flash.display.Sprite; import flash.net.URLRequest; import flash.events.Event; /** * ...加载外部图片类 * @author pz */ public class LoadPhoto extends Sprite { private var loader:Loader private var url:String; public var id:int; public function LoadPhoto(url:String) { this.url = url; init(); } private function init():void { loader = new Loader(); loader.load(new URLRequest(url)); loader.contentLoaderInfo.addEventListener(Event.COMPLETE , onComplete); } private function onComplete(e:Event):void { loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete); var img:Bitmap = e.target.content as Bitmap; var ref:Reflection = new Reflection(img,2,img.height*0.6); addChild(ref); ref.x = -ref.width / 2; ref.y = -150; } } } package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.GradientType; import flash.geom.Matrix; import flash.display.SpreadMethod import flash.display.BlendMode /** * 倒影类 * @author pz */ public class Reflection extends Sprite { private var img:Bitmap; private var distance:Number; private var offset:Number; private var refImgData:BitmapData private var refImg:Bitmap; private var container:Sprite; private var refLight:Sprite; public function Reflection(img:Bitmap,distance:Number,offset:Number=100) { this.img = img; this.distance = distance; this.offset = offset; addChild(img); initReflection(); } private function initReflection():void { var imgData:BitmapData = img.bitmapData; refImgData = imgData.clone(); refImg = new Bitmap(refImgData); container = new Sprite(); refImg.scaleY *= -1; refImg.y = img.y + (img.height*2) + distance; container.addChild(refImg); container.blendMode = BlendMode.LAYER; refLight = new Sprite(); var fillType:String = GradientType.LINEAR; var colors:Array = [0x000000, 0xFFFFFF]; var alphas:Array = [1, 0]; var ratios:Array = [0, 0xFF]; var matr:Matrix = new Matrix(); matr.createGradientBox(img.width,img.height , Math.PI / 2, 0, offset+distance); var spreadMethod:String = SpreadMethod.PAD; refLight.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); refLight.graphics.drawRect(0, img.y+img.height+distance, img.width, img.height); refLight.graphics.endFill(); refLight.blendMode = BlendMode.ALPHA; container.addChild(refLight); addChild(container); } } }