2012-03-07 3 views
0

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

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

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

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

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

+1

Просто сообщите, что у вас есть ошибки, которые не помогут решить вашу проблему. обновите свой вопрос и добавьте сведения о кодах ошибок выполнения и о том, когда/как это происходит. Также приветствуются любые строки кода. –

+0

Какое фактическое сообщение об ошибке вы получаете? –

ответ

1

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

1

Вы можете просмотреть источник скворческой библиотеки в своем репозитории 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.