Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Загрузка формата AWD (http://www.flasher.ru/forum/showthread.php?t=185350)

maviflasher 10.10.2012 17:10

Загрузка формата AWD
 
Поделитесь пожалуйста рабочим примером или скриптом загрузки AWD формата в away3d движке.
Заранее спасибо))

NikolyA 10.10.2012 20:54

http://www.away3d.com/example/3ds_Max_workflow

maviflasher 10.10.2012 21:18

Спасибо за ссылку, уже пробовал такой пример, не получилось. Поэтому прошу показать рабочие исходники если кто занимался этим. Спс!

HorusWM 10.10.2012 21:45

Код AS3:

package
{
        import away3d.entities.Mesh;
        import away3d.loaders.Loader3D;
        import away3d.loaders.parsers.Parsers;
        import away3d.library.AssetLibrary;
        import away3d.events.AssetEvent;
 
        /**
        * 07.10.2012
        * @author HorusWM
        */

        public class MeshLoader
        {
                private static var mesh:MeshComponent;
 
                public function MeshLoader()
                {
 
                }
 
                /**
                * Загружает модель с текстурами
                * @param        className        имя модели
                * @param        m        целевой меш
                */

                public static function Load(className:Class, m:MeshComponent):void
                {
                        mesh = m;
                        Parsers.enableAllBundled();
                        AssetLibrary.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
                        AssetLibrary.loadData(new className());
                }
 
                private static function onAssetComplete(event:AssetEvent):void
                {
                        var loaded:Mesh = event.asset as Mesh;
 
                        if (loaded != null) mesh.SetMesh(loaded);
                }
        }
}

использовать так:
Код AS3:

var [Embed(source = "../content/arnoldschawrzenegger.AWD", mimeType = "application/octet-stream")] private const MESH_CLASS:Class
 
MeshLoader.Load(MESH_CLASS, player.mesh);

MeshComponent - мой класс, где через метод SetMesh(); я назначаю меш свойству geometry

maviflasher 11.10.2012 01:50

Вложений: 1
HorusWM, есть вот такая модель экспортированная из 3dsmax плагином away3d. Флешка сгенерированна им же.
В приложении файл busket.awd, текстуры у него нету, белая поверхность должна быть.
К сожалению я работаю только в Adobe Flash и с Билдером не сталкивался.
Как можно адаптировать твой код под Flash?
Буду очень признателен за помощь, вопрос очень актуальный для меня)

HorusWM 11.10.2012 02:44

Так код в классах пишется, какая разница в адобе или флеш билдере. Просто кидаешь класс к себе и используешь. Ну разве что подгонишь под себя то, что я указал в предыдущем посте - там нужно передать ссылку на целевой меш, чтобы запилить в его _geometry загруженную модель (ну, или можно вообще сразу по завершении загрузки создавать на сцене новый меш с моделью, просто у меня используется 2 варианта: загрузка внешнего файла через диалоговое окно и парсинг уже встроенного файла - вот тебе нужно второе).

maviflasher 11.10.2012 12:06

Попробовал так
Код AS3:

package {
        import away3d.entities.Mesh;
        import away3d.loaders.Loader3D;
        import away3d.loaders.parsers.Parsers;
        import away3d.library.AssetLibrary;
        import away3d.events.AssetEvent;
        import flash.display.MovieClip;
 
        public class MeshLoader extends MovieClip {
                [Embed(source = "busket.awd",mimeType = "application/octet-stream")] private const MESH_CLASS:Class;
                public function MeshLoader() {
                        Load(MESH_CLASS)
                }
 
                public static function Load(className:Class):void {
                        Parsers.enableAllBundled();
                        AssetLibrary.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
                        AssetLibrary.loadData(new className());
                }
                public static function onAssetComplete(event:AssetEvent):void {
                        var loaded:Mesh = event.asset as Mesh;
 
                }
        }
}

Вылазит ошибка:
1046: Type was not found or was not a compile-time constant: AssetEvent.

Классы вроде последние скачал, что не так ?

NikolyA 11.10.2012 12:35

отсюда возьми классы: https://github.com/away3d

maviflasher 11.10.2012 13:46

Видимо не в классах дело,
помогите архивом с рабочим файлом (fla) и библиотекой.
я не силен в away3d, а наглядный пример очень поможет.
Заранее спасибо!

HorusWM 11.10.2012 16:39

Предполагаю, что ты засунул этот класс в какую-то папку, а package в объявлении не указал. Не думаю, что кто-то для тебя будет копаться c fla, и вообще советую работать в другом IDE - лучше всего именно FD, так как большинство ресурсов и примеров в сети рассчитаны именно под него. Ну и удобство работы, подсветка и т.д. А так сейчас хрен поймешь, что там у тебя может быть. Кстати, зачем класс со статичными методами наследовать от мовиклипа?


Часовой пояс GMT +4, время: 17:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.