1、修改PaperBase基類,存貯新的相機、場景和視圖區,然后重新渲染產生新的效果。因為,首先需要定義三個新的類成員屬性:
public var
current_scene:Scene3D;//為實現3D鍵盤交互準備
public var
current_camera:CameraObject3D;//為實現3D鍵盤交互準備
public var
current_viewport:Viewport3D;//為實現3D鍵盤交互準備 |
然后修改initPapervision函數,把原來默認的場景、相機、視圖區更改為這三個類屬性:
current_camera = default_camera;
current_scene = default_scene;
current_viewport = viewport; |
用新的類成員變量重新渲染:
renderer.renderScene(current_scene,
current_camera, current_viewport); |
2、新建3D鍵盤交互類:MainKeyboardInteraction
在這類中我將使用Plane(平面類)加載外部圖片貼圖來實現3D鍵盤交互,并且設定使用鍵盤上的w、a、s、d這4個按鍵控制Plane的平移,旋轉交互效果,代碼如下:
package
{
import
PaperBase;
import
flash.events.KeyboardEvent;
import
org.papervision3d.cameras.FreeCamera3D;
import
org.papervision3d.objects.primitives.Plane;
import
org.papervision3d.materials.BitmapFileMaterial;
public class
MainKeyboardInteraction extends PaperBase {
public var wdown:Boolean = false;
public var adown:Boolean = false;
public var sdown:Boolean = false;
public var ddown:Boolean = false;
public var camera:FreeCamera3D;
public function MainKeyboardInteraction() {
init();
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
public function onKeyDown( event:KeyboardEvent ):void {
switch(event.keyCode) {//w:87
a:65 s:83 d:68
case 87:
wdown = true;
break;
case 65:
adown = true;
break;
case 83:
sdown = true;
|