Me gustaría cargar el archivo SWF antes de mostrárselo al usuario.preload swf con jquery/JS
SWF son dinámicos y no tengo los archivos FLA.
Me encantaría hacerlo usando Javascript o jquery si es posible.
Me gustaría cargar el archivo SWF antes de mostrárselo al usuario.preload swf con jquery/JS
SWF son dinámicos y no tengo los archivos FLA.
Me encantaría hacerlo usando Javascript o jquery si es posible.
¿Puede precargar toda la página? Si es así aquí es una idea con jQuery:
la demostración se ve genial. Pero no puedo precargar toda la página. Probablemente usaría tu queryLoader en otros proyectos. :) – keithics
¿Puede encerrar el Flash en un IFRAME y precargarlo? –
personalmente creo que lo mejor es usar un gestor educado basado en Flash ya que esto puede ser tan poco como 5 kb. El código para ello no tiene que ser tan difícil, algo a lo largo de las líneas de:
package
{
import com.firestartermedia.lib.as3.utils.DisplayObjectUtil;
import flash.display.Sprite;
import flash.events.Event;
[SWF(backgroundColor=0xFFFFFF, frameRate=30, height=400, width=600)]
public class AppLoader extends Sprite
{
public function AppLoader()
{
loaderInfo.addEventListener(Event.INIT, handleInit);
}
private function handleInit(e:Event):void
{
loaderInfo.removeEventListener(Event.INIT, handleInit);
DisplayObjectUtil.loadMovie('App.swf', null, handleComplete);
}
private function handleComplete(e:Event):void
{
removeChild(loader);
addChild(e.target.content);
}
}
}
Este utiliza el DisplayObjectUtil disponible en GitHub: https://github.com/ahmednuaman/as3
No sé si todavía está buscando para respuestas, pero aquí está.
A continuación, en la parte superior de la página, o donde sea que hagas tus cosas onload, hacer esto:
$(document).load('/path/to/your.swf', function() {
$('#feature').slideDown(600);
$('#loader').slideUp(300);
});
Y ahí lo tienen. En la carga interior, puede colocar uno de esos pequeños y felices gráficos giratorios. Estoy seguro de que hay cosas más sofisticadas que puedes hacer con las devoluciones de llamadas, pero esto hará el trabajo de precargar.
Disfrútalo.
Tenga una mirada en swfjsPreLoader:
Este preloader acepta una gran variedad de activos (JPG, GIF, PNG, SWF) que le gustaría precarga. Internamente creará una aplicación flash que realiza la precarga. Podría definir varios manejadores de devolución de llamada. Por lo tanto, JavaScript se conoce cuando se cargan todos los activos o se carga cada uno de los activos , incluidos los archivos SWF.
Primero puede cargar el archivo swf a través de ajax y luego agregar el objeto a dom.
De esta forma, el navegador usará caché, el swf se recargará desde el caché y está listo de inmediato.
Sigue una muestra de lo que estoy diciendo (No puedo darte una muestra de violín porque necesitas un swf local para que se cargue ajax).
swfobject se puede utilizar en la función "loadObject" para una mejor configuración del objeto swf.
"mySwfFunction" se invoca después de que se carga swf. Se puede quitar si no es necesario.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Swf demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script>
<style type='text/css'>
</style>
<script type='text/javascript'>
$(window).load(function() {
var loader = new
function() {
var loadObject = function ($el, src, callback, width, height) {
var d = document;
var s = 'object';
var obj = d.createElement(s);
obj.type = 'application/x-shockwave-flash';
if(width){
obj.width = width.toString() + 'px';
}
obj.name = 'plugin';
if(height){
obj.height = height.toString() + 'px';
}
obj.data = src;
$el[0].appendChild(obj);
};
this.loadSwf = function ($el, src, callback, width, height) {
$.ajax({
url: src,
success: function (data) {
loadObject($el, src, callback, width, height);
if(callback) callback();
},
error: function (xhr) {
//your error code
}
});
};
}();
var mySwfCallback = function() {
$('#mySwf').show();
}
var $el = $('#mySwf');
var src = 'your_file_url.swf';
loader.loadSwf($el, src, mySwfCallback, 300, 300);
});
</script>
</head>
<by>
<div id='mySwf' style='display:none;' >
</div>
</body>
</html>
Utilice otro swf con preloader.Mire aquí: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7de1.html
¿Podría cargar el archivo SWF en su propio cargador Flash que se encargará de precargar y mostrarlo solo una vez que esté listo? La secuencia de comandos de Flash sería fácil, puedo ayudar si lo desea. –