Insertar una película director a otra película dir

Me gustaría saber si se puede insertar una película de director a otra. Por ejemplo crear una película de 800x600 que sea el menu donde están los botones y al pinchar en cada botón llame a otras películas donde se pondrán debajo del menu. En flash se utiliza un cast vacío y se le dice mediante código que inserte otra animación en dicho cast vacío. Sabes como se hace en Director. Pásame el código y los pasos a seguir.

2 Respuestas

Respuesta
1
Director permite insertar otras de películas de Director aportando mayor flexibilidad a la hora de crear aplicaciones, con la ventaja de poder modificar las películas sin tener que importarlas de nuevo.
Primero crea la película que contiene el menú, poniendo todos los elementos que tienen que permanecer siempre visibles en canales altos. Esto es porque Director muestra encima los sprites de los canales más altos, como el menú tiene que estar siempre visible, el resto de sprites estarán en canales inferiores a los del menú.
Ahora creas una nueva película, que será la que el menú va a llamar. La guardas.
Vuelves a abrir la película principal, es decir, la del menú. En la ventana cast le das importar y seleccionas la otra película de Director. Esto te creará un miembro de tipo película.
Arrastra ese miembro nuevo al escritorio o al score. Será como cualquier otro miembro. Cuando en el menú selecciones la opción correspondiente, ejecutas una sentencia "go to" para ir al frame donde comienza el miembro de película.
Ya tienes otra película reproduciéndose a la vez que el menú. Como siempre, en el canal de script, en el último frame correspondiente a la película haces una pausa con "go to the frame". La duración del sprite es indiferente.
Por ejemplo importas la película y la colocas en el canal 2. Si la película importada tiene una imagen en el canal 5, para saber el ancho del sprite de ese bitmap no puedes usar "alert 'ancho=' & sprite(5).width" porque estas ejecutando ese código desde la película del menú y por tanto haciendo referencia al score de esa película. El canal 5 no tiene la imagen de la película importada. Tienes que ejecutar el siguiente código:
tell sprite(2) to ancho = sprite(5).width
También puedes usar:
Tell sprite(2)
ancho = sprite(5).width
end tell
En resumen. La película del menú es la principal. En ella importas el resto de películas y las colocas como si fuesen sprites. Para comunicarte con ellas usas tell.
La solución que me das esta bastante bien, pero el problema esta en que muchas películas que tengo que incluir en la principal llevan etiquetas de marca ademas de utilizar cast externos.
Y al incluirlas al principal, hace un desastre. Me pide las etiquetas que no encuentra y me inserta todos los cast externos. Ademas el fichero principal ocupara un montón, ya que no hace llamada sino lo incrusta a la original.
De todas maneras la respuesta me ha venido muy bien
Gracias.
Un saludo
Por lo que me comentas, me salte un paso importante en la explicación anterior. Cuando importas la película tienes que hacerlo seleccionando "Link to external file" porque de lo contrario te importa todos los miembros en el cast de la película principal. Ese no es el objetivo. Prueba a importal la película enlazándola al archivo externo, de esta forma sólo se te crea en el cast de la película principal un nuevo miembro. Ese nuevo miembro lo tienes que arrastrar al escenario o al score.
Respecto a los casts externos, he realizado varias pruebas y no he tenido el más mínimo problema. Asegúrate que los archivos .cst de esos casts estén en la misma carpeta que el proyector o que el archivo principal .dir.
Los marcadores tampoco hay problema, sigue las indicaciones que te propuse anteriormente. Cuando tengas un botón para saltar a un determinado marcador dentro de la película importada, usa el siguiente script:
On mouseUp me
Tell sprite(2)
Go to "marcador"
end tell
end
Cuando se pulsa sobre el botón que contiene este código, se envía la orden de marcar al sprite 2, que será el que tiene la película importada (pon el número de sprite en el que tengas ese miembro). Esto hace que no se busque el marcador en el score de la película principal sino en el score de la película situada en el canal de sprite 2. Sustituye la palabra marcador por el nombre del marcador al que quieras ir.
Gracias bubebu.
Ahora si la cosa va mejor. Lo único raro que me pasa es que en la película enlazada al original tiene un "go to the frame". Para que se pare en un frame determinado pero al importarlo al original llamémosle menu. Se salta a la torera todos los "go to the frame". Que le había puesto en la película enlazada.
Sabrías decirme porque. Y como solucionarlo.
Gracias y un saludo.
Paco
Comprueba si está activada la casilla Enable Scripts del panel de propiedades.
Selecciona la película en el cast, y en el panel de propiedades selecciona la pestaña Linked Movie. La casilla Enable Scripts debería estar seleccionada tras importar la película. En cso contrario selecciónala.
Si aun así no te funciona, prueba a poner en el canal de script de la película principal, justo en el último frame de la película importada, un script "go to the frame". Quizá el sprite de la película importada es demasiado corto, con ese script lo solucionas.
Es otro de los inconvenientes que tiene insertar una película dentro de otra, da muchos problemas con los cursores.
Prueba el siguiente script:
On mouseEnter me
Cursor 280
end
On mouseLeave me
Cursor 0
end
En este caso no uses tell, ya que el cursor es algo global que afecta a la película principal aunque se cambie desde la película insertada.
Ok. Ahora si que funciona bien. El problema estaba en que no estaba activa la opción Enable scripts.
Lo único que me falta es que los botones de la película importada en la principal, funcionan bien pero no aparece la mano cuando pasas el ratón por ellos. Es una cosa extraña, ¿sabes a que puede ser debido.?
Un saludo.
Ese script complementa al que ya tengas como behavior colocado en cada botón.
Lo que necesitas es que al colocar el cursor encima de un botón cambia a una mano. En los botones que deban actuar de esa forma tienes que añadir la línea "cursor 280" al "mouseEnter" de tu función. Además de esa línea tendrás una del estilo "go to ..." o la acción que deba realizar el botón.
Si no tienes el manejador "mouseLeave", tienes que ponerlo también en el mismo script que el manejador "mouseEnter".
Por ejemplo, en un botón que al pulsarle vaya al marcador Inicio de la aplicación, tienes que ponerle un script de tipo behavior parecido al siguiente:
On mouseEnter me
Cursor 280
Go to "Inicio"
end
On mouseLeave me
Cursor 0
end
Respuesta

Que bueno ver que todos se apoyan con las respuestas, pueden intentar ver el método utilizado en Ver dragonheart: vengeance online creo que es parecido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas