源码项目:Flash Builder 4.6 工程
倒影类:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.display.DisplayObject;
import flash.display.GradientType;
import flash.display.Graphics;
import flash.display.Shape;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Point;
/**
* 倒转图类
* @author Administrator
*
*/
public class InvertedImage extends Sprite
{
public function InvertedImage(Target:DisplayObject,Height:Number,Alpha:Number,a:Number,b:Number)
{
var bit:Bitmap=new Bitmap(GetBitmapdata(Target,Height,Alpha,a,b));
bit.smoothing=false;
bit.alpha=Alpha;
addChild(bit);
this.x=Target.x;
this.y=Target.y+Target.height+.5;
}
private function GetBitmapdata(target:DisplayObject,height:Number,alpha:Number,a:Number,b:Number):BitmapData
{
var bd:BitmapData=new BitmapData(target.width,target.height,true,0);
var matrix:Matrix=new Matrix(a,0,0,-b,0,target.height);
bd.draw(target,matrix);
var shape:Shape = new Shape();
var gradientMatrix:Matrix = new Matrix();
gradientMatrix.createGradientBox(target.width,target.height, 0.5*Math.PI);
shape.graphics.beginGradientFill(GradientType.LINEAR, [0,0], [alpha,0], [0,height], gradientMatrix);
shape.graphics.drawRect(0, 0, target.width,target.height);
shape.graphics.endFill();
bd.draw(shape, null, null, BlendMode.ALPHA);
return bd;
}
}
}
测试运行类:
package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.GlowFilter;
import flash.geom.Point;
import flash.geom.Vector3D;
import flash.net.URLLoader;
import flash.net.URLRequest;
[SWF(width=800,height=600,backgroundColor=0)]
/**
* AS3 3D 电子相册
* @author Jave.Lin
*/
public class Main extends Sprite
{
private var container:Sprite;//图片容器
private var picContainerArr:Array=[];//图片、倒影容数组结构
private var picArr:Array=[];//图片数组结构
private var num:int=0;//图片索引
public function Main()
{
init();
}
private function init():void
{
root.transform.perspectiveProjection.focalLength=620;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
container=new Sprite();
addChild(container);
container.x=stage.stageWidth/2;
container.y=stage.stageHeight/2;
container.z=0;
container.scaleX=container.scaleY=container.scaleZ=2;
var loadxml:URLLoader=new URLLoader();
loadxml.load(new URLRequest('images/pic.xml'));//
loadxml.addEventListener(Event.COMPLETE,onXmlInfoLoadedHandler);
}
private function onXmlInfoLoadedHandler(e:Event):void
{
var xml:XML=new XML(e.target.data);
//图片资源配置信息
var xmllist:XMLList=xml.children();
for(var i:int=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?