2024年5月11日发(作者:)

教程1 Hello Alternativa3D

在这一讲中,我们会建立一个简单的3D场景,让大家一步步了解A3D中场景设置的基

本知识。

首先,我们先在Flex中创建一个AS工程(如果你使用的是其他软件,如Flash

CS4,FlashDevelop也可以),取名为HelloAlternativa3D,然后把A3D的SWC类库导入到工程

中。对于一个工程,我们仅建立一个文件,包含了以下所有代码:

package {

//从A3D包中导入所需要的类

import Controller;

import 3D;

import 3D;

import 3D;

import ;

import terial;

import ;

import ;

//从flash 包中导入所需要的类

import ;

import lign;

import caleMode;

import ;

//设置输出地SWF文件的背景色和帧频

[SWF(backgroundColor="#000000", frameRate="100")]

public class HelloAlternativa3D extends Sprite {

//声明所需要的变量

private var scene:Scene3D;

private var view:View;

private var camera:Camera3D;

private var cameraController:CameraController;

private var box:Box;

public function HelloAlternativa3D() {

addEventListener(_TO_STAGE, init);

}

public function init(e:Event): void {

removeEventListener(_TO_STAGE, init);

//设置舞台缩放模式,当拉动播放器时,画面保持原始大小比例显示。

ode = _SCALE;

//设置舞台对齐方式,使舞台靠左上角对齐。

= _LEFT;

//创建场景

scene = new Scene3D();

= new Object3D();

box = new Box(100, 100, 100, 3, 3, 3);

aterialToAllSurfaces(new WireMaterial(1, 0xFFFFFF));

ld(box);

//添加相机和视窗

camera = new Camera3D();

camera.x = 100;

camera.y = -150;

camera.z = 100;

ld(camera);

view = new View();

addChild(view);

= camera;

//添加相机控制器

cameraController = new CameraController(stage);

= camera;

aultBindings();

ollisions = true;

ionRadius = 20;

();

lsEnabled = true;

//添加帧频显示

(stage);

//为stage添加事件侦听

ntListener(, onResize);

ntListener(_FRAME, onEnterFrame);

onResize(null);

}

private function onResize(e:Event):void {

= idth;

= eight;

}

private function onEnterFrame(e:Event):void {

//用户输入响应

sInput();

//场景计算重绘

ate();

}