Vale, vamos allá con el código bien explicadito, así al menos esto dejará de ser una duda para algunos.
Recordando. Esto viene a dar solución a la siguiente necesidad. Dado un archivo "01.swf" cargamos en él, en un movieclip 'contenedor' llamado 'acá' el archivo 02.swf…después decía la usuaria que desde "02.swf" y con un botón se carga en el mismo MC (aca) el archivo 03.swf
.............| ---> MC (acá) | ---> 02.swf (*este swf tiene un botón para cargar 03.swf)
01.swf...|......................| ---> 03.swf (*este swf tiene un botón para cargar 02.swf)
Bueno, . El problema decía que se daba cuando desde 03.swf se habilita un botón, que al pulsarlo, vuelve a cargar 02.swf en el mismo sitio, pero que necesitaba que esta vez fuese en un frame diferente.
Siempre hay varias soluciones para un mismo problema, y si no recuerdo mal, yo le dí una solución mas simple y práctica a Trinidadbesa pero voy a daros la solución al exacto problema, eso si, en AS2
Para verlo mas claro, imaginemos una situación real para este problema que surgió. Imaginemos que tenemos una academia y decidimos meter una serie de cursos vía online. Para ello, en nuestra web, cuyo índex es el archivo 01.swf, cargamos una serie de información con sus fotos y demás contenidos, y a parte, tenemos un apartado (un MovieClip) donde 'insertaremos' el curso en cuestión.
Por tanto en el MC 'aca' insertamos de forma automática el archivo 02.swf el cual va contener los temas del que está compuesto el curso, imaginemos que 5 temas, y cada uno de los temas está en un frame, y donde, al final de cada tema, ponemos un botón de "hacer examen":
en frame 1: Contenidos del tema 1 (fotos + texto) y un botón de 'hacer examen' (del tema 1)
en frame 2: Contenidos del tema 2 (fotos + texto) y un botón de 'hacer exámen' (del tema 2)
en frame 3: Contenidos del tema 3 (fotos + texto) y un botón de 'hacer exámen' (del tema 3)
en frame 4: Contenidos del tema 4 (fotos + texto) y un botón de 'hacer exámen' (del tema 4)
en frame 5: Contenidos del tema 5 (fotos + texto) y un botón de 'hacer exámen' (del tema 5)
…en el archivo 03.swf es donde tenemos los diferentes exámenes y donde, tras evaluar la puntuación obtenida, si es buena, ir al tema siguiente:
en frame 1: Examen del tema 1 (campos de inserción de datos) y un botón al final de 'entregar examen'
en frame 2: Examen del tema 2 (campos de inserción de datos) y un botón al final de 'entregar examen'
en frame 3: Examen del tema 3 (campos de inserción de datos) y un botón al final de 'entregar examen'
en frame 4: Examen del tema 4 (campos de inserción de datos) y un botón al final de 'entregar examen'
en frame 5: Examen del tema 5 (campos de inserción de datos) y un botón al final de 'entregar examen'
La forma de repartir los contenidos parece ordenada, pero claro, fijémonos en la estructura propuesta:
............| Textos
............| Imagenes
01.swf |
............| ---> MC ('aca') | ---> 02.swf (*este swf tiene un botón para abrir 03.swf)
............| .......................| ---> 03.swf (*este swf tiene un botón para cargar 02.swf)
… tanto 02.swf como 03.swf se cargan en el MC 'aca' vacío y que actúa como mero 'contenedor' entonces, cuando desde el archivo 02.swf se abre el archivo 03.swf con:
Código ActionScript :
on (release) {
_root.loadMovie("03.swf", aca);
}
…. al abrir el archivo 03.swf en el mismo MC, el archivo 02.swf se 'destruye' y cuando desde el archivo 03.swf hagamos la operación inversa, ósea, abrir de nuevo 02.swf con:
Código ActionScript :
on (release) {
_root.loadMovie("02.swf", aca);
}
el archivo 03.swf desaparece también y claro, la duda de Trinidabesa era que… abro el tema1, en el frame 1 (que tiene un stop() en dicho frame) y leo lo que hay, luego pulso en el botón 'abrir examen' (abrimos 03.swf en el mismo MC 'acá') y se muestra el examen 1 que está en el frame 1 y el cual, tiene un stop(); en cada frame, igual que en el archivo 02.swf.
Ahora viene el problema, se responde al examen 1 y cuando pulsamos en el botón 'entregar examen' ¿cómo hacemos para que, si está el examen aprobado, vaya al tema 2 (frame 2) del archivo 02.swf?
A ella lo que le ocurría, es que siempre se paraba en un frame determinado y lo que queremos es controlar en qué frame preciso queremos que se abra el swf.
Vamos a ver la solución (puede haber varias, mejores o peores)
EN EL ARCHIVO 01.swf
//variable con la que voy a controlar los diferentes pasos en los que está el 'alumno'
Código ActionScript :
vetea=1;
Seleccionamos el movieclip vacío 'aca' y en acciones ponemos el código:
Código ActionScript :
onclipEvent (enterFrame){
gotoAndStop(_root.vetea);
}
Lo único que nos queda por controlar es, en las acciones del botón 'entregar examen' que hay en cada frame del archivo 03.swf, y según la puntuación obtenida en cada examen, ejecutar la siguiente orden:
**en mi caso, controlaría los puntos totales con la variable 'puntosTotales' y que determino que en un examen de 0 a 10, si es mayor o igual a 5, paso al siguiente tema y si no, entonces, se abre igualmente el archivo de los temas, pero con el mismo.Código ActionScript :
on (release) {
if (puntosTotales>=5){
_root.vetea+=1;
}
_root.loadMovie("02.swf", aca);
}
Cabe matizar que en el archivo 02.swf no hace falta hacer nada especial, sólo decirle al botón lo que ya está dicho, que se abra el archivo 03.swf en el MC 'acá' ya que por defecto y como está hecho esto, siempre se abrirá el examen correspondiente al tema abierto. (para eso, tienen que coincidir los frames tanto en el archivo 02.swf como en el 03.swf ya que de otra forma, habría que ajustarlo al caso en particular)
THAT'S ALL FOLKS!!!