Salve ragazzi!
Da un paio di giorni mi sono messo a giochicchiare con il 3d in flash, ho provato un paio di librerie e alla fine ho deciso di utilizzare papaervision3d.
So utilizzare discretamente anche blender (utilizzo la 2.5 beta), e mi è parsa da subito la cosa migliore creare le mesh con blender, esportarle in formato collada per poi importarle in flash... Da parte di blender tutto ok, ma quando eseguo il filmato mi appare questo errore nella schermata di output:
codice:
TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
at org.papervision3d.objects.parsers::Collada/buildObject()
at org.papervision3d.objects.parsers::Collada/parseGeometry()
at org.papervision3d.objects.parsers::Collada/parseNode()
at org.papervision3d.objects.parsers::Collada/parseScene()
at org.papervision3d.objects.parsers::Collada/buildCollada()
at org.papervision3d.objects.parsers::Collada/onComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Ho utilizzato la vostra guida a papervision per creare il codice as però l'errore appare lo stesso...
A questo punto io penso che possa essere un errore nel file esportato (ho provato prima con un cubo, poi con una sfera), ma non so quindi chiedo a voi...
Per essere completo: il file flash ha come classe documento Papervision, che è strutturata così:
Codice PHP:
package{
import flash.display.MovieClip;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.objects.parsers.Collada;
public class Papervision extends MovieClip{
//########## COSTANTI PAPERVISION
var viewport:Viewport3D = new Viewport3D(400, 200, true, true);
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();
var obj:Array = new Array();
var lgt:Array = new Array();
var mat:Array = new Array();
//########## COSTRUTTORE
public function Papervision(){
CreateLgt();
CreateMat();
CreateObj();
addChild(viewport);
}
//########## FUNZIONI PRIVATE
private function CreateLgt(){
lgt['thelight'] = new PointLight3D(false);
lgt['thelight'].z = -300;
lgt['thelight'].x = -300;
}
private function CreateMat(){
mat['red'] = new FlatShadeMaterial(lgt['thelight'], 0xff0000, 0x000000);
}
private function CreateObj(){
obj['collada'] = new Collada("collada.dae",new MaterialsList({all:mat['red']}));
scene.addChild(obj['collada']);
}
}
}
purtroppo non posso allegare il file .dae che importo... se vi serve lo carico su megaupload
GRAZIE MILLE a tutti in anticipo!