[AS3] Alternavta3d7.5教程(一)
来源:互联网 发布:剑网三重制版 mac 编辑:程序博客网 时间:2024/06/01 17:22
“Molehill”来袭,大家都准备好了吗?Flashplayer11的GPU支持将改变整个Flash平台的开发。
Alternavta3d是目前最好的Flash平台3D引擎,最新版本是7.5.1,虽然下一个版本8还没放出,但由于跟原来5.6的版本差异很大,跟8应该相差不大了。
Alternavta3d由于不是开源的,网上教程比较少,我会陆续更新Alternavta3d7.5系列教程。
Hello, Alternativa3D
这是我的第一个Alternativa3D例子
打开演示
整个例子非常简单,有几点需要注意:
1. wireMaterial和colorMaterial都是通过FillMaterial创建的,区别只是在参数的设定上。
2. flash运行的状态数据(如FPS,MEM等)可以通过addChild(camera.diagram)来显示。
3. 不像pv3d有一个scene,将3D对象放到场景可以用addChild Object3DContainer,或使用BSPContainer来实现。
复制内容到剪贴板
代码:
/**
* Engine:Alternativa3D7.5.1
* Author:Mars Yang
* Link:http://www.marsyang.com/blog/archives/85
*/
package
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Plane;
import alternativa.engine3d.primitives.Sphere;
import flash.display.Sprite;
import flash.events.Event;
[SWF(backgroundColor="#000000", frameRate="100")]
public class Example0 extends Sprite
{
private var rootContainer:Object3DContainer = new Object3DContainer();
private var camera:Camera3D;
private var plane:Plane;
private var sphere:Sphere;
private var wireMaterial:FillMaterial = new FillMaterial(0, 0, 0, 0xffffff);
private var colorMaterial:FillMaterial = new FillMaterial(0xff0000, 1, 0, 0xffffff);
public function Example0()
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event): void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//create camera & view
camera = new Camera3D();
camera.view = new View(stage.stageWidth, stage.stageHeight);
addChild(camera.view);
addChild(camera.diagram);
camera.rotationX = -120*Math.PI/180;
camera.y = -150;
camera.z = 100;
rootContainer.addChild(camera);
//create object3d
plane = new Plane(200, 60);
plane.setMaterialToAllFaces(colorMaterial);
rootContainer.addChild(plane);
sphere = new Sphere(50);
sphere.y = 100;
sphere.setMaterialToAllFaces(wireMaterial);
rootContainer.addChild(sphere);
camera.render();
stage.addEventListener(Event.RESIZE, onResize);
}
private function onResize(e:Event):void {
camera.view.width = stage.stageWidth;
camera.view.height = stage.stageHeight;
camera.render();
}
}
}
- [AS3] Alternavta3d7.5教程(一)
- as3教程
- as3与lua(一)
- [AS3] Alternativa3D 7.5 系列教程(二)
- [AS3] Alternativa3D 7.5 系列教程(三)
- [AS3] Alternativa3D 7.5 系列教程(四)
- AS3与JS进行交互(一)
- AS3.0游戏开发(一)
- AS3教程(13):AS3中的数据存取方式效率比较
- AS3.0教程(9):强大的事件机制(5)
- AS3.0教程(5):强大的事件机制(1)
- AS3.0教程(5):强大的事件机制(1)
- AS3.0教程(9):强大的事件机制(5)
- 学习flash as3 (一)
- flash教程,as3教程,as3新手入门等资源导航贴
- PureMVC(AS3)剖析:设计模式(一)
- flex学习笔记(一)as3中添加组件
- linux(redhat as3.0)恢复一例
- 再回首Java基础_1230
- 未来的一家出色的云计算服务提供商
- 数据库基础复习ing...1年前的笔记整理
- 大家好
- android捕获全局异常,并对异常做出处理
- [AS3] Alternavta3d7.5教程(一)
- 复杂条件的查询
- 配置集群注意问题
- java list排序
- 暂时总结一下
- VC++动态链接库编程之基础概念
- [AS3] Alternativa3D 7.5 系列教程(二)
- 学习有感
- 第一篇日志