专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Flash

求 flash 效果原文件解决思路

发布时间:2011-06-27 20:01:51 文章来源:www.iduyao.cn 采编人员:星星草
求 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);
        }
  
    }

}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: