[英]Away3D Context3D not available
我正在使用Away3D檢查Flash的3D功能,我在這里遵循教程。 我遇到了一個重大問題。 每次我在瀏覽器中運行我的項目時,都會收到此錯誤:
錯誤#2044:未處理的ErrorEvent: text =錯誤#3702:Context3D不可用。
我無法看到此錯誤的來源,但它發生在我的構造函數結束之后和ENTER_FRAME
處理程序啟動之前。
我的代碼是這樣的:
package {
import away3d.containers.View3D;
import away3d.entities.Mesh;
import away3d.materials.ColorMaterial;
import away3d.primitives.SphereGeometry;
import flash.display.Sprite;
import flash.events.Event;
[SWF(backgroundColor="#000000", frameRate="60", width="1024", height="768")]
public class TestAway extends Sprite {
private var view:View3D;
public function TestAway() {
view=new View3D();
addChild(view);
var sphereGeometry:SphereGeometry=new SphereGeometry(350);
var sphereMaterial:ColorMaterial=new ColorMaterial(0xff0000);
var mesh:Mesh=new Mesh(sphereGeometry, sphereMaterial);
view.scene.addChild(mesh);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void {
view.render();
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
}
現在奇怪的是,當我在瀏覽器上運行它(FP 11.2)時,它不起作用(給出錯誤),但我可以完美地從桌面運行swf。
此外,教程頁面上的示例文件運行完美。 缺少什么設置,我該如何解決?
好吧,您似乎需要將wmode
設置為direct
使用3D API。
雖然我已經看到了這些信息,但是html包裝器需要在3個位置進行修改才能在所有配置上工作:
(1)在javascript for swfObject
params.wmode = "direct";
(2)在<object>
標簽中
<param name="wmode" value="direct" />
(3)在IE的<object>
標簽中
<param name="wmode" value="direct" />
要進一步擴展有用的提示,如果您嘗試在新的NativeWindow中打開使用Context3D的應用程序,則需要確保在NativeWindowInitOptions中指定了傳遞給NativeWindow的renderMode。 創建本機窗口后,渲染模式無法更改。
// New window.
options = new NativeWindowInitOptions();
options.renderMode = "direct";
options.transparent = true;
options.systemChrome = NativeWindowSystemChrome.NONE;
nativeWindow = new NativeWindow( options );
我在這里發帖,希望能幫助任何有同樣問題的人,但是要導出到AIR。
編輯app descriptor.xml並將rendermode的值更改為:
<renderMode>direct</renderMode>
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.