我得到了这个工作,但我通过独立和“创建投影仪”菜单创建了一个投影仪,而不是通过 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,您可能不会获得任何可见的收益。