privacidad configurar configuración configuracion carpeta aparece almacenamiento administrador flash actionscript-3 security events

configurar - Panel de configuración de seguridad de Flash: ¿está escuchando un evento cercano?



panel configuración global de almacenamiento no aparece (4)

Me tropecé con esto al intentar buscar una solución.

Informe de error de Flash Player CON SOLICITUD

No he probado la solución, ¿pero debería funcionar? Buena suerte.

Editar :

Para cualquiera que no pueda / no quiera acceder al rastreador de errores de Adobe, aquí está la solución original publicada por Philippe Piernot:

var closed:Boolean = true; var dummy:BitmapData; dummy = new BitmapData(1, 1); try { // Try to capture the stage: triggers a Security error when the settings dialog box is open dummy.draw(stage); } catch (error:Error) { closed = false; } dummy.dispose(); dummy = null;

Cuando usa Flash con un micrófono o cámara, se le solicita al usuario que permita el acceso a esos dispositivos. Esto se hace a través del panel de configuración de seguridad incorporado.

¿Hay alguna manera de recibir notificaciones de un controlador de eventos cuando el usuario hace clic en el botón de cerrar del panel de configuración de seguridad? Esto no parece ser posible ...

Para el micrófono, es posible recibir un evento de estado cuando el usuario cambia la configuración en el panel de seguridad, pero este evento se desencadena mientras el usuario todavía tiene el panel abierto.


llame al panel de seguridad (como ns.addStream (mic))

// WHEN PRIVACY PANEL IS ON MOUSE EVENTS ARE DISABLED stage.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); function onMouseOver(e:Event):void { trace("privacy panel closed"); //REMOVE THE LISTENER ON FIRST TIME stage.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); //doStuff }


El panel se representa en secreto usando el propio motor de visualización de Flash. Para hacer esto, agregan secretamente el panel a la lista de visualización del escenario.

Puede detectar esto comprobando si stage.getChildAt (stage.numChildren-1) es nulo. Ese es un escenario imposible que revela la existencia del panel.


He resuelto este problema de la siguiente manera:

private function showPrivacyDialog():void { var spr:Sprite = new Sprite(); stage.focus = spr; spr.addEventListener( FocusEvent.FOCUS_OUT, handleFocusEvent ); spr.addEventListener( FocusEvent.FOCUS_IN, handleFocusEvent ); Security.showSettings( SecurityPanel.PRIVACY ); } private function handleFocusEvent( event:Event ):void { event.target.removeEventListener( event.type, handleFocusEvent ); const closed:Boolean = (event.type == FocusEvent.FOCUS_IN); trace( "Security Panel just", closed ? "closed!" : "shown!" ); if (closed) { stage.focus = null; // or it can be restored to the previous value } }

Verifique mi clase de utilidad completa SecurityPanelUtil que muestra el cuadro de diálogo de configuración y luego acéptelo y notifíquelo mediante devoluciones de llamada inmediatamente.