3

我正在尝试使用 Stage3D API 在 ActionScript 3.0 中编写 3D 游戏。我已经playerglobal.swc在我的frameworks/libs/player/11.0目录中复制了 ,并frameworks/flex-config.xml通过更改target-playerto11.0.0swf-versionto 来修改文件13

当我编译我的 ActionScript 3.0 文件时,mxmlc我设置了选项-target-player=11.0.0-static-link-runtime-shared-libraries=true. 现在,我在导入时在编译时没有收到错误,com.adobe.utils.AGALMiniAssembler所以flash.display.Stage3D我认为这没有问题。

我在 Opera 中运行编译后的 SWF 文件,我使用的是今天公开发布的最新 Flash Player(版本 11.0.1.152)(干杯;D)。播放器似乎没有问题,因为我可以玩僵尸大亨。但是,当我播放我的 SWF 文件时,Stage3D 不显示;但附加到舞台的所有其他显示对象都会显示。

我相信我的配置或代码存在问题,但我无法确定它。我使用的代码只是从Labs @ Jam3复制而来。我认为视口有问题,所以我简单地替换stage.stage3Ds[0].viewPort=new Rectangle(0, 0, 980, 570);stage.stage3Ds[0].x=0; stage.stage3Ds[0].y=0;. 也许,这就是问题的原因。

我一直在网上寻找解决方案,但我似乎无法找到它。任何帮助将不胜感激。但是请注意,我不希望使用像 Away3D 这样的框架,因为我希望使用低级功能(我更喜欢编程)。如果您想了解更多详细信息,请询问。

4

1 回答 1

4

@Miha - 谢谢你回答我的问题。我将wmode参数设置为direct,它就像一个魅力。transparent显然,Stage3D API 在、opaquewindow模式下不起作用。如果有人遇到类似的问题,这是我解决问题的 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 行是必要的。

于 2011-10-06T04:21:57.737 回答