![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
Здравствуйте.
Я никак не могу понять как правильно приделать прелоадер. Проблема в том что мои классы подключаются к main отдельно. ТО есть у меня в main происходит следующее public class Main extends Sprite { [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; private var sc:Scene; public function Main() { var file:ByteArray = ((new EmbedModel()) as ByteArray); var str:String = file.readUTFBytes( file.length ); var xml:XML = new XML( str ); sc = new Scene(xml); stage.addChild(sc); То есть мне нужно сделать свой класс Preloader extends Movieclip в котором будет вызываться класс сцена?А что мне тогда делать с main? Мне нужно чтобы прелоадер дождался пока все 3D объекты добавятся на сцену(они добавляются в классе сцена).Как мне нужно всё это дело организовать? |
|
|||||
|
Посмотрите предыдущее темы в этой ветке, недавно поднимался вопрос.
Или посмотрите как организован проект со встроенным preloader'ом во FlashDevelop.
__________________
местонахождение |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
Там прелоадер прикручивается к main проекту. А мне нужно чтобы мои классы были отдельны, то бишь кто-либо в main пишет
И там, внутри, в классе scene появлялся загрузчик (кстати, я не понимаю как он (загрузчик) понимает, что сцена загрузилась и её нужно только показать), который показывал, что сцена загрузилась на "10%" и т.д. Извините за пунктуацию,никогда не был силён в ней ![]() Последний раз редактировалось dimarik; 06.08.2011 в 01:32. |
|
|||||
|
А что такое 'Scene' и почему загрузчик должен быть в этом классе?
Объясните смысл вашей "работы", как-то более понятно.
__________________
местонахождение |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
Разрабатываю набор классов, для отрисовки произвольной 3D сцены исходя из данных полученных по XML файлу.По задумке, человеку использующему мои классы, требуется лишь сделать Embed Xml файла в Main и передать XML файл в сцену.А дальше мои классы сами уже производят разбор XML, добавление объектов(2D и 3D), прикручивают слушатели мыши и клавы.
Соответственно хочется добавить ко всему этому прелоадер сцены,поскольку 2D объекты отображаются почти моментально, а 3D объекты с задержкой (весомой задержкой). Итог: хочу,чтобы сначала произвелась полная загрузка сцены (всех объектов 2D и 3D) и лишь потом они появились. А пока идёт загрузка просто висела по центру экрана какая-нибудь инфа о степени готовности загрузки. Вопрос как это притворить в жизнь? И ещё вопрос такой можно ли из public class Main extends Sprite { [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; private var sc:Scene; public function Main() { var file:ByteArray = ((new EmbedModel()) as ByteArray); var str:String = file.readUTFBytes( file.length ); var xml:XML = new XML( str ); sc = new Scene(xml); stage.addChild(sc); var file:ByteArray = ((new EmbedModel()) as ByteArray); var str:String = file.readUTFBytes( file.length ); var xml:XML = new XML( str ); Если да то какой параметр указывать в конструкторе класса сцены? Последний раз редактировалось savva; 06.08.2011 в 01:38. |
|
|||||
|
Загрузка, по логике, это когда, что-то грузится, у Вас, я так понимаю, ничего не грузится.
Как вариант, если я Вас правильно понял. При начале построения, как только получаете заветный xml, выдайте пользователю сообщение о начале инициализации объектов, дождитесь завершения, убери сообщение, показывайте созданное. насчет "вытащить", с чем работает Ваш основной класс, с какими данными?
__________________
местонахождение |
|
|||||
|
.
|
savva, откровенно говоря, лучше создавать такие темы в соответствующем разделе.
Никто не говорит "набор классы". Обычно вставляют запятые. А теперь поразите меня своей идеей, тем что еще не было на flasher.ru XML как источник данных -- это настолько набило оскомину, что скучно. Вы хотели предложить что-то новое? MVC не пробовали на вкус? |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
2 СлаваRa
Я имел ввиду создание и парсирование объектов(в xml находятся url адреса моделей 3DS Max, которые парсируются соответствующими методами). А какой event я должен слушать,чтобы понять что все объекты созданы и уже готовы к выводу на сцену? на данный момент происходит вот так: //Инициализация сцены private function Init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage3D = stage.stage3Ds[0]; stage3D.addEventListener(Event.CONTEXT3D_CREATE, OnContextCreate); stage3D.requestContext3D(); } //конструктор сцены параметр xml public function Scene (_xml:XML) { myxml = _xml; addEventListener(Event.ADDED_TO_STAGE, Init); } var file:ByteArray = ((new EmbedModel()) as ByteArray); var str:String = file.readUTFBytes( file.length ); var xml:XML = new XML( str ); А в Main выполнялось следующее: [Embed("FormMain.xml", mimeType = "application/octet-stream")] private static const EmbedModel:Class; private var sc:Scene; public function Main() { sc = new Scene(new EmbedModel()); stage.addChild(sc); Я как перечитал сразу исправил.Я стараюсь использовать пунктуацию. Я не собирался кого-либо поражать. Сейчас собственно и пробую. В классе Scene находятся все объекты,также этот класс отвечает за визуализацию.Есть класс scenecontroller. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|