Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程-4.Bonjour Alt
2010-12-30 21:39
387 查看
原文:http://www.bcia-bag.com/article/ZMTEyMDg=.html
*申明:教程中用到的3D引擎Alternativa均以非盈利教学为目的,不得用于任何商业用途。如要购买正版请访问官网网站: http://alternativaplatform.com/en/
一起来就12点了。。。呵呵。乘着还有时间,还是再发一次教程吧。作为基础教程的最后一章,同时也是本周更新的最后一次教程了。到下周在更新新的教程,进入进阶篇。
像所有的教程一样,第一个例子就是Hello,我们也做第一例子,叫做你好Alternativa,翻译成法语就是Bonjour Alt,就以它为我们的第一个实例吧。
一.建立Flash主文件,绑定文档类
1. 在Flash建立一个新的AS3文件,命名为Bonjour_Alt.fla,并与上一章建立的类库文件夹lib保存在同一个目录中。
2. 再用Flash建立一个AS3脚本文件(新建方法,见上一章),也保存在这个目录下。
3.然后从Flash中打开Bonjour_Alt.fla文件。在:属性-->文档属性面板中“类”一栏里,填入建立的文档类:
不需要添加后缀名.as。
二.编写文档类
打开文档类文件Bonjour_Alt.as,下面就要编写文档类了。
文档类源文件如下:
package
{
import lib.*;
//导入上一章中我们建立的类库,该文档类就可以使用其中建立的类了。
//导入Flash要用到的相关的类
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Stage;
import flash.display.BlendMode;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.StageQuality;
//导入A3D要用到的相关的类
import alternativa.engine3d.primitives.Box
//A3D中自带的立方体类
import alternativa.utils.FPS;
//A3D中显示当前swf文件帧速与内存占用量的仪表盘,用于测试程序
import alternativa.engine3d.materials.FillMaterial;
//A3D的材质类中的一种
//设置播放器初始属性,背景颜色黑色,帧频100Fps,大小800*600
[SWF(backgroundColor = "#000000",frameRate = "100", height = 600, width = 800)]
public class Bonjour_Alt extends AltBasse
//申明文档类,其名称必须与该文件名一致,并且继承自上一章建立的基类AltBasse
{
private var box:Box;
//申明一个立方体对象
public function Bonjour_Alt()
//构造函数,名称要与文件名,类名一致
{
super();
//调用父类中的构造函数
stage.scaleMode = StageScaleMode.NO_SCALE;
//设置舞台缩放模式为 不缩放
stage.align = StageAlign.TOP_LEFT;
//设置舞台对其模式为 左上对其
stage.quality = StageQuality.HIGH;
//设置swf影片质量为 高
addEventListener(Event.ADDED_TO_STAGE, init);
//注册一个监听器,监听ADDED_TO_STAGE事件,就是文档类导入舞台的事件,并用一个初始化函数作为响应(通常程序员都将初始化函数命名为init)
}
//事件响应函数,即初始化函数
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//移除事件监听器,因为文档类的ADDED_TO_STAGE事件只发生一次,继续监听没有必要,所以移除事件堆栈
box = new Box(100,100,100,3,3,3);
//实例化一个立方体三维对象,长宽高 都为100, 长宽高三个方向的网格数量都为3(在进阶篇中,将详细讲解各个三维对象的生成函数,级网格的概念)
box.cloneMaterialToAllSurfaces(new FillMaterial(0x00FF00,1,BlendMode.NORMAL,3,0xFFFFFF));
//为这个立方体的所有表面添加同样的材质:颜色填充类材质。设置填充颜色为绿色,透明度1,线条颜色为白色,宽度3,混合模式为普通
scene.root.addChild(box);
//将这个立方体加入到场景中,这样才能看见立方体(参见基础教程的第二章)
// 设置摄像机位置
camera.x = 100;
camera.y=-150;
camera.z= 100;
cameraController.lookAt(box.coords);
//制定摄像机观察点,其中box.coords为Point3D的一个实例
FPS.init(stage);
//加入A3D的仪表板
cameraController.controlsEnabled = true;
//设置摄像机控制器打开
stage.addEventListener(Event.ENTER_FRAME,OnEnterFrame);
//注册一个监听器,用于实时渲染
}
private function OnEnterFrame(e:Event):void
//事件响应函数,用来实时渲染
{
cameraController.processInput();
//设置用户输入模式为摄像机控制器模式(原理将会在进阶篇中讲解)
scene.calculate();
//scene的渲染计算
}
}
}
写好文档类之后,保存一下,然后 Ctrl+Enter
就可以看见一个可爱的立方体了。可以在我关联的作品里查看。可以用A,S,W,D键,上下左右键,及鼠标控制(这都是因为我们打开了摄像机控制器)。不
过,要注意的是,虽然看上去我们在控制这个立方体,但实际上,我们是在控制摄像机(请参见基础教程第二章)。
关联作品:http://www.zcool.com.cn/work/ZMjk3MTk2.html
三.小结
下面总结一下,应用基类编写文档类的步骤:
导入所需的类
继承基类
(设置播放器属性)
定义三维对象
添加三维对象到场景
制定摄像机观察点
打开摄像机
添加实时渲染函数
如果说,我们没有编写之前的基类文件,可想而知,现在的文档类写起来要复杂的多,而有了文档类,我们继承之后,可以直接访问其受保护(或是公共)的方法。
学完了这基础教程的第四章,我还是建议你请看后面的本章总结与练习,这样会更进一步加深你的理解,另外一些小练习,也可以让你练练手~呵呵。
本文由 站酷网
- baileyange
原创,转载请保留此信息,多谢合作。
*申明:教程中用到的3D引擎Alternativa均以非盈利教学为目的,不得用于任何商业用途。如要购买正版请访问官网网站: http://alternativaplatform.com/en/
一起来就12点了。。。呵呵。乘着还有时间,还是再发一次教程吧。作为基础教程的最后一章,同时也是本周更新的最后一次教程了。到下周在更新新的教程,进入进阶篇。
像所有的教程一样,第一个例子就是Hello,我们也做第一例子,叫做你好Alternativa,翻译成法语就是Bonjour Alt,就以它为我们的第一个实例吧。
一.建立Flash主文件,绑定文档类
1. 在Flash建立一个新的AS3文件,命名为Bonjour_Alt.fla,并与上一章建立的类库文件夹lib保存在同一个目录中。
2. 再用Flash建立一个AS3脚本文件(新建方法,见上一章),也保存在这个目录下。
3.然后从Flash中打开Bonjour_Alt.fla文件。在:属性-->文档属性面板中“类”一栏里,填入建立的文档类:
不需要添加后缀名.as。
二.编写文档类
打开文档类文件Bonjour_Alt.as,下面就要编写文档类了。
文档类源文件如下:
package
{
import lib.*;
//导入上一章中我们建立的类库,该文档类就可以使用其中建立的类了。
//导入Flash要用到的相关的类
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Stage;
import flash.display.BlendMode;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.StageQuality;
//导入A3D要用到的相关的类
import alternativa.engine3d.primitives.Box
//A3D中自带的立方体类
import alternativa.utils.FPS;
//A3D中显示当前swf文件帧速与内存占用量的仪表盘,用于测试程序
import alternativa.engine3d.materials.FillMaterial;
//A3D的材质类中的一种
//设置播放器初始属性,背景颜色黑色,帧频100Fps,大小800*600
[SWF(backgroundColor = "#000000",frameRate = "100", height = 600, width = 800)]
public class Bonjour_Alt extends AltBasse
//申明文档类,其名称必须与该文件名一致,并且继承自上一章建立的基类AltBasse
{
private var box:Box;
//申明一个立方体对象
public function Bonjour_Alt()
//构造函数,名称要与文件名,类名一致
{
super();
//调用父类中的构造函数
stage.scaleMode = StageScaleMode.NO_SCALE;
//设置舞台缩放模式为 不缩放
stage.align = StageAlign.TOP_LEFT;
//设置舞台对其模式为 左上对其
stage.quality = StageQuality.HIGH;
//设置swf影片质量为 高
addEventListener(Event.ADDED_TO_STAGE, init);
//注册一个监听器,监听ADDED_TO_STAGE事件,就是文档类导入舞台的事件,并用一个初始化函数作为响应(通常程序员都将初始化函数命名为init)
}
//事件响应函数,即初始化函数
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//移除事件监听器,因为文档类的ADDED_TO_STAGE事件只发生一次,继续监听没有必要,所以移除事件堆栈
box = new Box(100,100,100,3,3,3);
//实例化一个立方体三维对象,长宽高 都为100, 长宽高三个方向的网格数量都为3(在进阶篇中,将详细讲解各个三维对象的生成函数,级网格的概念)
box.cloneMaterialToAllSurfaces(new FillMaterial(0x00FF00,1,BlendMode.NORMAL,3,0xFFFFFF));
//为这个立方体的所有表面添加同样的材质:颜色填充类材质。设置填充颜色为绿色,透明度1,线条颜色为白色,宽度3,混合模式为普通
scene.root.addChild(box);
//将这个立方体加入到场景中,这样才能看见立方体(参见基础教程的第二章)
// 设置摄像机位置
camera.x = 100;
camera.y=-150;
camera.z= 100;
cameraController.lookAt(box.coords);
//制定摄像机观察点,其中box.coords为Point3D的一个实例
FPS.init(stage);
//加入A3D的仪表板
cameraController.controlsEnabled = true;
//设置摄像机控制器打开
stage.addEventListener(Event.ENTER_FRAME,OnEnterFrame);
//注册一个监听器,用于实时渲染
}
private function OnEnterFrame(e:Event):void
//事件响应函数,用来实时渲染
{
cameraController.processInput();
//设置用户输入模式为摄像机控制器模式(原理将会在进阶篇中讲解)
scene.calculate();
//scene的渲染计算
}
}
}
写好文档类之后,保存一下,然后 Ctrl+Enter
就可以看见一个可爱的立方体了。可以在我关联的作品里查看。可以用A,S,W,D键,上下左右键,及鼠标控制(这都是因为我们打开了摄像机控制器)。不
过,要注意的是,虽然看上去我们在控制这个立方体,但实际上,我们是在控制摄像机(请参见基础教程第二章)。
关联作品:http://www.zcool.com.cn/work/ZMjk3MTk2.html
三.小结
下面总结一下,应用基类编写文档类的步骤:
导入所需的类
继承基类
(设置播放器属性)
定义三维对象
添加三维对象到场景
制定摄像机观察点
打开摄像机
添加实时渲染函数
如果说,我们没有编写之前的基类文件,可想而知,现在的文档类写起来要复杂的多,而有了文档类,我们继承之后,可以直接访问其受保护(或是公共)的方法。
学完了这基础教程的第四章,我还是建议你请看后面的本章总结与练习,这样会更进一步加深你的理解,另外一些小练习,也可以让你练练手~呵呵。
本文由 站酷网
- baileyange
原创,转载请保留此信息,多谢合作。
相关文章推荐
- Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程-1.C'est quoi ? Alternativa
- Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程-2.Alternativa机理
- Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程-3.打造基类
- Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程-5.本章小结与练习
- Dragon-Studio 之 Flash Alternativa 3D引擎 进阶教程-2.表面材质(1)
- Dragon-Studio 之 Flash Alternativa 3D引擎 进阶教程-1.内置模型
- Dragon-Studio 之 Flash Alternativa 3D引擎 专题讲座-1. 玩转摄像机
- Blaze 3D Studio基础教程之制作流程详解
- flash 3D 基础教程
- Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
- AutoPlay Media Studio图片基础教程
- Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
- Unity3D游戏引擎最详尽基础教程
- unity基础开发----Photon服务器引擎 入门教程二
- 规则引擎Ilog Jrules开发基础教程-- 概述篇
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程05:技能读表》
- cocos 3d基础教程
- AndroidStudio基础教程(三)
- Dreamweaver & Flash & Photoshop网页设计基础与实例教程(职业白金版)
- 转-常用3Dflash引擎