var material:WireframeMaterial = do3D.material as WireframeMaterial
var material:WireframeMaterial = new WireframeMaterial(颜色=0xFF00FF,透明度=1,粗细=0);
透明度0-1
粗细0-255
var material:ColorMaterial = new ColorMaterial(颜色=0xFF00FF,透明度=1,交互性=false);
位图材质
var circle:Shape = new Shape();
circle.graphics.beginFill(0xFF0000);
circle.graphics.drawCircle(100,100,100);
var bmp:BitmapData = new BitmapData(200,200,***e,0x0);//宽 高 透明度 原始填充色
bmp.draw(circle);
var material:BitmapMaterial = new BitmapMaterial(bmp);
material.smooth = ***e;
var imgLoaderoader = new Loader();
imgLoader.contentLoaderInfo.addEventListener (Event.COMPLETE,loadComplete);
imgLoader.load(new URLRequest("assets/mill.jpg"));
var bitmap:Bitmap = e.target.content as Bitmap;
var material:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData);
位图文件材质
var material:BitmapFileMaterial = new BitmapFileMaterial("assets/mill.jpg");
当使用BitmapFileMaterial时,请先设置对象的宽和高
BitmapFileMaterial 对象会发出一个FileLoadEvent.LOAD_COMPLETE 事件
FileLoadEvent.LOAD_COMPLETE: 外部位图加载完成时,发出该事件。
FileLoadEvent.LOAD_PROGRESS: 外部位图加载过程中,发出该事件。
FileLoadEvent.LOAD_ERROR: 外部位图找不到时,发出该事件。
FileLoadEvent.SECURITY_LOAD_ERROR: 安全错误发生时,发出该事件。
位图元件材质
var material:BitmapAssetMaterial = new BitmapAssetMaterial(连接标示符,是否使用材质的精度=false);
只能在flex Builder 和Flash Builder 中使用
[Embed (source="assets/mill.jpg")] public var mill:Class;
var millAsset:BitmapAsset = new mill() as BitmapAsset;
var material:BitmapMaterial = new BitmapMaterial(millAsset.bitmapData);
影片剪辑材质
new MovieMaterial(DisplayObject对象,材质是否支持透明度=false,影片每一帧快照=false,精度=false,边界=null);
var material:MovieMaterial = new MovieMaterial(DisplayObject对象都可以);
material.smooth = ***e;
material.doubleSided = ***e;
影片元件材质
new MovieAssetMaterial(连接标示符,透明=false,影片每一帧快照=false,创建一个副本=false,精度=false);
var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,***e);
material.doubleSided = ***e;
material.rect = new Rectangle(0,0,200,200);
material.smooth = ***e;
material.precise = ***e;
当precise 属性设置为***e 时,PV3D 将自动的将三角形面细分以创建更多的新的三角形面这样就更精确了
material.precisionMode = PrecisionMode.STABLE;
精度模式默认为:PrecisionMode.NORMAL
视频流材质
VideoStreamMaterial 类继承自MovieMaterial,构造函数有五个参数:
Parameter Data type Default
value
Description
1 Video视频 Video — 用做抓拍源的视频实例对象
2 Stream流 NetStream — 操作视频的NetStream对象
3 Precise精度 Boolean false 材质的精度
4 Transparent透明度 Boolean false 创建的材质是否支持透明度
var video:Video = new Video();
video.attachCamera(Camera.getCamera());
var conn:NetConnection = new NetConnection();
conn.connect(null);
var stream:NetStream = new NetStream(conn);
var material:VideoStreamMaterial = new VideoStreamMaterial (video, stream);
material.animated = ***e;//材质的动画属性设为***e.
组合材质
var material:CompositeMaterial = new CompositeMaterial();
material.addMaterial(bmpMaterial);
material.addMaterial(wireMaterial);
交互
要与材质或者 3D 对象进行鼠标交互必须先设置viewport 的interactive 属性为***e。Viewport 的interactive
属性默认为false。
viewport.interactive = ***e;
viewport.buttonMode = ***e;
如果类是继承自BasicView,那么也可以通过下面的方法来实现:
super(640,480,false,***e);
请一定要在startRendering()方法执行前,先调用super()方法。
还有一种方法,就是在创建一个 Viewport3D 对象时,用参数来指定:
var viewport:Viewport3D = new Viewport3D(640,480,false,***e);
为了能通过材质进行交互,必须将材质的interactive 属性设为***e:
material.interactive = ***e;