AS3 / Papervision LensFlare类 - 无法转换为DisplayObject3D?

时间:2010-07-16 19:54:11

标签: actionscript-3 papervision3d

所以我正在研究一个项目,我已经创建了一个带有粒子的3D场景以及我需要它的所有东西..我希望使用PV3D2.0 LensFlare类为场景添加镜头光晕。我已经设置了所有的lensflare动画片段,并且我使用以下代码来实例化LensFlare,但是我收到了错误

TypeError: Error #1034: Type Coercion failed: cannot convert org.papervision3d.core.effects.objects::LensFlare@34723f41 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);

我从2008年发现了一个LensFlare教程(我从中得到了数组和动画片段),但它与Great White不兼容,所以我尝试使用新的API重新创建它。

1 个答案:

答案 0 :(得分:1)

根据Andy Zupko,,您还需要将RenderLayer传递给构造函数。 一旦LensFlare实例具有RenderLayer,它将在那里渲染,因此您无需将其添加到Scene。

LensFlare 一个DisplayObject3D,这就是你收到错误的原因。您不应将其添加到场景中。创建实例后,只需使用 updateFlare()方法进行更新即可。

pv3d lens flare