0

だから私はプロジェクトに取り組んでおり、パーティクルと必要なすべてのものを使用して 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 を使用して再作成しようとしています。

4

1 に答える 1

1

Andy Zupko によると、RenderLayer をコンストラクターに渡す必要もあります。LensFlare インスタンスが RenderLayer を持つと、そこにレンダリングされるため、シーンに追加する必要はありません。

LensFlare はDisplayObject3D ではないため、エラーが発生します。シーンに追加しないでください。インスタンスを作成したら、updateFlare()メソッドを使用して更新するだけです。

pv3d レンズ フレア

于 2010-09-10T21:05:03.680 に答える