Stage3D в Flash Player 11 не отображается

Я пытаюсь написать 3D-игру на ActionScript 3.0, используя API Stage3D. Я скопировал playerglobal.swc в свой каталог frameworks/libs/player/11.0 и изменил файл frameworks/flex-config.xml, заменив target-player на 11.0.0, а swf-version на 13.

Когда я компилирую файлы ActionScript 3.0 с помощью mxmlc, я устанавливаю параметры -target-player=11.0.0 и -static-link-runtime-shared-libraries=true. Теперь я не получаю ошибку во время компиляции при импорте com.adobe.utils.AGALMiniAssembler или flash.display.Stage3D, поэтому я предполагаю, что с этим нет проблем.

Я запускаю скомпилированный SWF-файл в Opera и использую последнюю версию Flash Player (версия 11.0.1.152), которая была опубликована сегодня (ура ;D). С плеером вроде проблем нет, потому что я умею играть в Zombie Tycoon. Однако, когда я проигрываю свой SWF-файл, Stage3D не отображается; но все другие экранные объекты, прикрепленные к сцене, отображаются.

Я считаю, что есть какая-то проблема с моей конфигурацией или моим кодом, но я не могу ее точно определить. Код, который я использую, был просто скопирован из Labs. @ Джем3. Я считаю, что была какая-то проблема с окном просмотра, поэтому я просто заменил stage.stage3Ds[0].viewPort=new Rectangle(0, 0, 980, 570); на stage.stage3Ds[0].x=0; stage.stage3Ds[0].y=0;. Возможно, это и есть причина проблемы.

Я искал решение по всему Интернету, но я не могу найти его. Любая помощь будет оценена. Однако обратите внимание, что я не хочу использовать такие фреймворки, как Away3D, потому что я хочу использовать низкоуровневую функциональность (я больше увлекаюсь программированием). Если вы хотите получить более подробную информацию, пожалуйста, спросите.


person Aadit M Shah    schedule 04.10.2011    source источник
comment
* Убедитесь, что у вас установлена ​​последняя версия playerglobal.swc.   -  person Miha    schedule 05.10.2011
comment
Кроме того, если вы просматриваете флэш-ролик в формате html, вы можете проверить правильность параметра wmode (kb2 .adobe.com/cps/127/tn_12701.html).   -  person Miha    schedule 05.10.2011
comment
@Miha - Спасибо. Установка параметра wmode на direct решила проблему.   -  person Aadit M Shah    schedule 06.10.2011


Ответы (1)


@Miha - Спасибо, что ответили на мой вопрос. Я установил для параметра wmode значение direct, и все заработало как часы. Очевидно, API Stage3D не работает в режимах transparent, opaque и window. Если у кого-то есть подобные проблемы, вот мой HTML-код, который решил проблему:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8"\>
    <title>Hello Stage3D!</title>
  </head>
  <body>
    <object width="800" height="600" data="HelloStage3D.swf">
      <param name="wmode" value="direct"/>
    </object>
  </body>
</html>

Чтобы использовать Stage3D API, вы должны установить для параметра wmode значение direct. Ничто другое не сработает. Строка 9 необходима.

person Aadit M Shah    schedule 06.10.2011