¡Hola a todos!

Estoy haciendo un catalogo interactivo en CD con flash. Por comodidad he repartido las diferentes aéreas del catalogo en diferentes archivos de flash y cada uno tiene un stop al principio.

En un principio, no sabia como hacer para que cargara un archivo externo de flash y fuera a un fotograma concreto, pero gracias a un compañero de forosdelweb, consiguió que funcionara.

Bandit escribió:

Hola Nateskin:
Te sugiero que lo cargues en un MC vacío, de ese modo lo puedes controlar mejor.
Comúnmente se cae en un error al querer cargar una película e ir a un fotograma determinado con éste código:

Código :

on(release){
mc_vacio.loadMovie("nombre.swf");
gotoAndPlay(numero del frame);
}}

el código gotoAndPlay(número del frame), se activa antes de que se cargue la película por lo tanto no funciona, se tiene que hacer una precarga simple colocando el código así:
En éste ejemplo creamos el MC vacío.

Código :

on(release){
clip_mc = this.createEmptyMovieClip("contenedor", 1);
clip_mc.loadMovie("peli2.swf");
this.onEnterFrame = function() {
   if (clip_mc.getBytesLoaded() != 0 && clip_mc.getBytesLoaded() == clip_mc.getBytesTotal()) {
      trace("cargo");
      clip_mc.gotoAndPlay(5);//aquí va el número del frame dode se quier[*] e ir
      delete this.onEnterFrame;
   }
};
}

Espero haberte sido de ayuda.


Y me fue de gran ayuda. El caso es que, me surje lo siguiente:

Cuando empecé a hacer las pruebas, vi que las animaciones se iban haciendo mas lentas, y investigando mas, acabe abriendo el administrador de tareas y para sorpresa mia, el flash iba aumentando la ram cada vez.

Despues de contaros mi vida y para que os hagais una idea, esta es la estructura que estoy siguiendo:


  • Archivos Carpeta

    • Flash Carpeta

      • archivo1.swf
      • archivo2.swf


  • principal.swf



En el archivo principal.swf, en un fotograma vacio, añadíe el codigo que el compañero Bandit me proporcionó, obviamente eliminando on(release):

Código :

clip_mc = this.createEmptyMovieClip("contenedor", 1);
clip_mc.loadMovie("peli2.swf");
this.onEnterFrame = function() {
   if (clip_mc.getBytesLoaded() != 0 && clip_mc.getBytesLoaded() == clip_mc.getBytesTotal()) {
      trace("cargo");
      clip_mc.gotoAndPlay(5);//aquí va el número del frame dode se quier[*] e ir
      delete this.onEnterFrame;
   }
};


Los archivos archivo1.swf y archivo2.swf que estan dentro de la subcarpeta Flash, tienen varios enlaces con el mismo codigo, para que archivo1.swf cargue archivo2.swf y vicebersa . Yo entendi, que como estaba en el nivel 1, automaticamente sustitua el nivel con el nuevo archivo... pero no es asi.

¿Que debo de hacer para que no se vaya cargando mas y mas la memoria ram?

P.P.D: Siento si os parece la biblia en verso, pero me gusta dejar todo comentado para que no haya confusión alguna.
P.D: Uso ActionScript 2