Movie in a Window
Otra carateristica interesante de Director es el trabajo con ventanas independientes y las posibilidades de compartir datos entre ellas. Basicamente trabajar con MIAW (Movie in a Window), es crear una ventana y asignarle a esta ventana una pelicula de Director. De este modo se puede tener una pelicula principal y abrir en cualquier momento nuevas ventanas que actuen como selectores o barras de herramientes, etc. Para esto necesitamos una pelicula principal y una serie de pelicuals que conformar·n cada una su ventana independiente en su momento. Estas peliculas secundarias pueden estar importadas en la misma ventana cast, y por lo tanto acopladas al proyector luego, o haber sido incluidas en el proceso de crear el proyector, asi como simplemente pueden ser archivos externos en formato: DIR, DCR, DXR, etc.. colocados en el mismo directorio del proyector.
Para abrir una ventana el script b·sico de Lingo es:
open window "miPeli.dir"
Con este comando b·sico se nos abrir· una nueva ventana flotante del tamaÒo de la pelicula que contiene y que funciona por si misma. Para cerrar esta ventana desde Lingo el script ser·:
forget window "miPeli.dir"
Con esto tenemos el trabajo m·s b·sico que podemos realizar con ventanas en Director, pero por supuesto hay muchisimo m·s.
Podemos asignar un nombre de archivo diferente a la ventana en cualquier momento con el script:
set the filename of window "miPeli" to "miPeli2.dir"
Podemos situar exactamente la ventana en la pantalla con el metodo rect(arribaX, arribaY, abajoX, abajoY):
set the rect of window "miPeli" to rect(10,10,150,100)
Asimismo podemos cambiar el tipo de ventana (su estilo) utilizando el mÈtodo windowType:
Por ejemplo:
set the windowType of window "miPeli" to 0 -- Ventana normal.
set the windowType of window "miPeli" to 1 -- Ventana de alerta.
set the windowType of window "miPeli" to 2 -- Rect·ngulo simple.
set the windowType of window "miPeli" to 3 -- Rect·ngulo con sombra.
set the windowType of window "miPeli" to 4 -- Ventana sin botones maximizar o minimizar.
set the windowType of window "miPeli" to 8 -- Ventana normal con scroll.
set the windowType of window "miPeli" to 12 -- Ventana normal con scroll sin botones maximizar o minimizar.
set the windowType of window "miPeli" to 16 -- Ventana con redondeada.
set the windowType of window "miPeli" to 49 -- Ventana de tipo paleta flotante.
Y tambiÈn por supuesto podemos cambiar su tÌtulo en cualquier momento:
set the title of window "miPeli" to "Hola soy una MIAW"
Intercambiar datos entre ventanas:
Este es sin duda el elemento m·s interesante de la programaciÛn con ventanas m™ltiples en Director.
Para dirigir nuestros script de Lingo a una ventana en concreto utilizamos en comando tell:
tell window "miPeli"
set the puppet of sprite 3 to true
set the locH of sprite 3 to x
if (field "mio" = EMPTY) then
alert "El campo est· vacÌo"
end if
end tell

Todo el script encerando entre "tell" y "end tell" se refiere a una ventana en concreto y por consiguiente actua sobre su pelicula exclusivamente. De igual modo podemos enviar variables globales a la pelicula en ventana desde la pelicula principal:

global miVar
set miVar = field "info"
tell window "miPeli"
put miVar into field "info2"
end tell
end
Tambien, como no, podemos volver a "hablar" con la pelicula principal (el escenario), usando el script tell the stage to...
tell the stage to set the puppet of sprite 2 to false

Y esto, mas o menos es todo en cuanto a ventanas. En el proximo capitulo veremos como utilizar men™s en nuestras aplicaciones de Director