Cambio de resolución en presentación de director

Quisiera saber como cambio la resolución de mi presentación hecha en director tan solo haciendo click a un botón especifico, esto lo vi una presentación multimedia de Joaquin Sabina.

1 Respuesta

Respuesta
1
Puedes hacer que la ventana de tu presentación sea redimensionable por el usuario y adaptar mediante lingo el contenido al nuevo tamaño. O bien, mediante un botón redimensionas la ventana y adaptas el contenido de la misma forma.
Pero quizá a lo que te refieres es hacer que el proyector se vea a pantalla completa, en este caso si la presentación no ocupa toda la pantalla se verá un borde alrededor que será del color del fondo de la película. Puedes poner un botón para adaptar la resolución del monitor y que no se vea ese recuadro. Pero noecesitas usar un xtra.
Primero descarga BuddyApi de:
http://www.mods.com.au/budapi/
Instálalo (tienes que copiarlo a la carpeta de xtras de director). Viene con un fichero de ayuda que describe todas las funciones que ofrece. Te recomiendo que le eches un vistazo para que veas la cantidad de cosas que puedes llegar a hacer usándolo.
Crea un botón con el script:
Global viejoAncho
Global viejoAlto
Global viejoColor
Global ajustado
On mouseUp
if (ajustado = "SI") then
OK = baSetDisplay( oldwidth , oldheight , olddepth , "temp" , false )
ajustado = "NO"
else
viejoAlto = baScreenInfo( "height" )
viejoAntho = baScreenInfo( "width" )
viejoColor = baScreenInfo( "depth" )
Correcto = baSetDisplay( 640, 480, 24, "temp", false ) -- aqui pon el tamaño de tu proyector
ajustado = "SI"
end
De esta forma cuando le pulsas al botón te cambia la resolución y al volverle a pulsar la restaura. En el ejemplo le cambia la resolución a 640x480.
Hola amigo, gracias por tu recomendación, pero deberás disculpar mi ignorancia con respecto al Lingo y algunas cosas de director.
Hice los pasos que me diste, desempaquete el Buddyapi y lo copie en la carpeta Xtras del director, luego copie las lineas de programación lingo adaptándolas a mis requerimientos y nada.
Te doy unos datos más uso director 9 mx2004 en ingles, y mi presentación esta en 800x600 y quiero que se redimensione al tamaño que use la maquina destino.
Gracias de antemano
Redimensionar tu aplicación al tamaño de la máquina destino puede llegar a ser bastante complicado, pero no imposible. Es mucho más sencillo mostrar tu presentación a pantalla completa y hacer que el monitor de la máquina destino se adapte al tamaño de tu presentación.
Pero si quieres te voy a explicar qué tendrías que hacer para ajustar tu presentación al monitor:
Tienes la película creada con una determinada resolución (800x600) y todos los sprites tienen un tamaño definido. Siempre que ejecutes la película y se muestre un nuevo sprite éste va a aparecer con el tamaño que tiene cuando creas el proyector.
Si quieres hacer que el proyector se adapte a la resolución del monitor tienes que cambiar durante la ejecución el tamaño de cada uno de los sprites.
Para adaptar el tamaño de tu escenario crea un script de película con el siguiente contenido:
Global resolución
Global anterior
On prepareMovie
miEscritorio = the activeWindow
resolucion = the deskTopRectList[1]
set anterior = []
anterior[1] = miEscritorio.rect[3] - miEscritorio.rect[1]
resAnt[2] = miEscritorio.rect[4] - miEscritorio.rect[2]
miEscritorio.rect = rect(0,0,res[1],res[2])
end
Una vez que tienes el escritorio con el tamaño adecuado, tienes que ajustar el resto de sprites a ese nuevo tamaño. Puedes hacer la proporción correspondiente y cambiar el tamaño a los sprites en algún script "on beginSprite".
global resolucion
global anterior
on beginSprite me
obj = sprite(me.spriteNum)
obj.width = (obj.width * resolucion[1]) / anterior[1]
obj.height = (obj.height * resolucion[2]) / anterior[2]
obj.locH = (obj.locH * resolucion[1]) / anterior[1]
obj.locV = (obj.locV * resolucion[2]) / anterior[2]
end
En cada sprite de tu película tendrías que asignarle ese script. Haz pruebas para ver si con alguno de tus sprites tienes problemas. Y cuidado con los campos de texto, tienes que usar "obj.member.width" en vez de "obj.width".
Es bastante complicado si no tienes unos conocimientos medios de lingo.
Pruébalo y me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas