Link

首页

Tweet

书单

about me

Command

Category

flare3D第一个实例


这是我们第一个flare3D实例,我们通过将通过flare3D引擎来编写一个非常简单的效果。在这里实例中我们所使用到的软件包含Autodesk 3ds Max 2010和flash builder 4.5。当然,在使用之前我们先必须对flash builder4.5进行配置。关于如何启用stage3D的配置,请大家参考我的另外一篇文章。下面我们通过3D MAX软件来进行建模操作。对于我们这个简单的demo来说,不需要太复杂的模型,因为我们仅仅需要了解flare3D的运行机制就可以了。OK,下面我们来看一下这个3D模型的截图。
点击查看原图
可以看到我们这个模型中仅仅有两个对象,一个立方形和一个圆环。我们对其中圆环的属性命名为myhuan,这就相当于flash软件中的实例名称。在3D MAX中我们也可以进行这样的设置。

在模型绘制好之后我们到处需要的f3d格式的模型文件,对于没有进行贴图操作的模型,flash会以最原始的颜色进行显示。对此我们在这篇文章中不加以讨论。

导出操作选项如下图:

OK!下面我们将f3d文件存放到flash builder的项目文件中,然后进行代码编写。
点击查看原图
下面是文档类的代码:
package
{
    import flare.basic.;
    import flare.core.
;
    import flare.system.;
    import flare.utils.
;
   
    import flash.display.;
    import flash.display3D.
;
    import flash.events.*;
   
    [SWF(frameRate = 60, width = 800, height = 450, backgroundColor = 0x000000)]
    public class ex2 extends Sprite
    {
       
        private var scene:Scene3D;
       
        private var obj:Pivot3D;
        private var hua:Pivot3D;
       
        public function ex2()
        {
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
           
            scene = new Viewer3D(this);
            scene.antialias = 10;
            obj = scene.addChildFromFile(“3d.f3d”);
            scene.addEventListener( Scene3D.COMPLETE_EVENT, completeEvent );
        }
        private function completeEvent(e:Event):void
        {
            hua = obj.getChildByName(“myhuan”);
            this.addEventListener(Event.ENTER_FRAME,dong);
        }
        private function dong(evt:Event):void
        {
            hua.rotateX(5);
        }
    }
}

对于代码中出现的内容我们来进行一下详细的讲解。在所有的3D引擎中都会包含两个概念一个是场景,另外一个就是摄像机。

这个demo中并没有出现摄像机这个操作,我们只是使用了场景这个对象。
Scene3D这个类是我们flare3D中的场景类,通过这个类,我们可以实例化一个3D场景容器,将所有的3D对象全部存放到这个场景中。
这里我们在实例化的时候并没有使用Scene3D,而是使用了另外一个带有鼠标交互事件场景类,Viewer3D从Scene3D继承而来,在此基础之上增加了鼠标事件。

Pivot3D则是所有3D元素的父类,其角色相当于DisplayObject,所有的3D元素全部继承自这个类。后面我们的代码则是我们从外部文件中加载f3d文件,然后flare3D引擎会自动将这些文件解析为flash可读取的文件格式,并且进行显示。

后面则是对我们模型中的圆环进行旋转操作。

最终效果如图:

点击查看原图

 

点击下载源代码