在移動設備中,AWAY3D4.0裏對象無法遮擋,也就是後邊的對象無法被前邊的對象擋住。X Y Z軸都有這樣的問題。AWAY3D4.0無論是alpha版本還是beta版本部署在移動AIR3.3裏都有問題。當時以爲是我機器環境的問題,在網上瀏覽別人技術博客,抓了一個北京的兄弟,蟈蟈GIS,他的機器上也出現了同樣的問題。
但是在FLASH PLAYER裏和PC機的AIR上運行沒有出現這樣的問題。
最後移植官網的EXAMPLE到一個手機AIR工程裏執行,也還是出現了無法遮擋的問題。
估計是AIR3.3在移動設備上運行3D加速的一個BUG。
具體毛病我提交到了AWAY3D官網論壇的BUG討論區,不過真的和AWAY3D沒什麼關係
http://away3d.com/forum/viewthread/2498/
我想是不是***-app.xml配置文件裏的標籤depthAndStencil沒有改成true的原因,在這個版本里改成true的話,編譯器會報錯。
在快要絕望的時候,我咬牙將AIR SDK版本從3.3(beta版本)回退到了3.2。同時,把***-app.xml配置文件裏的標籤depthAndStencil改成了true。於是再就沒有出現之前的問題了。只是在PC機上的模擬器上預覽的時候,屏幕稍微有點偏移,只顯示了一半,但是部署到ipad上去是沒有問題的,這個問題得到了解決。
AIR3.2
-swf-version=13
<renderMode>direct</renderMode>
<depthAndStencil>true</depthAndStencil>
View3D.as類文件不改動方法保持原有的代碼:
protected function updateBackBuffer() : void
{
// _stage3DProxy.configureBackBuffer(_width, _height, _antiAlias, false);
_stage3DProxy.configureBackBuffer(_width, _height, _antiAlias, true);//原始
_backBufferInvalid = false;
}
在上邊配置的基礎上,把SDK改成AIR3.3,也是可以運行的,並且不會出現PC機模擬器上調試有問題的情況。
總結:away3d開發移動設備應用,必須-swf-version=13