2010-07-16 63 views
0

所以我正在研究一個項目,並且我已經創建了一個包含粒子的3D場景以及我需要的所有東西。我希望使用PV3D2.0 LensFlare類爲鏡頭添加鏡頭光暈。我所有的鏡頭光暈影片剪輯設置和我使用下面的代碼實例化鏡頭光暈,但我得到的錯誤AS3/Papervision LensFlare類 - 無法轉換爲DisplayObject3D?

TypeError: Error #1034: Type Coercion failed: cannot convert org.papervision3d.core.effects.objects::[email protected] to org.papervision3d.objects.DisplayObject3D. 

var light:PointLight3D 
var lf:LensFlare; 
var h1:MovieClip = new HaloMC(); 
h1.filters = [new BlurFilter(4,4,2)]; 
var h2:MovieClip = new HaloMC2(); 
h2.filters = [new BlurFilter(4,4,2)]; 
var h3:MovieClip = new HaloMC5(); 
h3.filters = [new BlurFilter(4,4,2)]; 
var flArray:Array = [new MainFlareMC(), new HaloMC4(), h1, new FlareMC(), h2, new FlareMC(),h3, new FlareMC() ]; 
light = new PointLight3D(false); 
light.x = 3000; 
light.z = 10000; 
lf = new LensFlare(light,flArray,viewport.width,viewport.height); 
scene.addChild(lf); 

我發現了一個鏡頭光暈教程(這是我得到的陣列和),但它與Great White不兼容,所以我試圖用新的API重新創建它。

回答

1

根據Andy Zupko,您還需要將RenderLayer傳遞給構造函數。 一旦LensFlare實例有一個RenderLayer,它將在那裏渲染,所以你不需要將它添加到場景中。

一個LensFlare是不是一個DisplayObject3D,這就是爲什麼你會收到錯誤。您不應將其添加到場景中。創建實例後,只需使用updateFlare()方法進行更新即可。

pv3d lens flare

相關問題