Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Стеснительный sprite со сценой Away3d (http://www.flasher.ru/forum/showthread.php?t=211102)

PsychoTech 25.06.2015 22:44

Стеснительный sprite со сценой Away3d
 
Снова всем привет. не могу понять одного. Сделал класс который создает 3д сцену. помимо всего прочего есть еще куча других классов для вывода на экран. пока вывожу несколько разных экземпляром, но почему-то спрайт с 3д прячется в самом низу хоть и добавляется последним. Что это за глюк? и как с ним бороться. исходник пока такой. надо будет добавлю другие классы
Код AS3:

public function Main():void 
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        test = new Forward();
                        addChild(test);
                        shap2 = new UpLook();
                        shap2.x = -30;
                        shap2.y = 0;
                        addChild(shap2);
                        trace("ok");
 
                        LookRoof = new VisualRoof();
                        LookRoof.x = 450;
                        addChild(LookRoof);
 
                        this.setChildIndex(LookRoof, this.numChildren-1);
 
                }
 
        }

Добавлено через 40 секунд
http://prntscr.com/7l9ug2

Добавлено через 1 минуту
http://i.imgur.com/IQ6AS2d.png

Zebestov 25.06.2015 22:57

Так устроен Flash.
Away3D использует Stage3D.
Stage3D отрисовывается под нативным Display List.

PsychoTech 25.06.2015 23:02

Цитата:

Сообщение от Zebestov (Сообщение 1184109)
Так устроен Flash.
Away3D использует Stage3D.
Stage3D отрисовывается под нативным Display List.

ну с причиной разобрались. А как обойти это? не хотелось бы
Код AS3:

all.visible = false

можно его как-то поднять выше всех насильно, не хочется прятать остальные чтобы увидеть 3д к тому же проект задумывался так чтобы 3д менялся попутно с вводом новых данных. не мешало бы это лицезреть в реальном времени а не жать кнопку "свернуть все" каждый раз.

Zebestov 25.06.2015 23:03

Можно.
Если "всех" рисовать тоже в Stage3D. Starling (+Feathers), например.

PsychoTech 25.06.2015 23:54

имхо это жесть

Zebestov 25.06.2015 23:55

Насколько мне известно, это популярная практика.

PsychoTech 26.06.2015 00:56

попахивает немножко маразмой. А кто может скинуть простенький пример для наглядности?

Zebestov 26.06.2015 01:09

Что именно на твой взгляд попахивает маразмом?
Разделение 3D и 2D составляющих отображения — это обычное дело. Рисовать и то, и другое силами GPU (в нашем случае это Stage3D) — это вообще как бы по уму. Что не так?
Пугают целых два фреймворка (или движка, не суть) в одном приложении? Ну так это всего лишь опасения, что могут возникнуть несостыковки. Ничего общего с маразмом лично я не наблюдаю.
Или ты просто хотел сэкономить силы на 2D, пользуясь привычным Display List, а тут облом? Ну, я тебя отлично понимаю. Но предложенный вариант — это не маразм, а рациональное решение, которое потребует от тебя больше усилий.
Так или иначе, нет способов буквально поменять Display List и Stage3D местами. Есть лишь идеи, при мысли о которых ты немедленно подрубишь к проекту Starling и облегченно улыбнешься :)

PsychoTech 26.06.2015 01:12

так а что с примером? хотелось бы лицезреть как оно вообще происходит. Так то я вообще думал не то чтобы с экономить, просто считаю что 2д должно оставаться таким а 3д соотвественно.

Zebestov 26.06.2015 01:16

Первая же ссылка в поисковике, например.


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

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