2011-10-04 65 views
3

我正在尝试使用Stage3D API在ActionScript 3.0中编写3D游戏。我已将playerglobal.swc复制到我的frameworks/libs/player/11.0目录中,并通过将target-player更改为11.0.0swf-version13来修改frameworks/flex-config.xml文件。Flash Player 11中的Stage3D不显示

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

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

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

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

+0

*确保你有最新的playerglobal.swc。 – Miha

+0

此外,如果您在html中查看Flash影片,则可以检查正确的wmode参数(http://kb2.adobe.com/cps/127/tn_12701.html)。 – Miha

+1

_ @ Miha_ - 谢谢。将'wmode'参数设置为'direct'解决了这个问题。 –

回答

4

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