Tengo que detectar en mi flash si el usuario cierra su navegador o va a otra página y ya no se puede acceder al flash. ¿Cómo logro eso?Reproductor flash notificado en el navegador cerrar o cambiar página (as3)
Respuesta
ExternalInterfaceUtil.addExternalEventListener ("window.onunload", handleLogout, "unloadFlex");
package
{
import flash.external.ExternalInterface;
public class ExternalInterfaceUtil
{
public static function addExternalEventListener(qualifiedEventName:String, callback:Function,callBackAlias:String):void
{
// 1. Expose the callback function via the callBackAlias
ExternalInterface.addCallback(callBackAlias, callback);
// 2. Build javascript to execute
var jsExecuteCallBack:String = "document.getElementsByName('"+ExternalInterface.objectID+"')[0]."+callBackAlias+"()";
var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){"+jsExecuteCallBack+"};}";
// 3. Execute the composed javascript to perform the binding of the external event to the specified callBack function
ExternalInterface.call(jsBindEvent);
}
}
}
No recuerdo de dónde saqué esto, pero lo he usado y funciona bastante bien. Por supuesto, no todos los navegadores van a cooperar, pero es mejor que nada ...
Puede usar una combinación de Javascript y Flash para lograr lo que busca.
Utilice Javascript para detectar cuándo el usuario navega fuera de la página. Use el evento javascript para llamar a su película Flash usando ExternalInterface. Una vez que se invoca su código, puede manejar el evento según sea necesario.
interfaz externa puedo manejar .. ¿Cómo se comprueba que en javascript? –
Javascript tiene un evento window.onunload al que puede adjuntar una función. Desafortunadamente, algunos navegadores no siempre invocarán el evento onunload cuando el usuario cierre la ventana debido al abuso del mismo en el pasado. Sé que Opera no lo sabe, no estoy seguro de los demás. – Powerlord
Lo anterior funcionó muy bien para mí con una excepción: si devuelvo nulo como cadena, no quiero que aparezca ningún mensaje arriba. Funciona para todos los navegadores excepto IE, que abre un cuadro de diálogo que dice "nulo".
que pueden ser corregidos mediante la alteración de una línea para agregar un cheque nulo:
var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){if (" + jsExecuteCallBack + ") return "+jsExecuteCallBack+"};}";
- 1. Cambiar el dispositivo de salida de audio del reproductor flash
- 2. Reproductor .wav basado en flash
- 3. HTML5 o reproductor flash para transmisión desde Amazon Cloudfront
- 4. Vsync en Flex/Flash/AS3?
- 5. ¿Enumerados en AS3/Flash/Flex?
- 6. Reproductor de mp3 incrustado basado en flash
- 7. Juego de dibujo Flash AS3
- 8. flash as3 check event listener
- 9. Flash/AS3: ExternalInterface.call() "¿Por qué no console.log?"
- 10. ¿La mejor manera de cambiar entre varias versiones del reproductor Flash para realizar pruebas más fácilmente?
- 11. ¿Se ha notificado cuando el reproductor multimedia se abre desde UIWebView?
- 12. ¿Qué es dispatchEvent en Flash AS3?
- 13. Determinar si swf está en un reproductor o modo "depurar"
- 14. Detectar navegador Cerrar en Asp.net
- 15. Control de un reproductor Flash usando JavaScript
- 16. Flash roba el foco del navegador
- 17. Cómo pasar flashvars al reproductor flash independiente
- 18. ¿Puede el reproductor flash reproducir archivos .wav desde una url?
- 19. Marco de GUI para flash (as3)
- 20. Abrir una URL desde Flash usando navigateToURL (AS3)
- 21. Selenium WebDriver cómo cerrar el navegador emergente
- 22. Extraño Flash AS3 xml Comportamiento de socket
- 23. Pruebas unitarias Código AS3 para Flash
- 24. Esperando que el reproductor flash se conecte al depurador
- 25. Enviar matriz desde Flash (AS3) a JavaScript
- 26. wav <> mp3 para Flash (AS3)
- 27. ¿Cómo incrustar un reproductor flash en una aplicación GTK?
- 28. Borrar cookies en el navegador cerrar
- 29. Método preferido para el bucle de sonido flash as3
- 30. Soundpool o reproductor multimedia?
Eso funciona fantásticamente bien. ¿Alguna idea de cómo escuchar al "usuario hizo clic en el botón OK en la ventana emergente JS" desde dentro de un programa flexible? –