В гостях3D со Старлинг

У меня есть приложение Away3D 4.0 с пользовательским интерфейсом, созданным в старом API флэш-памяти, которое может быть только частично ускорено аппаратно.

На ПК работает нормально, но частота кадров пользовательского интерфейса на мобильных устройствах слишком низкая, поэтому я портирую его на Starling.

Поэтому я попытался использовать и Away3D, и Starling, но они не работают вместе (он компилируется, но есть ошибки во время выполнения). Что мне нужно изменить? В частности или вообще, возможно, для другой 2D-библиотеки, такой как ND2D. Существуют ли библиотеки, которые поддерживают это из коробки?

Редактировать: сначала я добавляю контент Away3D, и ошибок нет. При инициализации Starling ошибка находится в Starling.as (класс библиотеки) в строке 249. Я также пробовал это как кто-то предложил, но это не имело никакого значения (также информации 3 месяца и библиотеки обновляются).

Редактировать 2: ошибка была вызвана другим значением enableDepthAndStencil, как в Away3D, которое жестко закодировано в Sparling как false, потому что оно на самом деле не нужно. Что ж, после «исправления» этого нет ошибок времени выполнения: отображается 3D-контент Away, но затем я добавляю Starling, и холст становится черным. Думаю, мне придется погрузиться в исходники Away3D.


person Miha    schedule 07.03.2012    source источник
comment
Простое сообщение об ошибках не решит вашу проблему. обновите свой вопрос и добавьте подробную информацию о кодах ошибок времени выполнения и о том, когда и как это происходит. Также приветствуются любые строки кода.   -  person Adrian Pirvulescu    schedule 07.03.2012
comment
Каково фактическое сообщение об ошибке, которое вы получаете?   -  person Wesley Petrowski    schedule 09.03.2012


Ответы (2)


Вы можете просмотреть исходный код библиотеки starling в их репозитории на github. Вот ссылка на файл Starling.as> https://github.com/PrimaryFeather/Starling-Framework/blob/master/starling/src/starling/core/Starling.as

метод Старлинга, который выдает ошибку, таков:

        private function updateViewPort():void
        {
            if (mContext)
                mContext.configureBackBuffer(mViewPort.width, mViewPort.height, mAntiAliasing, false);

            mStage3D.x = mViewPort.x;
            mStage3D.y = mViewPort.y;
        }

Судя по всему, вы сможете удалить этот код для мобильных устройств, поскольку ваше использование не сможет изменить размер области просмотра. Для этого скачайте библиотеку из репозитория github, вместо того, чтобы использовать swc на сайте starling. https://github.com/PrimaryFeather/Starling-Framework Затем вы можете настроить сборку скворца для совместимость с Away3D.

person Plastic Sturgeon    schedule 10.03.2012

Я заработал, следуя инструкциям в этом комментарии и тот, что после (дополнительно нужно было только изменить enableDepthAndStencil на true в Starling.as в updateViewPort()).

person Miha    schedule 16.04.2012