读书人

求 flash 效果原文件解决思路

发布时间: 2012-03-02 14:40:29 作者: rapoo

求 flash 效果原文件


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);        }      }} 


[解决办法]
网上是挺多的,但是可能没有一个完善的,需要自己来组拼

读书人网 >Flash

热点推荐