Comunidad de diseño web y desarrollo en internet online

Problamas para Cargar múltiples SWF externos dentro de SWF Principal

Citar            
MensajeEscrito el 01 Dic 2014 04:15 pm
Hola a todos/as;

Soy nueva en esto, estoy con un proyecto donde necesito Cargar múltiples archivos SWF externos dentro de un SWF principal. Debido a que el archivo me pesa bastante, he probado al cargarlos uno a uno, pero hay ocasiones en las que no me muestra varios archivos, por lo que me veo en la obligacion de cargarlos todos a la vez, mediante un Array, y hay viene mi problema, lo he probado de mil maneras diferentes, he probado varios codigos y visto varios tutoriales, pero no consigo adaptarlo a lo que necesito. Alguien puede ayudarme??

Tengo varios SWF, cada uno contiene un boton, que son: "bPrincipiante", "bAvanzado", "bExperto", "bMenu", "fondo_play"
Cada SWF es cargado mediante este codigo. Y necesito que me cargue todas las imagenes a la vez.

Código ActionScript :

///////////////////Carga bMenu //////////////////

var bMenu:Loader = new Loader();
configureMenu(bMenu.contentLoaderInfo);

bMenu.load(new URLRequest("diseño/swf/bMenu.swf"));

function configureMenu(dispatcher:IEventDispatcher):void {
   dispatcher.addEventListener(Event.COMPLETE, completeMenu);
   dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusMenu);
   dispatcher.addEventListener(Event.INIT, initMenu);
   dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorMenu);
   dispatcher.addEventListener(Event.OPEN, openMenu);
   dispatcher.addEventListener(ProgressEvent.PROGRESS, progressMenu);
   dispatcher.addEventListener(Event.UNLOAD, unLoadMenu);
}

function completeMenu(event:Event):void {
   
   addChild(bMenu);
   removeEventListener(Event.COMPLETE, completeMenu);
   removeEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusMenu);
   removeEventListener(Event.INIT, initMenu);
   removeEventListener(IOErrorEvent.IO_ERROR, ioErrorMenu);
   removeEventListener(Event.OPEN, openMenu);
   removeEventListener(ProgressEvent.PROGRESS, progressMenu);
   removeEventListener(Event.UNLOAD, unLoadMenu);
   trace("completeMenu: " + event);
}

function httpStatusMenu(event:HTTPStatusEvent):void {
   trace("httpStatusMenu: " + event);
}

function initMenu(event:Event):void {
   trace("initMenu: " + event);
}

function ioErrorMenu(event:IOErrorEvent):void {
   trace("ioErrorMenu: " + event);
}

function openMenu(event:Event):void {
   trace("openMenu: " + event);
}

function progressMenu(event:ProgressEvent):void {
   trace("progressMenu: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}

function unLoadMenu(event:Event):void {
   trace("unLoadMenu: " + event);
}

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2014 12:59 pm
No entiendo el problema ... ¿estas esperando a que todo se cargue?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Dic 2014 01:50 pm
Intente hacer un array para que todas las imagenes me cargaran a la vez, pero m daba muchos errores, por lo que decidi cargarlas una a una, el problema que tengo es que en muchas ocasiones me deja algunos swf sin cargar.

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2014 02:07 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Dic 2014 12:13 am
Si, todas los swf son cargados de la misma manera, y creo que ese es el problema, cada uno tiene un peso distinto y a veces cuando arranca la app, muchos swf no me cargan, por lo que muchos de los botones no los añade al escenario. No, la clase BulkLoader no la he probado, todavia no he llegado a ella, pero ya me la he bajado, he encontrado varios tutoriales por internet, por lo que la probare esta noche a ver si tengo suerte y consigo que funcione como necesito. Muchisimas gracias por todo, saludos

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Dic 2014 01:00 am
llevo varios dias probandolo, pero me da 42 errores en la sintaxis y no hay manera de conseguir que esto funcione.

Código ActionScript :

stop();

//PROGRAMACIÓN DEL BOTON ARRANQUE
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Sprite;
import flash.events.*;
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import flash.system.JPEGLoaderContext;

var loader:BulkLoader = new BulkLoader(“mainLoader”);
/////////////////////  Cargar diseño  ///////////////////////////////

loader.add(“diseño/swf/botonCreditos.swf”, {id:”botonCreditos”});
loader.add(“diseño/swf/botonPlay.swf″, {id: “botonPlay”});
loader.add(“diseño/imagen/menu_fondo.png″, {id: “fotoFondo”});

// para la carga de todos los archivos
loader.addEventListener(BulkLoader.COMPLETE, onLoaded);
loader.addEventListener(BulkLoader.PROGRESS, onProgress);
loader.addEventListener(BulkLoader.ERROR, onError);
// para la carga de uno de los elementos
loader.get(“botonCreditos”).addEventListener(Event.COMPLETE,onBgLoaded);
loader.get(“botonCreditos”).addEventListener(Event.PROGRESS,onBgProgress);
loader.get(“botonCreditos”).addEventListener(Event.ERROR,onBgError);
////////////////
loader.get(“botonPlay”).addEventListener(Event.COMPLETE,onBgLoaded);
loader.get(“botonPlay”).addEventListener(Event.PROGRESS,onBgProgress);
loader.get(“botonPlay”).addEventListener(Event.ERROR,onBgError);
/////////////////
loader.get(“fotoFondo”).addEventListener(Event.COMPLETE,onBgLoaded);
loader.get(“fotoFondo”).addEventListener(Event.PROGRESS,onBgProgress);
loader.get(“fotoFondo”).addEventListener(Event.ERROR,onBgError);


/////Luego iniciamos la carga utilizando el método start.

loader.start();
////////////////
function onLoaded(evt:Event) {
// extraemos la imagen
var bCreditos:MovieClip = loader.getMovieClip(“botonCreditos”);
addChild(bCreditos);
// extraemos el sonido
var bPlay:MovieClip = loader.getMovieClip(“botonPlay”);
addChild(bPlay);
var fondo:Bitmap = loader.getBitmap(“imagenFondo”);
addChild(fondo);

}

/////////////////////

function onAllItemsProgress(evt:BulkProgressEvent) {
trace(evt.bytesLoaded + ” – ” + evt.bytesTotal);
}
   removeChild(bPlay);
   removeChild(bCreditos);
   removeChild(fondo);

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Dic 2014 12:46 pm
Empezá reemplazando todas las comillas por comillas simples, es decir en vez de ", usa ' ... es lo mismo, pero copypasteando tu code me salen todas las comillas oblicuas, que corresponden a los 42 errores

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Dic 2014 04:46 pm
Si, era ese el fallo. Ya funciona ok, muchisimas gracias por todo. Saludos

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Dic 2014 02:27 pm
Estoy empezando a pensar que soy un poco desastre. Los SWF me cargan perfectamente, pero ahora me encuentro con el problema de que cuando pulso el boton "bPlay" para cambiar de escena, me da este error.(Escena 1, Capa 'Capa 1', Fotograma 1, Línea 64 1119: Acceso a una propiedad bPlay posiblemente no definida mediante una referencia con tipo estático br.com.stimuli.loading:BulkLoader). Alguien puede ayudarme???

Código ActionScript :

stop();

import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Sprite;
import flash.events.*;
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import flash.system.JPEGLoaderContext;

var loader:BulkLoader = new BulkLoader('mainLoader');
/////////////////////  Cargar diseño  ///////////////////////////////
loader.add('diseño/swf/botonCreditos.swf', {id:'botonCreditos'});
loader.add('diseño/swf/botonPlay.swf', {id: 'botonPlay'});
loader.add('diseño/imagen/menu_fondo.png', {id: 'fotoFondo'});

loader.start();

loader.addEventListener(BulkLoader.COMPLETE, onLoaded);
loader.addEventListener(BulkLoader.PROGRESS, onProgress);

function onLoaded(evt:Event) {
///////////////////////////////////////
var fondo:Bitmap = loader.getBitmap('fotoFondo');
addChild(fondo);

var bCreditos:MovieClip = loader.getMovieClip('botonCreditos');
addChild(bCreditos);

var bPlay:MovieClip = loader.getMovieClip('botonPlay');
addChild(bPlay);

}

function onProgress(evt:BulkProgressEvent) {
trace(evt.bytesLoaded + ' – ' + evt.bytesTotal);
}
/////////////////////////////////////////////////////////////////////
function fplay($event: MouseEvent):void
{
   var cargador = new Loader();
   cargador.load(new URLRequest("Play.swf"));
   addChild(cargador);
   
}

bPlay.addEventListener(MouseEvent.CLICK,fplay);

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Dic 2014 05:19 pm
Si es esta la linea

var bPlay:MovieClip = loader.getMovieClip('botonPlay');

Posiblemente sea algo que BulkLoader no ha cargado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Dic 2014 07:40 pm
Vale, Cargarlo si lo carga, Yo creo que el problema es que la llamada no la hago correctamente. El boton (bPlay) esta en un SWF externo, y ese boton, tiene una funcion asociada para que si se pulsa cambie a la escena siguiente, La carga de los SWF segui tu consejo y las hice mediante BulkLoader, me carga todo correctamente, pero cuando asocio el boton a un addEventListener, me dice que no esta bien definido. La programacion del boton esta en la linia de tiempo en el SWF principal. pero no se llamarle para que funcione. Voy ha hacer la pregunta tonta, hay alguna manera de hacerlo???

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2014 11:46 am
Hasta que la peli no ha sido totalmente cargada y el frame donde está el botón es visible, no puedes accederlo. Mira que la peli a la que quieres acceder esta totalmente cargada y el boton visible. Luego mira que la ruta al botón sea la correcta, si haces

bPlay.addEventListener

Asumes que el botón está en la línea de tiempo en donde pusiste esa sentencia

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Dic 2014 02:06 pm
Para ahorrar memoria, todos los botones estan en un SWF externo y los he cargado al SWF principal mediante BulkLoader, cargarlo los carga correctamente, solo que me dice que no esta definido, copio:
Escena 1, Capa 'Capa 1', Fotograma 1, Línea 47 1120: Acceso a una propiedad bPlay no definida.
Escena 1, Capa 'Capa 1', Fotograma 1, Línea 58 1120: Acceso a una propiedad bCreditos no definida.

/////////////////////////////////

Este es mi codigo:

stop();

//PROGRAMACIÓN DEL BOTON ARRANQUE
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Sprite;
import flash.events.*;
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import flash.system.JPEGLoaderContext;

var loader:BulkLoader = new BulkLoader('mainLoader');
///////////////////// Cargar diseño ///////////////////////////////
loader.add('diseño/swf/botonCreditos.swf', {id:'botonCreditos'});
loader.add('diseño/swf/botonPlay.swf', {id: 'botonPlay'});
loader.add('diseño/imagen/menu_fondo.png', {id: 'fotoFondo'});

loader.start();

loader.addEventListener(BulkLoader.COMPLETE, onLoaded);
loader.addEventListener(BulkLoader.PROGRESS, onProgress);

function onLoaded(evt:Event) {

var fondo:Bitmap = loader.getBitmap('fotoFondo');
addChild(fondo);
var bCreditos:MovieClip = loader.getMovieClip('botonCreditos');
addChild(bCreditos);
var bPlay:MovieClip = loader.getMovieClip('botonPlay');
addChild(bPlay);

}

function onProgress(evt:BulkProgressEvent) {
trace(evt.bytesLoaded + ' – ' + evt.bytesTotal);
}
//////////////////Play/////////////
function fplay($event: MouseEvent):void
{
var cargador = new Loader();
cargador.load(new URLRequest("Play.swf"));
addChild(cargador);
}

bPlay.addEventListener(MouseEvent.CLICK,fplay);

////////////////creditos ///////////////

function fcreditos($event: MouseEvent):void
{
//FUNCIONALIDAD DEL BOTÓN
var cargador = new Loader();
cargador.load(new URLRequest("Creditos.swf"));

}
bCreditos.addEventListener(MouseEvent.CLICK, fcreditos);

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2014 02:10 pm
Si elimino la funcion de cada boton, me carga todo correctamente. Por lo que creo que el problema lo tengo en hacer la llama. Perdona pero soy nueva en esto y estoy un poco verde todavia. Muchas gracias

[SWF] Acertados.swf - 53827 bytes tras la descompresión
0 – 0
23349 – 0
[SWF] dise%C3%B1o/swf/botonCreditos.swf - 24563 bytes tras la descompresión
23349 – 0
45991 – 0
[SWF] dise%C3%B1o/swf/botonPlay.swf - 23878 bytes tras la descompresión
45991 – 202116
111527 – 202116
177063 – 202116
202116 – 202116
202116 – 202116
[UnloadSWF] Acertados.swf
Prueba de película finalizada.

Por gainfa

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2014 04:03 pm
Poner el control de botones que no se han cargado te dará siempre error de compilación, no los cargues externamente o pon el código correspondiente en la peli que cargas.

Jorge

PD En realidad hay un truco que es la notación de array, pero no es considerada buena practica

(this['bPlay'] as Button).addEventListener(...)

Esto te evita el error de compilación, aunque si se ejecuta y no existe tal boton para a error runtime

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Dic 2014 06:45 pm
Ok, entonces mejor no los cargare externamente. Muchisismas gracias por todo, saludos

Por gainfa

11 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.