查看: 2278|回复: 0
打印 上一主题 下一主题

Flash3D学习——Sandy学习笔记 [14]

[复制链接]
.    

3797

主题

11

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
32328
精华
41

活跃会员 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2012-8-27 11:15:23 |只看该作者 |倒序浏览
导入3ds格式文件,通过网络加载3DS文件。

不做什么说明了,我对3dsmax不了解,这里只是做个了解。
代码:
package

{

    import flash.display. * ;

    import flash.events. * ;

    import flash.ui. * ;

    import flash.net.URLRequest;

    import sandy.core.Scene3D;

    import sandy.core.data. * ;

    import sandy.core.scenegraph. * ;

    import sandy.materials. * ;

    import sandy.materials.attributes. * ;

    import sandy.primitive. * ;

    import sandy.parser. * ;

    import sandy.util. * ;

    import sandy.events. * ;

    /**

    * ...

    * @author ever5u

    */

    public class fuxi extends Sprite

    {

        private var scene:Scene3D;

        private var camera:Camera3D;

        private var rifle:Shape3D;

        private var queueoaderQueue;

        private var parserStackarserStack;

        public function fuxi()

        {

            var parser:IParser = Parser.create("http://www.flashsandy.org/max/asset/mar_rifle.3ds" , Parser.MAX_3DS , 1 , "JPG");

            parserStack = new ParserStack();

            parserStack.add("rifle" , parser);

            parserStack.addEventListener(ParserStack.COMPLETE , parserComplete );

            parserStack.start();

        }

        private function onError( pEvtarserEvent ):void

        {

            trace("there is an error in loading your stuff");

        }

        private function parserComplete(pEvt:Event ):void

        {

            rifle = parserStack.getGroupByName("rifle").children[0] as Shape3D;

            var root:Group = createScene();

            camera = new Camera3D( 300 , 300 );

            camera.y = 5;

            camera.z = - 150;

            scene = new Scene3D( "scene" , this , camera , root );

            addEventListener( Event.ENTER_FRAME , enterFrameHandler );

            stage.addEventListener(KeyboardEvent.KEY_DOWN , keyPressedHandler);

        }

        private function createScene():Group

        {

            var g:Group = new Group();

            rifle.x = 0;

            rifle.y = 0;

            rifle.pan = - 30;

            g.addChild(rifle);

            return g;

        }

        private function keyPressedHandler(event:flash.events.KeyboardEvent):void

        {

            switch(event.keyCode)

            {

                case Keyboard.UP:

                rifle.roll += 5;

                break;

                case Keyboard.DOWN:

                rifle.roll -= 5;

                break;

                case Keyboard.LEFT:

                rifle.pan -= 5;

                break;

                case Keyboard.RIGHT:

                rifle.pan += 5;

                break;

            }

        }

        private function enterFrameHandler( event : Event ) : void

        {

            scene.render();

        }

    }

}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-12-1 04:56 , Processed in 0.092404 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部