Класс AS3 / Papervision LensFlare - не удается преобразовать в DisplayObject3D? - PullRequest
0 голосов
/ 16 июля 2010

Итак, я работаю над проектом, и я создал 3D-сцену с частицами и всем, что мне нужно. Я надеюсь использовать класс LensFlare PV3D2.0, чтобы добавить блик объектива к сцене. , У меня настроены все мувиклипы 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);

Я нашел учебное пособие по LensFlare (откуда я взял массив и мувиклипы) с 2008 года, но оно не совместимо с Great White, поэтому я пытаюсь воссоздать его с помощью нового API.

1 Ответ

1 голос
/ 11 сентября 2010

Согласно Энди Зупко, вам также нужно передать RenderLayer в конструктор. Как только экземпляр LensFlare получит RenderLayer, он будет отображаться там, поэтому вам не нужно добавлять его в сцену.

LensFlare , а не DisplayObject3D, поэтому вы получаете сообщение об ошибке. Вы не должны добавлять его в сцену. После создания экземпляра просто обновите его с помощью метода updateFlare () , и это должно быть именно так.

pv3d lens flare

...