0



如果我发布没有硬件加速的 Windows 投影仪 (.exe),一切正常,但如果我选择直接或 gpu 硬件加速,我根本不会显示安全面板。其他人有同样的问题,还是只有我一个?

基本上我想发布一个独立的网络摄像头游戏,但如果我尝试使用 getCamera(),用户将根本看不到安全问题,我也不会初始化摄像头。

有谁知道这个的解决方法?我很想在我的游戏中获得硬件加速。

import flash.system.Security;
import flash.system.SecurityPanel;
//import flash.media.Camera;

Security.showSettings(SecurityPanel.CAMERA);
//var camera:Camera=Camera.getCamera();
4

1 回答 1

0

我得到了这个工作,但我通过独立和“创建投影仪”菜单创建了一个投影仪,而不是通过 Flash IDE。我能够使用最新的闪光灯让面板显示出来。

编译器设置:-swf-version=16 -use-gpu=true

// 测试显示 stage3D + panel final public class Test extends Sprite {

    private var cam:Camera;
    private var video:Video = new Video();

    public function Test():void {

        var stage3D:Stage3D = stage.stage3Ds[0];
        stage3D.addEventListener(Event.CONTEXT3D_CREATE, handleContext);
        stage3D.requestContext3D();

        trace(cam.name);
    }

    /**
     *  @private
     */
    private function handleContext(e:Event):void {
        var stage3D:Stage3D     = stage.stage3Ds[0];
        var context:Context3D   = stage3D.context3D;
        context.configureBackBuffer(stage.stageWidth, stage.stageHeight, 0, true);
        context.clear(0,0,0,1);
        context.present();

        Security.showSettings(SecurityPanel.CAMERA);

        cam = Camera.getCamera();
        cam.setMode(640,360,30);
        video.attachCamera(cam);

        // change to upload via texture instead
        addChild(video);
    }

以我的经验,如果不使用特定的 gpu api,硬件加速收益非常小。以我的经验,相机反而加速了,只有特定类型的视频解压。如果您不使用 Stage3D,您可能不会获得任何可见的收益。

于 2012-06-23T18:13:21.440 回答