Away3D со Старлингом - PullRequest
       30

Away3D со Старлингом

0 голосов
/ 07 марта 2012

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 16 апреля 2012

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

1 голос
/ 10 марта 2012

Вы можете просмотреть исходную библиотеку в своем репозитории 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 на скромном сайте. https://github.com/PrimaryFeather/Starling-Framework Затем вы можете настроить свою первоначальную сборку для совместимости с Away3D.

...