AS3 SecurityPanel未显示何时使用硬件加速

时间:2012-06-23 16:12:34

标签: actionscript-3 webcam


如果我发布没有硬件加速的Windows Projector(.exe),一切正常,但如果我选择直接或gpu harware加速,我将不会让安全面板显示出来。其他人有同样的问题,还是仅仅是我?

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

有没有人知道这方面的解决方法?我很乐意将硬件加速到我的游戏中。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

//测试显示stage3D +面板 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 apis,硬件加速增益非常小。相机在我的经验反而加速,只有特定类型的视频解压缩。如果你没有使用Stage3D,你可能不会获得任何可见的收益。