2

我已经按照这个链接的教程:http: //www.adobe.com/devnet/flashplayer/articles/creating-games-away3d.html

但是代码似乎有问题,我什至无法加载 3D 花瓶。

这是代码:

package 
{
    import away3d.containers.View3D;
    import away3d.events.LoaderEvent;
    import away3d.loaders.Loader3D;
    import away3d.loaders.parsers.Parsers;

    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLRequest;

    public class Main extends Sprite
    {
        private var _view:View3D;
        private var _loader:Loader3D;

        public function Main()
        {
            _view = new View3D();
            _view.backgroundColor = 0x666666;
            _view.antiAlias = 4;

            this.addChild(_view);
            this.addEventListener(Event.ENTER_FRAME, onEnterFrame);

            Parsers.enableAllBundled();

            _loader = new Loader3D();
            _loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
            _loader.addEventListener(LoaderEvent.LOAD_ERROR, onLoadError);
            _loader.load( new URLRequest('vase.awd') );
        }

        private function onResourceComplete(ev:LoaderEvent):void
        {
            _loader.removeEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
            _loader.removeEventListener(LoaderEvent.LOAD_ERROR, onLoadError);
            _view.scene.addChild(_loader);
        }

        private function onLoadError(ev:LoaderEvent):void
        {
            trace('Could not find', ev.url);
            _loader.removeEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
            _loader.removeEventListener(LoaderEvent.LOAD_ERROR, onLoadError);
            _loader = null;
        }

        private function onEnterFrame(ev:Event):void
        {
            _loader.rotationY = stage.mouseX - stage.stageWidth / 2;
            _view.camera.y = 3 * (stage.mouseY - stage.stageHeight/2);
            _view.camera.lookAt(_loader.position);
            _view.render();
        }
    }
}

知道错误在哪里吗?或者是否有任何教程教如何将 AWD 文件加载到闪存中?

谢谢。

4

3 回答 3

2

我建议您使用 AssetLibrary 来加载您的模型,它非常简单且易于处理模型包含的所有内容,

AssetLibrary.addEventListener( AssetEvent.ASSET_COMPLETE, onAssetComplete );
AssetLibrary.addEventListener( LoaderEvent.RESOURCE_COMPLETE, onResourceComplete );
AssetLibrary.addEventListener( LoaderEvent.LOAD_ERROR, onLoadError );

详细的例子检查这个

希望对你有帮助

于 2012-09-08T20:42:11.347 回答
2

删除“Parsers.enableAllBundled();” 试试这个: AssetLibrary.enableParser(AWD1Parser) 或 AssetLibrary.enableParser(AWD2Parser) 或 var aWD2Parser:AWD2Parser=new AWD2Parser(); _loader.load(new URLRequest('vase.awd'),null,"vase.awd",aWD2Parser);

于 2012-11-08T03:18:11.927 回答
1

adobe 与他们的教程一起使用的花瓶 AWD 文件不再有效。AWD 规格发生了变化,adobe 从未更新过他们的教程。如果您尝试加载它,通常会收到文件结束错误。

于 2013-05-17T18:31:00.963 回答