由flash 9跟 flash 10
基本上用法跟一般3d 定位方式差不多
提供了兩個特效
AlphaZFilter與BlurZFilter
濾鏡的用法如下,以下是小弟推測的心得
var afilter:AlphaZFilter = new AlphaZFilter();
afilter.nearPlane = 500; //最近平面
afilter.farPlane = 2500; //最遠平面,在nearPlane~farPlane面的物件將會清楚呈現
afilter.farRange = afilter.nearRange = 1000;
//nearPlane與farPlane外的範圍
//簡單說farPlane(2500)~farPlane+farRange (共3500)範圍內的物件將會逐步的提昇濾鏡效果
scene.zFilters.push(afilter);//套用濾鏡
zedBox google code >> http://code.google.com/p/zedbox/
cj blog>> http://cjcat.blogspot.com/
package
{
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import idv.cjcat.zedbox.*;
import idv.cjcat.zedbox.filters.AlphaZFilter;
import idv.cjcat.zedbox.filters.BlurZFilter;
import idv.cjcat.zedbox.geom.Vec3;
public class Main extends Sprite
{
private var scene:ZedScene = new ZedScene;
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);
// entry point
addChild(scene);
scene.x = stage.stageWidth * 0.5;
scene.y = stage.stageHeight * 0.5;
for (var i:int = 0; i <= 30; i++)
{
var zsp:ZedSprite = buildZsp();
scene.addChild(zsp);
zsp.z = 200 * i;
zsp.x = Math.random() * 1000 - 500;
zsp.y = Math.random() * 1000 - 500;
//zsp.x = 200;
//zsp.y = 200;
//zsp.z = 200 * i;
//trace(i);
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
var afilter:AlphaZFilter = new AlphaZFilter();
afilter.nearPlane = 500;
afilter.farPlane = 2500;
afilter.farRange = afilter.nearRange = 1000;
scene.zFilters.push(afilter);
var bfilter:BlurZFilter = new BlurZFilter();
bfilter.nearPlane = 500;
bfilter.farPlane = 2500;
bfilter.farRange = bfilter.nearRange = 500;
scene.zFilters.push(bfilter);
}
public function buildZsp():ZedSprite
{
var sp:Sprite = new Sprite();
sp.graphics.beginFill(int(Math.random()*255)*255);
sp.graphics.drawCircle(0, 0,50);
sp.graphics.endFill();
var zsp:ZedSprite = new ZedSprite();
zsp.addChild(sp);
return zsp;
}
public function onEnterFrame(e:Event):void
{
scene.render();
scene.camera.position.x = mouseX-stage.stageWidth*0.5;
scene.camera.position.y = mouseY-stage.stageHeight*0.5;
}
public function onMouseWheel(e:MouseEvent):void
{
scene.camera.position.z += e.delta * 50;
//scene.camera.focalLength+= e.delta * 50;
//scene.camera.zoom+= e.delta
}
}
}
沒有留言:
張貼留言