flex - fashion - Ejecutar un archivo SWF desde el archivo:/// sin que el usuario cambie su configuraciĆ³n de seguridad de Flash Player
flash movie player (6)
Tengo una aplicación Flex que hace una buena cantidad de tráfico de red, usa ExternalInterface para hacer algunas llamadas javascript (para SCORM), carga archivos XML, imágenes, video, audio y tiene una serie de módulos que podría cargar en algún punto...
El problema es que ahora tenemos un requisito en el que el usuario necesita ejecutar este contenido localmente en una máquina que no está conectada a Internet (lo que significa que no puede conectarse al sitio de Adobe para cambiar su configuración de seguridad). Como pueda imagine que cuando el usuario dobla los clics en la página html para lanzar esto, recibe una advertencia de seguridad de que el swf está tratando de comunicarse con otro dominio que no sea el que está dentro. No podemos envolverlo en un exe o una aplicación de AIR, así que a menos que haya alguna manera de ajustar algunas configuraciones de seguridad poco claras, es posible que tengamos una manguera. ¿Algunas ideas?
¿Intentó especificar el dominio autorizado con:
System.security.allowDomain("www.yourdomain.com");
Dudo en decir "no puedes hacerlo", pero en mi experiencia, no hay forma de hacer lo que describes. Alguien, si estoy equivocado, me encantaría saber el truco.
Perdón por no haber intentado esto para ver si funciona o no ... pero ...
La página 20 (y / o 26) de este documento puede ser de ayuda. El documento está referenciado aquí . En pocas palabras, describe directorios que contienen archivos cfg que a su vez contienen listas de ubicaciones en el disco que deben considerarse confiables. Un instalador para la aplicación sería responsable de crear archivos .cfg apropiados en la ubicación deseada (global o para el usuario que realiza la instalación).
La respuesta corta es que si su swf está compilado con use-network en true, no va a funcionar.
¿Es posible compilar una versión con use-network en falso? ¿O se está ejecutando en una Intranet que está cerrada desde Internet y aún se está comunicando con el LMS?
Lo que estás tratando de hacer es exactamente el problema resuelto por AIR. Realmente deberías probarlo, no es tan difícil de aprender. Si realmente no puedes usar AIR (no especificaste por qué, así que supongo que es solo porque no quieres tener que aprender un nuevo sistema), entonces la modificación del archivo de configuración de seguridad resolverá el problema.
Básicamente, lo que necesita hacer es crear un archivo de "confianza" en el directorio "Global FlashPlayerTrust". Esto lo puede hacer su instalador (que instala todos los archivos javascript, SWF, html, etc. en la máquina local). Debe crear el directorio si no existe. El directorio para cada sistema operativo es:
- Windows -% WINDIR% / System32 / Macromed / Flash / FlashPlayerTrust
- Mac - / Biblioteca / Application Support / Macromedia / FlashPlayerTrust
- Linux - / etc / adobe / FlashPlayerTrust
Luego, necesita crear el archivo de confianza. Puedes ponerle un nombre, así que elige un nombre único que no sea probable que entre en conflicto con otros. Algo así como CompanyName.cfg. Es un archivo de texto, con una ruta por línea. Puede confiar en un SWF a la vez o en un directorio completo. Ejemplo:
C:/Program Files/MyCompany/CoolApp
C:/Program Files/MyCompany/OtherApp/Main.swf
Para probar que está funcionando, dentro de su película flash puede verificar System.security.sandboxType
(ActionScript 1 o 2) o Security.sandboxType
(ActionScript 3). Debe tener el valor de " localTrusted
"
Es posible. Compruebe que los archivos SWF que está llamando desde el archivo SWF principal tienen habilitada o no la propiedad "Acceder solo a archivos locales".