First time here? First time here? Newsletter Signup Newsletter
Search tutorials
Author: Colin Maxwell | Website: http://www.maximized.co.uk

A note about rotation in 3D space.

Special names are given to rotating an object around each of the x, y, and z axes. You may be familiar with these terms which are used in flying an aeroplane, they are pitch, roll and yaw.

Pitch refers to rotating an object around its X axis.

Roll refers to rotating an object around its Z axis.

Yaw refers to rotating an object around its Y axis.

This page on Wikipedia offers some explanation of these, with animated examples. http://en.wikipedia.org/wiki/Aircraft_principal_axes

Making the plane move in 3D space.

You are probably familiar with using the Enter_Frame event in Flash which is used to execute code continuously at the frame rate of a Flash Movie. This is often used to create animated effects in 2D, such as a car moving across the stage. However, with Papervision 3D we have access to pitch, roll and yaw properties of 3D objects, which we can update and change using the Enter_Frame event.

At the end of the previous code, create an Enter_Frame event listener:

addEventListener( Event.ENTER_FRAME, loop);

This event listener will cause the function named loop to run continuously at the frame rate of your Flash Movie.

Immediately after the event listener, add the following function.

function loop(event:Event):void {
   renderer.renderScene(scene, camera, viewport);

This function changes the yaw of the plane. It makes it rotate on its y axis by 5 degrees. It then uses the renderer to redraw the scene.

Test the Flash Movie (Ctrl-Enter) or Control - Test Movie and you will now see the plane spinning on its Y axis (yawing). You will also see that the plane disappears as it spins. This is because the plane has only one side, but we will fix this later.

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

At this point you may want to experiment with the pitch and roll properties of the plane. Try changing the function so that it alters the pitch or roll, or even combinations of these.

Here is a complete code listing at this stage:

import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.primitives.Plane;
var viewport:Viewport3D = new Viewport3D(stage.stageWidth,stage.stageHeight);
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var renderer:BasicRenderEngine = new BasicRenderEngine();
var plane:Plane = new Plane(null,0,0);
renderer.renderScene(scene, camera, viewport);
addEventListener( Event.ENTER_FRAME, loop);

function loop(event:Event):void {
   renderer.renderScene(scene, camera, viewport);
» Level Intermediate

Added: 2009-07-29
Rating: 9.6 Votes: 5
» Author
Lecturer in Graphic Design at Carnegie College, Scotland. Specializes in interactive media.
» Download
Download the files used in this tutorial.
» Forums
More help? Search our boards for quick answers!
Featured Flash FLA
» Author: Inocreato
» Title: RaiseTheBlocks
» Description: Raise all the blocks to win the game
Featured Sound Loops
Image for equalize

Audio Player

» Author: TomCat Carty
» Title: The Wood
» Description: Just a little game ending or it can maybe be looped. Recorders with music box and percussion to give the feel of well, I don't know, the woods? Free to use, just credit me. thank you
Latest Font
» Author: Fábio FAFERS
» Description: I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all
Featured Sound Fx
Image for equalize

Audio Player

» Author: Davisigner
» Description: Hmm... what to say about this one? It's reminiscent of the closing notes of the opening music from the Three Stooges done in a church organ style with a closing cymbal crash. I'll give this one away gratis, but feel free to check out my free loops and potential upcoming license-mandated ones over in the respective part of Flashkit.