Question

I've follow the tutorial from this link: http://www.adobe.com/devnet/flashplayer/articles/creating-games-away3d.html

But the code seem like got problems with it that I can't even load the 3D vase.

Here is the code:

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();
        }
    }
}

Any idea where the error is? Or is it got any tutorial that teaching how to load AWD files into flash?

Thanks.

Was it helpful?

Solution

I would suggest you to use AssetLibrary to load your Model, its very simple and easy to handle all the things that models contains,

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

for detailed example check This

I hope it helps you

OTHER TIPS

delete "Parsers.enableAllBundled();" try this: AssetLibrary.enableParser(AWD1Parser) or AssetLibrary.enableParser(AWD2Parser) or var aWD2Parser:AWD2Parser=new AWD2Parser(); _loader.load(new URLRequest('vase.awd'),null,"vase.awd",aWD2Parser);

The vase AWD file adobe has with their tutorial is no longer valid. The AWD spec changed and adobe never updated their tutorial. You will usually get an End Of File error if you try to load it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top