Très vite après avoir créé sa scene 3D avec la BasicView, on va vouloir en modifier les propriétés, modifier la caméra, accéder au rendu pour par exemple faire bouger des objets en EnterFrame…
On pourra modifier les propriétés de la scène 3D, tout simplement en les appelants, pour modifier le Viewport par exemple (ligne 12) viewport.interactive, viewport.alpha… pour la caméra (ligne 22) , camera.zoom, camera.z…
Si on veut accéder au rendu de la scène 3D il faudra overrider la fonction de rendu onRenderTick, c’est à dire écraser la fonction présente dans la BasicView pour pouvoir l’utiliser dans notre classe (ligne 27), du fait qu’on écrase la fonction, il ne faudra pas oublier de réécrire sa fonctionnalité de base : super.onRenderTick(event); (ligne 31).
-
package {
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.view.BasicView;
-
-
import flash.events.Event;
-
-
public class BasicScene extends BasicView {
-
-
public function BasicScene()
-
{
-
viewport.interactive = true;
-
buildPlane();
-
}
-
-
private function buildPlane() : void
-
{
-
var colorMaterial : ColorMaterial = new ColorMaterial(0xff00ff);
-
plane = new Plane(colorMaterial, 50, 50, 4, 4);
-
scene.addChild(plane);
-
-
plane.z = ( camera.zoom * camera.focus ) – Math.abs(camera.z);
-
-
startRendering();
-
}
-
-
override protected function onRenderTick(event:Event=null):void
-
{
-
plane.rotationX ++;
-
plane.rotationY ++;
-
super.onRenderTick(event);
-
}
-
-
private var plane : Plane;
-
}
-
}





Bonjour,
Merci pour ce tuto, parcontre j’ai un probleme: au lancement de l’animation flash m’affiche le message suivant:
« TypeError: Error #1009: Il est impossible d’accéder à la propriété ou à la méthode d’une référence d’objet nul.
at test/onRenderTick() »
Cordialement,
Jérémie