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:
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.
Espero haberte sido de ayuda.
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
- archivo1.swf
- Flash Carpeta
- 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