You are on page 1of 276

Cmo hacer Cd's Multimedia

Cmo hacer Cd's Multimedia


Cmo hacer Cd's Multimedia, al instante y sin programar

2004, Luis Manuel Gonzlez Nava

Guas Inmediatas de Computacin


Calle 8 No. 284, Col. Esperanza
Cd. Nezahualcoyotl. Estado de Mxico
Telfono:57-31-61-06
e-mail:
cosmos02@yahoo.com
Web: http://www.guiasinmediatas.com

Impreso en Mxico
Primera edicin, Julio de 2004
ISBN: 968-5049-44-0

Todos los derechos reservados. Esta publicacin no puede ser reproducida, ni en todo ni en
parte, ni registrada en o transmitida por un sistema de recuperacin de informacin, en
ninguna forma ni por ningn medio, sea mecnico, fotoqumico, electrnico, magntico,
electroptico, por fotocopia o cualquier otro, sin el permiso previo y por escrito del titular del
Copyright.
Multimedia Builder, RealDrawPro, DVD-Lab y Mediachance son marcas registradas de
MediaChance. Todos los nombres de productos y companas son marcas registradas de sus
respectivas empresas.

Cmo hacer Cd's Multimedia

A la memoria de Emilio Gonzlez Nava


por su implacable sentido del humor.

Cmo hacer Cd's Multimedia

Cmo hacer Cd's nota


Multimedia
Importantsima
inicial:
Estimado lector, estimada lectora, quiero pedirle encarecidamente algo: no se tome este libro muy en serio. Pero no me mal
interprete, por favor, para escribirlo le he dedicado tanta atencin, rigor y esfuerzo como todos los dems ttulos que he
publicado. Lo que pasa es que si se lo toma en serio no lo va a
disfrutar igual.
Yo s que su objetivo al interesarse por este libro es aprender
a hacer CDs Multimedia y lo va a conseguir, pero no veo porqu
eso tenga que estar reido con la diversin que puede venir con
el aprendizaje.
Ocurre que, en cierta ocasin, alguien me dijo que mis libros
le haban dado excelentes resultados para combatir el insomnio.
Entre sorprendido y consternado, regres rpidamente al
estudio de mi casa a leer mi propio trabajo para corroborar lo que
me haban dicho. No logr terminar, me qued dormido. Lo peor
no fue eso, sino que romp mi record de sueo, sume como 48
horas. Cuando despert, casi me haba perdido el fin de semana
y el partido del Pumas. Por ello, he decidido darme toda clase de
libertades al escribir sobre este tema, bajo la idea de que
mientras ms diversin, ms inters, mientras ms inters,
menos sueo, mientras menos sueo, ms atencin, mientras
ms atencin, ms aprendizaje, mientras ms aprendizaje, ms
diversin y as sucesivamente.
As que lo(a) invito a que aprenda y se entretenga leyndolo,
tanto como yo aprend y me divert escribindolo. Recuerde que
la capacidad de rer es exclusiva de los seres humanos y no slo
nos distingue de las bestias, sino adems, es la mejor puerta de
entrada a otras expresiones de humanidad que tambin nos
caracterizan: amor, creatividad, generosidad, compasin, solidaridad y dems cosas que nos hacen mejores personas y que
tanta falta nos hace en estos tiempos aciagos.
As que atrvase a rer conmigo un poco de todo, de m y, tal
vez, tambin de usted, aunque la intencin no es ofender a nadie.
Pero deber estar muy atento, no se distraiga en el camino a los
chistes malos, su objetivo es aprender a hacer CDs Multimedia.
De cualquier modo, siempre me tendr a la mano para mandarme sus quejas por correo electrnico en la siguiente direccin, a ver si as ya alguien me escribe alguna vez:
cosmos02@yahoo.com
5

Slo le encargo procure no referirse a mi progenitora, ella no


hacer
Cd's Multimedia
tiene ningunaCmo
culpa de
mis exabruptos
y desde hace mucho que
ya no pudo contener mis locuras. Mi santa madre (que, como
toda madre que se respete, es santa), es pues inocente y yo soy
muy sentido cuando me la recuerdan.
Por otra parte, se supone que cuando el trabajo de escribir un
libro le causa molestias a ms personas que el propio autor, ste
debe agradecer por todas las concesiones recibidas durante el
periodo en que dur la elaboracin de la obra.
Mi caso es mas serio. Debo dar las gracias a distintas personas, antes, durante y despus de haber escrito algo porque, por
lo general, no dejo de dar lata con el asunto, como ahora. Por lo
que mi lista de agradecimientos es casi total. En primer lugar, a
mi esposa Leticia y mi hija Ana Clara, ambas agua del manantial
que soy; a mis padres, Daniel y Mara del Carmen; a mis
hermanos, Lucy, Agustn y Esteban; a mis sobrinos, Jazmn,
Daniel y Eduardo; a Lina. A la familia de mi esposa, mi entraable
suegra Lupita y mi suegro Rafael, a sus hijos, desde Israel, hasta
Alejandra, la ms chica, lo que implica tambin a las siguientes
personas: Lourdes, Marina, Patricia, Rafael, Oscar, Alvaro,
Alicia, Blanca e Irma (como se habr dado cuenta, son una
familia numerosa), sus respectivos cnyuges, hijos e hijas, que
tambin son mis sobrinos, en particular a Daniela, David, Alejandro, Christian, Samantha, Sabrina y Yazmin, con quienes ms
convivo, pero tambin a Jacobo, Rebeca, Wendolyn (espero que
as se escriba), Daniela (perdn a ella ya la haba mencionado,
como son tantos), Vernica, Paulina, Marcos, Sandy y Alexa (de
reciente creacin), ms los que se acumulen este ao; a sus
futuras parejas y a las hijas e hijos que algn da tendrn. Me da
gusto mencionar tambin a la Sra. Janett Arceo y su equipo,
Carmelina y Normita Santiago. A algunos amigos: Tonatiuth, a mi
nuevo jefe El Greas y su excelente predisposicin a la carcajada,a
Alejandro Martnez, Andrs Islas, Ignacio Macedo y a todas
aquellas gentes con las que interacto con frecuencia. Qu les
agradezco? Bueno, distintas cosas, cada quin sabe qu.
Tienen tambin especial mencin las ms de 20 millones de
personas que se mueven en el Distrito Federal (eso dicen),
aunque la mayora viva en Neza, Tlane y Ecatepec y muchos de
cuyos nombres puede usted encontrar en la Seccin Blanca.
Pero retiro de esta lista a todos los locos energmenos que
manejan muy mal su automvil, lo que reduce la lista en casi dos
millones de personas y que por falta de espacio no menciono,
aunque me gustara. Tampoco puedo dejar fuera a los poco ms
6

de un milln de habitantes que viven en mi querida Pachuca (eso


Cd's Multimedia
creo), menosCmo
unos 25hacer
mil retrasados
del volante que tambin hay
por all, plaga que se reproduce cada vez que alguien aprende
a manejar un auto.
Me temo que esta seccin de agradecimientos se parece ya a
las dedicatorias de las tesis de licenciatura, que generalmente
mencionan hasta a el perro de la casa. Por cierto, el Teddy (la
mascota de mis padres), tambin fue fuente de inspiracin de
algunos mal logrados prrafos de este libro, igual que el Gilli, el
perro de la azotea, gracias al cual, segn mi santa madre, los
gatos ya no hacen estragos en su poblacin de canarios, cuyos
cantos tambin agradezco.
Luego sigue el deslinde de responsabilidades, donde uno
debe decir que el nico culpable de tanto desvaro es uno
mismo, solito, sin el consuelo de poder repartir culpas entre los
mencionados. Y, por el contrario, hay que agradecer los magnficos consejos que se reciben cuando uno cuenta que est
escribiendo sobre tal o cual cosa. En ese terreno, lamentablemente, yo no puedo agradecer nada, no recib ningn consejo,
puras miradas condescendientes que me urgan a que me fuera.
Pero en contraste con otros escritores, que llegan al extremo de
afirmar que hasta los aciertos de su obra son ajenos, yo no me
autoflagelo tanto, muchas de las virtudes de este material son
mas, solamente mas. El problema para usted es encontrar tales
virtudes.
Mxico, Distrito Federal. 12 de Abril de 2004

Cmo hacer Cd's Multimedia

1
Qu vamos a utilizar?
Antes de decir cualquier cosa, pesque al vuelo la siguiente
definicin: Multimedia es el uso de medios mltiples.
Qu bonita perogrullada! Djeme la compongo: es el uso, en
una misma aplicacin, de texto, imgenes, sonido y video. Por
eso llamamos multimedia a los programas que utilizan estos
elementos para presentar informacin, aunque no necesariamente la procesen, como las enciclopedias, la mayora de las
cuales, adems, son interactivas (espero que no necesite que le
defina interactivas o si?).
Un programa multimedia, por tanto, suele ser aqul que tiene
musiquita, sus grficos se mueven y, a veces, tiene cortos de
video. Cosa que casi todos los nios y jvenes han visto en los
videojuegos, los cuales, sobra decirlo, son multimedia (los
videojuegos, no los nios, aunque creo que tambin).
Hasta hace algunos aos, el nico camino para crear programas multimedia era el dominar, a veces hasta niveles muy
avanzados, algn lenguaje de programacin, como el temido
lenguaje C, o su descendiente evolutivo, el C++ (lase C, plus
plus). Y si bien, con el tiempo, algunos lenguajes ms sencillos
y asequibles a los aficionados, como el Visual Basic, extendieron
sus herramientas para facilitar la creacin de programas
multimedia, el caso es que el requisito era el mismo: dominar un
lenguaje de programacin.
Esto no tendra nada de malo en s mismo, sino fuera por el
hecho de que hay un gran sector de usuarios de computadoras
que, por las razones que se quiera, han soado con crear sus
propias aplicaciones y presentaciones multimedia, pero que,
enfrascados en su propia especialidad, se niegan a aprender
todo un lenguaje de este tipo.
No sera raro pensar, por ejemplo, en empleados de mercadotecnia que les gustara usar CD ROMs para promover sus
productos, pero que el presupuesto de la pequea empresa en
la que trabajan, les impida pagar los servicios de un programador
8

Cmo hacer Cd's Multimedia


profesional y que ellos mismos se resistan a invertir meses, tal vez
aos, en aprender algo que no est directamente relacionado con
su profesin y que ni siquiera les de la certeza de obtener resultados.
Obviamente, esta necesidad fue captada desde hace mucho
tiempo por empresas de software que han desarrollado diversos
productos para el mercado. Tal vez haya algn lector informado,
y medio nostlgico, que recuerde el StoryBoard de IBM, de
hace ya varios aos. Quiz algn otro haya usado. el Desk
Animator Studio y muchos programas ms de cuyo nombre no
quiero acordarme, pero que tenan como fin el facilitar la creacin
de programas multimedia de una manera simple, pero sobre
todo, sin la necesidad de escribir cdigo.
Actualmente, hay programas orientados a la creacin de
aplicaciones amplias y sofisticadas en multimedia, como Director de Macromedia, cuyo aprendizaje requiere casi de tanto
esfuerzo como el de un lenguaje de programacin. Hay otros con
menos renombre, pero algo ms ligeros, por decirlo as, como
Multimedia Toolbook, Multimedia Fusion, Neobook, Authorware
y algunos otros.
De entre ellos hay uno que sobresale porque combina de
manera magistral la sencillez con la potencia y permite satisfacer, sin un gran esfuerzo de aprendizaje, la mayor parte de las
necesidades que existen en la materia. Este programa, que
hemos escogido por usted y ser la materia prima de este libro
es Multimedia Builder, de Mediachance.
S, hemos hecho una eleccin arbitraria, es decir, que decidimos sin consultarlo; pero confe en nuestro buen juicio, (ni modo
que hiciramos una votacin para escoger el programa con el
que vamos a trabajar). Le juramos que hicimos nuestro trabajo
y que evaluamos distintas posibilidades antes de ensearle a
crear CDs multimedia al instante y sin programar (ya not
que as se llama este libro?). Creemos que nuestra eleccin fue
buena al quedarnos con Multimedia Builder y esperamos que
usted comparta esta idea con nosotros cuando termine de leer
este texto.
Pero permtame primero contarle algo de este programa antes
de que le declare amor eterno.
Multimedia Builder es la creacin de un genial programador de
origen Checoslovaco llamado Roman Voska. Es autor de muchos
9

Cmo hacer Cd's Multimedia


otros programas relacionados con la multimedia y que han
comenzado a popularizarse gracias a Internet, como el RealDraw
Pro, DVD-Lab, PhotoBrush y algunos otros, los cuales puede
descargar desde su pgina de Internet:
www.mediachance.com
Le cuento, como un buen detalle, que Romn Voska le dedic
este programa a su esposa Zuzana, como podr ver en la ayuda
de propio programa.

"Escrito por Roman Voska.


Dedicado a mi esposa
Zuzana". Enhorabuena.

"Slo el amor alumbra lo que perdura", dice Silvio Rodrguez


(y nosotros, con su permiso, nos ponemos cursis).
El caso es que este programa le permitir crear aplicaciones
multimedia de una manera rpida y muy sencilla. No invertir
mucho en aprenderlo, si acaso, lo que le lleve leer este libro, y,
por si fuera poco, podr poner esas aplicaciones en CD-Roms
autoejecutables, con apariencia profesional. Por ello, entre los
muchos usos que le podr encontrar estn:
- Presentaciones multimedia, de temas, productos, de ejecucin automtica o interactivos, etctera, chele imaginacin y
ver que se abre un mundo de posibilidades con esto.
10

Cmo hacer Cd's Multimedia


- CDs para instalar programas. Lzcase entregando el
informe que hizo en PDF, agregando un programa de presentacin de su trabajo con un icono que copie el archivo al disco duro
y luego otro que instale la ltima versin de Acrobat Reader y
luego que lo hayan visto todos pida aumento de sueldo! A lo
mejor no se lo dan, pero, de entrada, ya los dej boquiabiertos.
- Discografas en MP3 con programas de reproduccin
propios. A m no me miren, yo no invent la piratera, ni la promuevo,
ni me valgo de ella. Dicen que en ese asunto, el que est libre de
culpas, que lance el primer CD-ROM. De todos modos, no estara
mal una nueva discografa de Juanga o Luismi en los tianguis con
una espectacular presentacin hecha por usted.*
- Tutoriales. Ensele al mundo lo que sabe, as sea a echar
volados. Lo cierto es que un buen curso en CD de cualquier tema
(ecologa, historia, matemticas, etctera) sera muy simple de
hacer con Multimedia Builder, el trabajo ms pesado sera crear
el contenido, no el programa en s, como veremos pronto.
- Reproductores multimedia personalizados. Cuando vaya
a ver una pelcula en la oficina en VCD (s de esas que tambin
venden en los tianguis) en la computadora y con los compaeros,
no deje de destacar que el reproductor lo program usted mismo.
Es ms, pngale una barra de ttulo al programa con su nombre,
algo as como Ricardos VCD player".
- Etctera, etctera. Y cuando decimos etctera, etctera,
nos referimos a un largo etctera, etctera.
Hemos dicho en ms de una ocasin que el programa es de
una sencillez asombrosa qu significa esto? Que para crear
*Durante largo tiempo, las empresas discogrficas han lanzado campaas invitando
al pblico a no comprar msica pirata, sin embargo el fenmeno crece sin control.
Mientras escribo este libro, sali la noticia de que el Congreso aprob nuevas leyes
contra la piratera, con penas mucho ms duras. Yo me pregunto si esto, en lugar de
terminar con la piratera de msica, no generar un mercado un poco ms clandestino y
con fuertes ingresos al ro de la corrupcin. Me pregunto tambin si de verdad las
empresas discogrficas no podrn vender los xitos del momento en CD's al alcance de
todos los bolsillos. Como sea, el fenmeno es mundial y dudo que la solucin sea un
ejrcito de judiciales movindose en todos los tianguis para buscar CD's piratas y
extorsionndo a los vendedores.

11

Cmo hacer Cd's Multimedia


CDs multimedia basta con colocar objetos para crear la interfaz
(botones, dibujos y otros elementos), indicar sus propiedades a
travs de cuadros de dilogo, aadir los archivos necesarios,
establecer algunos parmetros adicionales y eso es todo, en
minutos se puede hacer una aplicacin que, en la absoluta
mayora de los casos, funcionar sin problemas.
Le adelanto adems algo que le sonar raro y atractivo: la
interfaz de los programas que puede hacer, es decir, lo que los
usuarios ven en pantalla, no necesita ser una ventana clsica de
Windows con los elementos tpicos: barra de ttulo, barra de
herramientas, mens, etctera. La interfaz de su programa
puede ser la imagen de un cacahuate, su permetro tener esa
forma, y los botones, mens y dems controles pueden ser
cucarachas o bichos semejantes, dispuestos caticamente encima del cacahuate y el programa bien puede servir para demostrar porqu el pblico debe contratar a su empresa de fumigacin
de plagas. Incluso, puede aadir un formulario para solicitar sus
servicios a travs de un correo electrnico Le gusta la idea?
No? Bueno, luego intento otra propuesta.
Adems, una de las caractersticas que ha propiciado la
popularizacin del programa, por lo menos entre la comunidad
informtica de habla inglesa, es su precio. Comparado con el de
otros programas similares ste es muy barato pues vale apenas
unos 45 dlares. Muy poco, realmente.* Eso significa que debe
comprar este programa para trabajar con lo que dice este libro?
No, por supuesto. Lo que ocurre es que usted puede utilizar el
programa, descargarlo del sitio de Mediachance o instalarlo
desde el CD que le ofrecemos nosotros. As estar trabajando
con la versin shareware de Multimedia Builder, es decir, la
versin de evaluacin que no tiene costo.
Esta versin, funcionalmente, es exactamente igual a la versin registrada (pagada) del programa, la nica diferencia es que
todos los programas que usted construya con l tendrn, de
modo bastante visible, una franja indicando que est usted
utilizando la versin gratuita, lo cual, sin duda, lo va a inhibir a
distribuir su prodigioso CD.
Por mi parte, lo que puedo decirle al respecto es que instale el
*Director, de Macromedia, por dar un ejemplo, tiene un costo al pblico de 1,199
dlares, ms de doce mil pesos mexicanos, comprndolo en lnea en www.macromedia.com

12

Cmo hacer Cd's Multimedia


programa, lea el libro, aprenda a utilizar Multimedia Builder del
modo ms extenso posible, imagine todas las cosas que puede
hacer con l y, si considera que vale la pena y puede, cmprelo
en lnea en www.mediachance.com. Esta sugerencia es lo
menos que puedo hacer para apoyar uno de los pocos productos
que han sido desarrollados independientemente de los gigantes
del software, como Microsoft, y que valen la pena. Adems, el
costo del programa, ms el de este libro, es poco comparado con
el de los cursos y software que necesitara para desarrollar CDs y
programas multimedia como los que va a aprender a hacer aqu.
Pero ya fue mucho rollo, entremos pues en materia.

Interfaz de un programa desarrollado con MMB.


Observe la franja inferior, que indica que se hizo
con una versin sin registrar del programa.

13

Cmo hacer Cd's Multimedia

2
La Interfaz de Pantalla de Multimedia
Builder
La interfaz de Multimedia Builder es similar a la de algunos
programas de dibujo. En lo personal me recuerda a PhotoPaint, de
Corel, con sus propias caractersticas, por supuesto. Veamos:
Barra de ttulo

Reglas

Men

Barra de herramientas
Panel de
objetos

Paleta de
objetos

rea de trabajo

Herramientas de pgina

Panel de pginas

Los elementos comunes a otros programas Windows de


Multimedia Builder, tan conocidos por todos que ya nadie les
hace caso, son:
- La barra de ttulo. La que dice el nombre del programa y el
del archivo con el que estemos trabajando.
14

Cmo hacer Cd's Multimedia


- La barra de mens. Tiene todas las rdenes del programa
y es en donde andamos buscando cuando no nos acordamos
dnde estn las cosas.
- La barra de herramientas. Que no es otra cosa que esa fila
de botones que est bajo el men. Los botones corresponden a
las opciones de mens ms utilizadas. Sin embargo, a diferencia
de otros programas, en sta se encuentran algunos botones con
funciones que no estn en ningn otro lado. Ya los veremos en
su momento.
- El rea de trabajo. Todos los programas tienen un rea de
trabajo a poco no? En Word es una pgina vaca, en Excel es
la hoja de clculo, en Corel Draw es un rea para dibujar,
etctera. En este caso, el rea de trabajo es donde diseamos
la interfaz del programa que estemos elaborando con MMB
(abreviatura de Multimedia Builder y que vamos a usar de ahora
en adelante porque ya me dio flojera escribir completo el nombre
de Multimedia Builder, de Mediachance, que se puede descargar
del sitio www.mediachance.com).
- Barra de estado. Es la barra inferior de la aplicacin en
donde suelen salir pequeas frases informativas sobre las actividades que estamos realizando y a la cual tampoco nadie le
hace caso. Cambie pues de actitud y fjese de vez en vez en la
barra de estado, antes de que se nos suicide por soledad.
Hay elementos propios del programa que vamos a enumerar
brevemente y en los cuales nos extenderemos conforme avancemos en el tema, veamos:
- La paleta de objetos. Se trata de una barra de herramientas que est a la izquierda de la interfaz. Cada botn es un tipo
de objeto que podemos insertar en nuestra rea de trabajo,
aunque algunos botones se despliegan a la derecha mostrando
otros botones y, por tanto, otros objetos. Como ya mencionamos,
nuestros programas se compondrn de eso, objetos y ms
objetos, por lo que esta paleta ser de uso intensivo.
El men Object-Create presenta la misma lista de objetos
15

Cmo hacer Cd's Multimedia


que esta barra de herramientas, por lo que puede usar una u otra.

Men

Barra de Herramientas

La paleta de objetos tiene algunos tems


agrupados, como en este ejemplo. Si
mantenemos el botn del ratn pulsado, se
desplegarn en una nueva barra horizontal
que permite elegir otro objeto. Esta misma
coleccin podemos encontrarla en el men
mencionado y usted deber conocer vida y
milagros de cada uno.
16

Cmo hacer Cd's Multimedia


- Herramientas de pginas. Es la barra de botones que est
abajo del rea de trabajo y todos estn relacionados con el
manejo de las pginas de la aplicacin. En el siguiente captulo,
donde nos referiremos a la lgica de funcionamiento de MMB,
veremos la importancia de las pginas en las aplicaciones y, por
tanto, la utilidad de esta barra.
No se espante, se trata de la misma barra de herramientas que est bajo
el rea de trabajo y sobre el administrador de pginas. Lo que pasa es
que la arrastramos para hacerla flotante y cupiera aqu.
Pgina
maestra

Ocultar objetos de Pgina anterior Propiedades


de pgina
pag. y capa maestra y siguiente
Capa maestra
superior

Nueva
pgina

Borrar
pgina

Organizador
de pginas

Retroceder Alinear a la izquierda,


derecha, arriba, abajo o
uno
centrar
respectivamente.
Avanzar

Mandar
atrs

Depurar y
probar pgina

Administracin de grupos
de objetos

uno

- Panel de pginas. Le voy a contar un secreto: nuestro amigo


Roman Voska no se preocup por darle nombre a los distintos
elementos de la interfaz de su programa; si no me cree, revise la
ayuda, dice claramente que como la interfaz es bien fcil de usar,
pues no la explica, y ya.* Por tanto, llamaremos Panel de
pginas al panel de pginas perdn, al rea inferior donde va
apareciendo un icono por cada pgina que insertemos en nuestra aplicacin, asunto que tambin quedar claro en el prximo
*En el sistema de ayuda dice textualmente: "In this help, we skip all the basic GUI
descriptions and go directly to the bone - describing the functions, objects and how
to use the software in general. We are sure you will find the interface very logical and
easy to use." Lo cual puede ser cierto para la mayora de usuarios, pero no para todos.

17

Cmo hacer Cd's Multimedia


captulo. En tanto, djeme decirle que haciendo clic en algn
icono, cambia a la pgina correspondiente y con un doble clic
abre un cuadro de dilogo para modificar las propiedades de
dicha pgina. Ya lo usaremos, slo siga leyendo.

Un clic en el "Panel de
pginas" y cambia el rea de
trabajo a la pgina correspondiente. Dos clics y se abre su
cuadro de dilogo de propiedades que ya estudiaremos algn
da, cuando llegue usted a esa
parte que tanto le inquieta...

- Panel de objetos. Siguiendo este criterio, podemos llamar


Panel de objetos a la ventana que est a la derecha de la interfaz
y que no slo enlista los objetos que estn en la pgina, tambin los
administra de diversos modos, como veremos un poco ms adelante (ya se, ya se, muchas promesas, pero de verdad, todo lo veremos
en prximas pginas, se lo aseguro: yo ya las le).

El panel de objetos muestra el


nombre del objeto, si est o no visible
(con el ojo tachado o normal) y si los
objetos estn agrupados, entre otras
caractersticas. Pulsando el botn
alargado superior, clasificar los
objetos segn su tipo, eso se lo dejo
de tarea, para que averige.

18

Cmo hacer Cd's Multimedia


- Otros elementos. Los mens y cuadros de dilogo de MMB
son casi iguales a los de otros programas para Windows, aunque
uno que otro tiene ms bien apariencia de programa para Mac,
pero eso no obsta para que los use sin problemas un usuario
inteligente, gil de mente y culto como usted, qu, adems, no
pertenece a la minora que usa Mac (despus de sta, ahora s
los usuarios de Mac me van a colgar, entre ellos mi hermano
Agustn, porque eso s, son pocos pero muy activos).
Adicionalmente, cabe destacar que el programa incluye unos
cuantos tutoriales dispersos aqu y all. Cuando vea, en una
cuadro de dilogo, el botn Show me, plselo, es un pequeo curso hecho, precisamente, con MMB.
Observe este cuadro de dilogo
de MMB, no por mucho tiempo,
slo lo suficiente para que
encuentre el botn "Show me...",
al pulsarlo aparece un pequeo
tutorial. El programa incluye varios
de ellos y estn en una carpeta
donde est instalado el programa.
Bsquelos, el premio es verlos.

19

Cmo hacer Cd's Multimedia


Finalmente, la interfaz de MMB puede, como las serpientes,
cambiar de piel. Seleccione la que ms le agrade en el men
Tools-Skins.

El men "Tools-Skins" permite cambiar la apariencia del programa y


para desagraviar a los maqueros, incluye una interfaz tipo Mac.
Usted puede elegir la de Windows XP, no se lo diremos a nadie.

20

Cmo hacer Cd's Multimedia

3
Cmo funciona?
Un programa creado con MMB es una interfaz que puede tener
varias pginas. Cada pgina puede contener distintos objetos y
a cada uno le podemos asociar ciertas acciones. Dichas acciones pueden desencadenarse con un clic del ratn, como un
mapa de bits que reproduzca msica al ser pulsado, o ejecutarse
automticamente despus de cierto tiempo, entre otras combinaciones.
Por tanto, el trabajo consiste en definir cuntas pginas
necesita nuestra aplicacin, qu va a pasar en cada pgina y
cmo se van a entrelazar unas a otras. Dicho de otro modo, cada
pgina puede significar una tarea nica en su programa, lo que
hace al conjunto ms fcil de entender e incluso de modificar,
pues basta con editar, quitar o poner pginas, para que el
programa cambie sus funciones.
Si en una pgina se va a reproducir un archivo de video en
formato AVI o MPEG, entonces deber aadir dicho archivo al
conjunto. Al final, deber compilar todo el trabajo conforme al
procedimiento que explicaremos ms adelante, lo que dar
como resultado un archivo con extensin .EXE. Es decir, un
archivo ejecutable en Windows que junto con otros archivos
necesarios, podr grabar en un CD-ROM y, tan, tan, habr
terminado. Como ve, no es difcil.
Durante el periodo de diseo de su programa, usted puede
compilarlo y ejecutarlo a modo de prueba, antes de generar el
archivo .EXE definitivo, con el men Project-Run o el botn
Compile & Run de la barra de herramientas.
El men o el botn permiten ejecutar
los programas que estn en fase de
diseo, por lo que deber usarlos con
frecuencia. Si observa el botn, ver
que me qued con el "skin" de Mac,
para seguir desagraviando maqueros.
21

Cmo hacer Cd's Multimedia


Pero vayamos como el inefable, pero desgraciadamente
infalible, Jack el destripador: por partes.

3.1 Parmetros generales


Desea usted hacer un programa con la clsica ventanita de
Windows o le gustara algo ms agresivo, ms propio, algo con
la silueta de un tigre a punto del asalto y con controles en cada
raya? Decdalo de una buena vez, porque eso es parte de lo que
se llama Parmetros generales.
Los parmetros generales de la aplicacin se establecen con
el men Project-Project Settings, que abre el cuadro de
dilogo con el que, necesariamente, debe comenzar su trabajo,
si quiere comenzar bien.
En realidad, usted puede comenzar a hacer su
programa como quiera una vez que conozca
MMB pero, entretanto, deber hacerme caso
usando primero este cuadro de dilogo.

Si no alcanza a ver las partes de


este cuadro de dilogo, no se
apure, la vamos a diseccionar y
revisar seccin por seccin.

22

Cmo hacer Cd's Multimedia


Cmo anda su ingls? Igual que el mo? Ya la amolamos,
vamos a tener que defendernos aprendiendo un poco ms. As
que atento, por favor.
- Windows Size
Es el tamao en pantalla de la aplicacin. Al respecto quisiera
hacer las siguientes observaciones: La primera es que si bien
puede usted realizar programas con MMB en las ventanas
clsicas de Windows, stas no pueden maximizarse, ni cambiar
de tamao dinmicamente, como el resto de los programas para
Windows. Por tanto, el tamao de la aplicacin permanece
constante.* En segundo lugar, considere las condiciones de
quienes van a ejecutar sus programas. Las mquinas antiguas
pueden tener una resolucin de 640 x 480, las mquinas ms
recientes suelen usar 1024 x 768 o incluso ms. Si est seguro
de la configuracin de los equipos en los que va a ser ejecutada
su aplicacin, procure un tamao ad hoc con las pantallas en las
que se va a usar, de lo contrario, deber pensar en un rango entre
200 x 200 y 800 x 600, para que sea prctico para la mayora de
los equipos.
As pues, debe capturar el ancho (width) y largo (height) de la
ventana en los cuadros de texto correspondientes. Quick preset
es una lista de valores predeterminados, para una seleccin rpida.

El tamao de la aplicacin est, por tanto, dada por los


valores de ancho y alto que capturemos en las cajas
de texto. Con la lista desplegable "Quick Preset"
podemos elegir una combinacin predeterminada.
*Esto es relativamente cierto. En realidad, ms adelante veremos que hay un mtodo
para cambiar el tamao de la ventana del programa durante su ejecucin.

23

Cmo hacer Cd's Multimedia


- Window Title
Es el texto que va a aparecer en la barra de ttulo. Por lo
general, se trata del nombre del programa (as es, aunque usted
no lo crea, debe bautizar a sus creaciones. A poco no se haba
fijado?, cuando abre Excel, en la barra de ttulo dice Excel. As
que procure nombres picos, que hagan historia, que impacten
al mercado y tengan un alto nivel de ventas se imagina el tema
de un programa llamado pejeman o algo as?).

Observe que el texto en el cuadro de dilogo, se vuelve el ttulo del programa.


Por lo que no debe dejar ese dato al azar, menos tratndose de pejes.

Esta aplicacin puede encontrarla en el CD-ROM con el nombre de


"Pejeman", pero no se ilusione, slo ilustra el uso de la barra de ttulos. De
todos modos, no olvide hacer clic en el pez, adems de los botones.

- Standard Window y Nonstandar Window


Los siguientes cuadros de seleccin permiten definir el estilo
de la interfaz entre las alternativas que habamos mencionado,
la clsica ventana de aplicacin de Windows, como el ejemplo
anterior, o bien una interfaz con contorno personalizado. En otras
24

Cmo hacer Cd's Multimedia


palabras, el mundo no tiene porqu ser rectangular, aunque as
lo haya imaginado Bill Gates.
Cuando el cuadro de seleccin Standard Window est
activado, nuestra aplicacin ser una ventana con barra de ttulo,
botn para cerrar y borde, o sea, un muchachito formal y decente.
A su vez, podemos aadir una delgada lnea negra en dicho
borde con el cuadro de seleccinClient Border.

Si activamos el primer cuadro, nuestra aplicacin ser una ventana tpica de


Windows, con barra de ttulo y botn de cierre. El segundo cuadro determina si se
activar el botn para minimizar y el tercero aade un delgado borde a la ventana.
Como ve, el primero es importante decidirlo, los otros dos son opcionales.

En cambio, cuando activamos Window has custom shape


("La ventana tiene una forma personalizada")*, podemos seleccionar una imagen de mapa de bits que defina el contorno de la
aplicacin y que vivan las formas libres. Aqu tenemos dos alternativas, Outline Shaper y B/W Mask. Veamos un ejemplo.
Con el icono de
carpeta podemos
seleccionar un mapa
de bits que nos va a
servir como forma de
la aplicacin. Vemos
un ejemplo.

*La traduccin se la debemos a Doa Chonita, ex-bracera que trabaj en casa de unos
programadores en Mannhatan y que, por tanto, no slo aprendi ingls, sino que adems
se volvi experta en computacin. Sin embargo, dice que sus patrones se la pasaban
chateando y que a ella eso le aburre, por lo que prefiere su puesto de quesadillas en Santa
Mara Aztahuacn. Las cuales, dicho sea de paso, le quedan buensimas.

25

Cmo hacer Cd's Multimedia


Para que el rastreo del contorno del mapa de bits resulte
efectivo, procure usar imgenes BMP a 8 bits, es decir, de 256
colores. Puede usar otro tipo de imgenes, como JPG o GIF,
pero mi experiencia es que el rastreo no resulta tan exacto como
con las imgenes que sugerimos. Tambin se aconseja que
alrededor de lo que va a ser el contorno haya un fondo de color
slido, preferentemente blanco. Si tiene dudas de cmo convertir
sus JPG a BMP de 256 colores, no se complique la vida, use
Paint* para abrir el archivo, luego la opcin de men Guardar
cmo y elija Mapa de bits a 256 colores.

Como todo mundo sabe, y estoy seguro que usted no es la excepcin, al usar el
men "Guardar-Cmo...", se abre un cuadro de dilogo que sirve no slo para
elegir el nombre y la carpeta del archivo a grabar, sino tambin su tipo. En Paint,
podemos seleccionar que las imgenes se graben como BMP de 256 colores. El
resultado para usar la imagen como interfaz de MMB ser sensacional.

Tambin es importante que pruebe con los valores de tolerancia


del cuadro de dilogo, Un valor de tolerancia bajo forzar a MMB
a circunscribir la interfaz muy cerca del permetro de la imagen, un
valor alto har que el perfil se aleje del permetro. Pruebe con los
valores de este parmetro y observe los resultados.
Pero veamos el siguiente ejemplo en el que hemos usado, tal y
como lo prometimos (y eso que no somos polticos en campaa,
porque esos suelen no cumplir), la imagen de un tigre (previamente
convertida a 256 colores), con una tolerancia igual a 1.
La versin de Paint que viene con Windows XP es capaz de abrir y transformar
archivos de JPG y GIF a BMP de 256 colores. Otras versiones de Paint, de versiones
anteriores de Windows, no lo son, en cuyo caso va a tener que usar un programa de
edicin de imgenes, como PhotoShop, PhotoPaint o PaintShop Pro... Le juro que no es
juego de palabras, as se llaman. Este ltimo es de Jasc Software y una de sus versiones
se puede obtener gratuitamente en www.jasc.com al momento de escribir esto.

26

Cmo hacer Cd's Multimedia

Con el icono de carpeta se abre el cuadro de dilogo para


seleccionar imgenes. Observe que la banda indica que ya hemos
elegiido un archivo. Luego establecimos una tolerancia igual a 1.

Una vez seleccionada la imagen, puede pulsar el botn OK


del cuadro de dilogo, ver que aparece el contorno de la imagen
con lneas punteadas.

En esta imagen parcial de la


interfaz de MMB podemos ver el
contorno del archivo de imagen
seleccionado. Para que la
interfaz personalizada est lista,
debemos aadir el mismo
archivo, pero como fondo de la
pgina. No hemos visto ese
tema pero adelantmoslo un
poco, para eso, hay que dar
doble clic en el icono de la
pgina para que se abra su
cuadro de propiedades.
En el cuadro de dilogo de
propiedades de la pgina,
tenemos otro icono de
carpeta para elegir la
imagen de fondo ("background"). Seleccionamos el
mismo archivo.
27

Cmo hacer Cd's Multimedia


Despus, adelantndonos un poco para dejar esto claro, debemos usar esa misma imagen como fondo de la pgina (background), con lo que nuestra interfaz personalizada queda lista.

Nueva vista de la interfaz con el


BMP como fondo de la pgina.
Nuestro programa tiene ahora una
interfaz personalizada, pero an no
hemos aadido algo que genere
accin, lo que vendr en los
prximos captulos.

Quiere probar la aplicacin? Podramos pulsar el botn


Compile & Run de la barra de herramientas para que vea el
tigre en pantalla. Recuerde que la imagen del tigre, el archivo de
la aplicacin en MMB (extensin .mbd) y el programa ya
compilado (extensin .exe) se encuentran en el CD-ROM que
acompaa a este libro con el nombre "Tigre".
Como ya habamos mencionado, con
este botn podemos compilar y ejecutar
el programa que estamos diseando. En
la siguiente imagen, podemos ver el
programa ya en accin sobre el
escritorio de Windows. Observe que no
tienen los elementos tpicos de una
ventana de programa. Se trata simplemente de la imagen como interfaz.

28

Cmo hacer Cd's Multimedia


Dos observaciones al respecto: como no aadimos ningn
control a este programa, puede cerrarlo haciendo clic con el
botn derecho del ratn sobre el tigre. Lo otro, observe que el
tamao de la aplicacin en el rea de trabajo era un poco ms
grande que la imagen que usamos, eso evita que la interfaz salga
cortada, cuidado pues con ese dato.
La otra opcin, B/W Mask, opera exactamente igual, pero
debe usar slo mapas de bits blanco y negro, no olvide que esa
misma imagen debe ser el background de la pgina. La parte
negra va a formar el contorno de la interfaz, la parte blanca ser
invisible. La ventaja de este mtodo es que puede tener una
interfaz personalizada con agujeros, toda una novedad.

"B/W Mask" funciona exactamente igual que la opcin anterior (es


decir, usamos una imagen para definir el contorno y luego esa
misma imagen como fondo de la pgina), pero aqu debemos
elegir, forzosamente, imgenes en blanco y negro. Observe el
resultado de una interfaz as sobre el escritorio de Windows.

29

Cmo hacer Cd's Multimedia


En el CD-ROM va a encontrar dibujos en blanco y negro para
usar en sus aplicaciones, si quiere vaya a buscarlos, aqu lo
espero, al fin que desde esta posicin, mi paciencia es infinita (lo
cual, dicho sea de paso, me lleva a profundas reflexiones acerca
de lo fieles que son los libros, pero mejor luego le platico de eso).
- If 256 colors detected
De nueva cuenta, si crea un programa para que lo usen en
mquinas que no conoce, probablemente desee que no haya
problemas con la visualizacin de las imgenes. Si usa una
primera pgina de presentacin, con su fotografa en una resolucin de millones de colores, y as destaquen sus ojos verde
pistache, no querr que el impacto de su rostro se pierda slo
porque el usuario tiene un monitor viejo y corriente. En esta
seccin del cuadro de dilogo, tal y como dice la traduccin de
doa Chonita, Si 256 colores son detectados, puede optar
por continuar con la aplicacin de cualquier modo, correr una
pgina distinta, o bien, otro programa. La idea es que en esa
pgina, o aplicacin alternativa, tenga imgenes optimizadas
para 256 colores y su creacin no tenga porque verse mal. Si slo
16 colores son detectados, como ocurre con los monitores y
tarjetas de video realmente antiguos, entonces ni se apure, nada
se ve bien en esos equipos.

Las opciones si el programa detecta que slo podemos ver 256


colores en el monitor son: 1) Correr el programa y la primera
pgina de cualquier modo; 2) Ejecutar otro programa; 3)
Ejecutar el mismo programa, pero otra pgina. En las cajas de
texto deben indicarse los nombres de las alternativas.
30

Cmo hacer Cd's Multimedia


- Style
El Estilo no se refiere a que su programa deba a estar a la moda
con lo ltimo de Versace o Armani*, sino al comportamiento de
la interfaz respecto a los dems programas. Always on top
quiere decir que su programa se va a abrir, y mantener, encima
de las dems ventanas. Es decir, creara un programa abusivo,
alevoso, egosta y protagnico. Prubelo, se sentir bien al ver
que ni Word o Excel, hijos del monopolio, pueden ponerse
enfrente de su creacin.
La segunda opcin, por el contrario, mantendr su aplicacin
sobre el escritorio y por ms que le ruegue, no ocupar un lugar
de primera fila. Es pues, el caso contrario, un programa apocado,
tmido e inseguro que slo se ver cuando todo lo dems est
cerrado o minimizado. De verdad quiere eso para sus hijos
intelectuales?
Si quiere crear programas sin patologas de ningn tipo, que
tengan una relacin normal con sus pares computacionales,
simplemente no elija ninguna de las dos opciones.
Finalmente, la tercera opcin sirve para que el programa grabe
en el registro de Windows su ltima posicin en pantalla, de
modo que se mantenga igual en la siguiente ejecucin. Esto es
til en programas que sirvan como barras de herramientas y que
el usuario ha ubicado en algn lugar de su preferencia en el
monitor. Sin embargo, recuerde que debe darle un nombre
singular al programa en la caja de texto, para que se distinga de
otros programas en el registro.

La primera opcin crea un


programa abusivo, la segunda
uno tmido, la tercera graba en
el registro la ltima posicin del
programa en pantalla.

*Los que nos vestimos con ropa de los tianguis, ni nos preocupamos por eso. Tal vez
nos estn vedados algunos crculos, pero ah! qu felices somos por no sufrir por la moda.
Es usted de los mos amigo(a) lector(a)?

31

Cmo hacer Cd's Multimedia


- Background Mode
Las opciones de esta seccin sirven para ocultar todo el
escritorio de Windows mientras su programa se est ejecutando.
El fondo puede ser un color especfico o una imagen cualquiera,
aunque suele ser alusiva al tema de la aplicacin. Esto es til si
queremos que el programa concentre toda la atencin de quien
ve el monitor, como ocurre con programas multimedia dirigidos
a los nios.
Activando la primera opcin,
quedan disponibles las dems. Si
va a crear un programa multimedia
rico en contenido, no se inhiba y
qutele toda la atencin a lo
dems. La segunda opcin impide
que funcione la combinacin de
teclas Alt-Tab para cambiar a otros
programas.
Como ya sabe, la carpeta permite
elegir una imagen como fondo del
escritorio para toda la aplicacin.

- Display Resolution
Esta opcin modifica la resolucin de la mquina para ajustarla a la de la aplicacin. Algunos programas multimedia suelen
hacer esto para cambiar la visualizacin de las imgenes a 640
x 480 (que se veran muy pequeas en monitores de mayor
resolucin). Sin embargo, hay que considerar que no todos los
manejadores de video soportan esta opcin y, por tanto, su
programa podra no funcionar en algunas mquinas.
El cambio de resolucin es temporal
durante la ejecucin de su programa, sin
embargo, esta opcin puede experimentar fallos con algunos equipos.
32

Cmo hacer Cd's Multimedia


- Set Process Priority
Aqu se establece la prioridad que el sistema operativo y, por
ende, el procesador, le va a dar a nuestro programa. Cunta
importancia queremos que Windows le brinde a nuestras creaciones? Mucha, normal o poca? Djelo normal, tampoco exageremos si no estamos haciendo una aplicacin para controlar
el trfico areo y las telecomunicaciones del ejrcito.

Cuando no hay ya nada qu decir sobre una opcin del cuadro


de dilogo, lo mejor es, por tanto, no decir nada. Por ello, aqu
no se agregar ninguna palabra ms a las ya dichas.

Como podr ver, muchos de los parmetros generales se


quedarn como estn de forma predeterminada. Otros no sern
seleccionados salvo raras excepciones. Lo importante aqu, por
tanto, tiene que ver con la forma de la interfaz y algunos
elementos adicionales. Practique con ellos para crear las cartulas de lo que sern sus programas, por lo menos en lo que
avanzamos un poco ms.

3.1.1 Iniciar con un templete


Cree merecer un camino ms fcil an? Yo creo que s, por
el slo hecho de haber pagado por este libro, usted se merece
todo bueno, no. Mejor slo una ayudadita para empezar (no se
le vaya a hacer fcil pedir a diestra y siniestra, digo, tampoco
estamos para cumplir caprichos).
El botn Templete de la barra de herramientas muestra las
plantillas disponibles en MMB. Son pocas pero efectivas, pero,
sobre todo, sirven para dar ideas interesantes para que usted
cree sus prximas interfases. cheles un vistazo a todas detenidamente, algunas incluyen asistentes para que usted aada
datos para preelaborar su aplicacin. Le recomendamos, para
calentar motores, que revise el reproductor de MP3 que est al
33

Cmo hacer Cd's Multimedia


final de la lista. Recuerde que para ejecutarlo debe usar el botn
Compile & Run de la barra de herramientas o el men
Project-Run. Si tiene algn archivo MP3 por ah, seguro le
resultar atractivo.

3.2 Pginas
Hemos insistido en varias ocasiones que los programas de
MMB constan de una o varias pginas que se conectan entre s
y que cada una puede cumplir distintas funciones segn los
objetos que contenga y las acciones que se le hayan asignado.
Espero no tener que repetir eso mismo en esta seccin en donde
revisaremos todo lo que necesita saber para trabajar con las
pginas, porque en el momento en el que escribo esto ya pasa
de la medianoche y la verdad no me hara gracia que no lo haya
entendido an, comprenda que ya tengo mucho sueo como
para repetir otra vez las cosas, mejor relalas, pero ms o menos
a la misma hora en la que estoy ahorita, para que quedemos a
mano. Avancemos pues, para que no se me duerma.
Recuerde tambin que cuando hablamos de la interfaz,
mencionamos las Herramientas de pgina y el Panel de
pginas, usaremos ambas cosas, adems del men Page.
Qu page?

3.2.1 Agregar, insertar y eliminar pginas


A menos que se vuelva un experto en la creacin de aplicaciones con MMB, o haya hecho una cuidadosa planeacin previa,
seguramente no sabr con exactitud cuntas pginas va a tener
su programa, por lo que ir aadiendo pginas conforme vaya
diseando. Para agregar una pgina a nuestros programas,
usamos el men Page-Add Page o el botn Add Page de las
herramientas de pginas. En el Panel de pginas aparecer el
icono de la nueva pgina resaltado, lo que quiere decir que el
rea de trabajo se encuentra ahora en dicha pgina. Observe
tambin que la nueva pgina se llama Page 2, nombre automtico que le da MMB. En breve veremos cmo cambiar el nombre
de las pginas y la utilidad que tiene hacerlo.
34

Cmo hacer Cd's Multimedia


El men o el botn de la barra de
herramientas de pgina, aaden
pginas a la aplicacin, lo cual se
refleja de inmediato en el panel.

Como ningn "maquero", de la secta de Steve Jobs,


me ha perdonado, seguimos con el "skin" de Mac.

La orden Add Page siempre agrega pginas al final. Si


deseamos insertar una pgina entre la 3 y 4, por ejemplo,
entonces podemos resaltar la pgina 4 y usar el men PageInsert-Before, tan claro como que se traduce Pgina-Insertar-Antes, con lo que la nueva pgina queda entre la 3 y 4. Si
seleccionamos la pgina 4 y usamos el men Page-InsertAfter, quedar despus de la 4, pero Ojo! Los nombres automticos que le da MMB continan la numeracin independientemente de dnde se insertan las pginas. Observe cmo quedaron despus de que insertamos lo que acabamos de describir,
cuando ya tenamos 5 pginas.
Para este men, que inserta
pginas antes o despus de la
pgina actual, no existe un
botn en las barras de herramientas. Observe el resultado.

35

Cmo hacer Cd's Multimedia


De modo similar, si borramos las pgina 6 y 7 y luego
insertamos o agregamos ms pginas, stas sern Page 8,
Page 9 y as consecutivamente, aunque hayan quedado vacantes Page 6 y Page 7, pgina borrada, pgina brincada y ni
quin se acuerde de ella, as de triste.
Para borrar una pgina, hay que resaltarla y luego usar el
men Page-Delete Page o el botn del mismo nombre de la
barra con la que estamos trabajando.

Con el men o el botn, la pgina


seleccionada en el panel
desaperecer con todos los objetos
que contenga. Cuidado con el
procedimiento, es irreversible.

3.2.2 Organizar pginas


Cmo queden los nmeros automticos de las pginas es en
realidad irrelevante, por dos razones: primero porque en el
siguiente apartado veremos cmo cambiarle el nombre a las
pginas, con lo que ya no veremos Page 8 antes de Page 6,
sino nombres como Introduccin, o Producto X. En segundo
lugar, porque lo ms importante es que el orden de las pginas
sirva para los fines de la aplicacin, independientemente de
cmo se llamen.
En ese sentido, una vez que haya avanzado en las tareas de
diseo del programa, puede ocurrir que decida cambiar el orden
de las pginas. Eso lo realizamos con el Page Manager, que
es un cuadro de dilogo con la lista de las pginas y los botones
para moverlas.
A qu no adivina cmo abrir dicho cuadro de dilogo? Qu
brbaro, le atin! Con el men Page-Page Manager. Tambin encontr el botn que sirve para lo mismo? S? Vaya, su
habilidad me tiene asombrado, anda usted verdaderamente
irreconocible.
De todos modos, mi obligacin es mostrrselo grficamente:
36

Cmo hacer Cd's Multimedia

Botn y men para abrir el


Administrador de pginas, el cual
es un cuadro de dilogo para,
fundamentalmente, organizarlas.

La va ms sencilla para cambiar


de orden las pginas es usar este
administrador, tambin podemos
copiarlas, insertar nuevas y
eliminarlas. Uselo y no divulgue
quin le explic.

Finalmente, y en contraste con la sagacidad que ha mostrado


en los ltimos 2 minutos, le va una obviedad: para ir a una pgina
especfica, basta con hacer clic en el icono correspondiente del
Panel de pginas (como usted est echando tiros en este
momento, seguro ya se haba dado cuenta de esto). Alternativamente, para ir a la pgina siguiente o a la anterior, usamos los
botones Next page y Previous page.
No se porqu sospecho que son los dos botones ms
olvidados de las barras de herramientas de MMB
Quin los va a usar? Seguro por eso los pusieron
juntos, para que se acompaen en su tragedia.

3.2.3 Propiedades de pginas


Que comience algo de accin. Con el men Page-Properties
se abre el cuadro de dilogo que nos permite establecer las
propiedades de la pgina seleccionada. Recuerde que hay un
botn para la misma orden entre las herramientas de pginas.
37

Cmo hacer Cd's Multimedia

Como ya sabe, hay dos maneras de


abrir los distintos cuadros de dilogo
que tiene el programa, los cuales,
dicho sea de paso, son el camino para
la absoluta mayora de las funciones
de MMB. En este caso, abrimos el
cuadro de propiedades de la pgina,
donde podemos ya comenzar a
programar y configurar algunas
acciones. Estudimoslas.
Nombre de la pgina

Cdigo que se
ejecuta al entrar
la pgina

Forma del cursor

Track de CD-Audio o
archivo de sonido que
se escucha cuando
entra la pgina

Configuracin
del fondo.

Efecto de transicin.

En la caja de texto llamada Label, escribimos el nombre que


deseemos dar a la pgina, eso y que soy inocente es lo nico que
dira aqu si estuviera frente a un juez.
38

Cmo hacer Cd's Multimedia


Como ve, los nombres de
pgina no tienen que ser
"Page 1" o "Page 2", as
personaliza su aplicacin.

Default es la forma que tendr el cursor cuando est sobre


la pgina durante la ejecucin. Por qu se llamar as? No me
parece un nombre adecuado para la lista desplegable,debera
llamarse "Cursor", pero quin sabe que pasaba por la cabeza de
Don Romn Voska cuando dise esto en fin. El caso es que
sera interesante que probara con las distintas posibilidades de
esta opcin, que le dar un detalle de distincin a su programa.

La forma que el cursor tendr al pasar sobre la


pgina, durante la ejecucin del programa, se
selecciona en esta lista. Inclusive, podemos
seleccionar un cursor personalizado, de alguna
librera de cursores. Los archivos de cursor
suelen tener la extensin ".cur" y en el CD-ROM
hay varios de ellos, es cuestin de que los
busque. En tanto, observe el resultado sobre
una ventana de aplicacin vaca.

Aqu nos limitamos a crear una


interfaz pequea, muy pequea,
seleccionar el cursor de las
propieades de pgina y ejecutarlo
con "Compile & Run".

Background es el fondo de la pgina, puede tratarse de un


archivo de imagen cualquiera, o de aquella que hayamos establecido para la pgina maestra, que veremos en el apartado
siguiente. Si no usamos ninguna imagen, podemos especificar
un color de relleno simplemente.
39

Cmo hacer Cd's Multimedia


La imagen de fondo de
la pgina maestra se
copia a la actual

Alternativamente a una
imagen, podemos usar un
color de fondo

Como sabemos, con la carpeta podemos


seleccionar un archivo de imagen, el siguiente
icono es para eliminar alguna existente. Si el
cuadro "Tile" est activado, la imagen se
repetir como mosaico hasta cubrir la pgina.

Lgicamente, puede haber un color o imagen distinta por


pgina, lo que le dara sentido a la seccin Page Transition,
que es el efecto de transicin con el que va a aparecer la pgina
siguiente, concepto muy conocido por los usuarios de PowerPoint.

Los efectos de transicin disponibles estn


en la lista desplegable; en el cuadro
"Delay" establecemos el tiempo de dicho
efecto en milisegundos. Recuerde que no
necesariamente debe establecer algn
efecto para cada pgina, menos an si el
cambio de una a otra va a estar determinada por las acciones del usuario. Finalmente, busque en el CD-ROM el archivo
"imgenes", que ilustra de manera sencillla
distintos efectos de transicin.

Ahora un poco de cultura. Richard Wagner, msico alemn


que compona peras y otras piezas que duraban horas y horas
y horas, invent el Leit Motiv, que consiste en la asociacin de
ciertas notas musicales a cada personaje de sus obras. Cuando
40

Cmo hacer Cd's Multimedia


el protagonista, o el malo, aparecan en escena, cierta tonada
que los distingua era ejecutada por los msicos. Ese truco es
muy socorrido en el cine nunca se ha fijado en la msica de
fondo cuando hace su aparicin Darth Vader, Hanibal Lecter o
Indiana Jones?

Wagner naci el 22 de mayo de 1813 y fue un genial msica alemn. Compuso


mltiples peras entre las que destaca "Los anillos de los nibelungos". Nunca
program computadoras porque no existan, sino, quin sabe... En el CD busque
el archivo llamado "Wagner" y disfrute de "La cabalgata de las Valquirias".

Y este rollo qu diablos tiene que ver con lo que estamos


estudiando? Bueno, no mucho, slo que usted puede hacer que
se ejecute determinado archivo de sonido con cada pgina, es
decir, su Leit Motiv, por llamarlo elegante, cultamente.*

El sonido que acompaar


la entrada en escena de la
pgina puede ser un
archivo o un track de un
CD-Audio. Los archivos
pueden ser MP3, WAV,
OGG, MID, etctera.
Reproduccin cclica.
* Lo autorizo a que en su prxima reunin mencione los datos que le acabo de dar con
el nico afn de lucirse. No necesita mencionar la fuente que por m no hay problema.
Ahora que si lee toda la biografa de Wagner y le da por contarla con aire de enterado, pues
habr encontrado la mejor manera de disolver dicha reunin.

41

Cmo hacer Cd's Multimedia

Observe la variedad de formatos que MMB es capaz de ejecutar


en su intento de ser tan verstil como Wagner.

De Wagner decan que todo lo haca frenticamente, que la


exaltacin era lo normal en su vida. En una ocasin areng a la
batalla a los soldados desde un campanario, a riesgo de recibir
una bala y bajo el grito de "No teman por m, soy inmortal". Vaya,
lo que es la genialidad se imagina?

3.2.4 Pgina Maestra


La pgina maestra, como se comprender fcilmente, es un
tipo especial de pgina que no forma parte en s de la aplicacin.
Sin embargo, todos los objetos que contenga aparecern en
todas las pginas, debajo de sus respectivos objetos. Para ver la
pgina maestra tenemos disponibles, de nueva cuenta, un botn
de la barra y una opcin de men.
El lugar lgico donde encontrar la
pgina maestra ser en el men
"Page", ni modo que en el men
"File". El botn est, por supuesto,
en las herramientas de pgina.

42

Cmo hacer Cd's Multimedia


Como ya dijimos, lo que coloquemos en esta pgina ser parte
de todas las pginas de la aplicacin. Por ejemplo, su imagen de
fondo ("Background"), que se establece a travs de su cuadro
de dilogo de propiedades.

A diferencia de las pginas


comunes, para abrir las propiedades de la pgina maestra, hay que
tenerla seleccionada y luego usar el
men o el botn de la barra.

En realidad, las propiedades


de la pgina maestra se
limitan a definir el color o el
archivo de imagen del fondo.

En sntesis, podemos decir de la pgina maestra que es el


lugar ideal para poner elementos que van a repetirse en todas las
pginas, lo que ahorra tiempo y trabajo. Adems, se generan
archivos .EXE ms pequeos, lo que hace su ejecucin ms
rpida, ahorrando recursos de su computadora y disminuyendo
la posibilidad de errores, lo que aumenta la eficiencia. Todo es
mgico y maravilloso, no tendremos ya ms problemas de
inseguridad, ni estancamiento econmico, nuestro presidente
dejar de cometer torpezas, se abrir un futuro de prosperidad
y y No, esperen, tampoco. Slo se trata de las pginas
maestras, no de la solucin de todos nuestros males.
43

Cmo hacer Cd's Multimedia


3.2.5 Capa maestra superior
La capa maestra superior (Master top layer) es otra pgina
especial. Todos los objetos que insertemos ah estarn presentes en todas las pginas, pero ahora por encima de todos los
objetos. Igual que la pgina maestra, es un buen lugar para
colocar objetos comunes a toda la interfaz de la aplicacin, pero
esta nos asegura que, ni por error, ningn elemento cubrir los
objetos de la Master top layer.
Men y botn para poner en el rea
de trabajo la capa maestra superior.

Esta capa no tiene cuadro de dilogo de propiedades, si no me


cree, bsquelo, si lo encuentra, me manda un mail.

3.3 Uso de objetos


Uff, ahora s, hablemos de lo interesante del asunto. Lo que
realmente le dar vida a su aplicacin multimedia, son los objetos
que inserte en las pginas y las acciones que les determine.
Tiene dos caminos para insertar objetos: seleccionar el tipo de
la barra de herramientas de la izquierda o de la lista del men
Object. En algunos casos, como los objetos de imagen, la
msica o el video, deber leer el archivo a insertar. En otros,
como los objetos de texto, los rectngulos o los efectos especiales, deber crear el objeto en su pgina usando el cursor, igual
que en un programa de dibujo. Como sea, el procedimiento no es
nada de otro mundo.*
*Y si fuera de otro mundo, el asunto sera interesantsimo. Se imagina cmo sera
el software extraterrestre? Estar basado en Windows, en Linux o en Mac? De por s
las fantasas relacionadas con ovnis no pueden dejar de antropomorfizar a los supuestos
visitantes de otros mundos. Si alguien dijera que vio una computadora de las estrellas,
jurara que incluye Internet Explorer.

44

Cmo hacer Cd's Multimedia

Men

Barra de Herramientas

Como podr corroborar fcilmente, le hemos


hecho trampa, ya que esta misma imagen la
usamos en la pgina 16 (relala, por favor).
De todos modos, le rogamos no arrancar esta
pgina del libro, pues lo que est a la vuelta
s es til. Mientras, averige cmo se llama
cada objeto comparando men y barra.

45

Cmo hacer Cd's Multimedia


Como mencionamos, en algunos casos
el objeto se crea directamente en MMB,
como los objetos de texto, donde slo
pulsamos el botn y luego hacemos clic
en el lugar de la pgina donde va a
quedar el objeto. Observe la forma del
cursor. En otros casos, como las
imgenes, habr que leer un archivo.

El objeto de texto, ya
creado y seleccionado.

En el captulo 4 revisaremos en detalle todos los objetos que


podemos insertar en los programas de MMB. Aqu slo cabe
mencionar que cada uno tiene un cuadro de propiedades singular, cuyas opciones dependen de sus caractersticas y de las
acciones que podemos asignarle. Dicho cuadro se abre haciendo doble clic en el objeto o usando el men Object-Properties.

Con el men o doble clic en el


objeto, se abre su cuadro de
dilogo de propiedades. Cada
cuadro es distinto, segn el objeto
y los revisaremos pronto. En
tanto, ni se desgaste usando una
lupa para ver este cuadro de
dilogo, slo es una ilustracin.
46

Cmo hacer Cd's Multimedia


3.3.1 Organizacin de objetos
El trabajo con objetos sobre la interfaz es en realidad simple. Igual
que muchos otros programas, seleccionamos un objeto haciendo
clic en l, luego podemos redimensionarlo arrastrando alguna de
sus anclas (pequeos recuadros negros en el permetro del objeto)
o bien tomarlo con el ratn y moverlo de lugar. Quien haya trabajado
con algn programa como PowerPoint sabe a lo que me refiero.
Incluso, son las mismas tcnicas de la absoluta mayora de los
programas que trabajan con elementos grficos, como CorelDraw,
las herramientas de dibujo de Word y muchos otros.
Arrastrando el ancla de un objeto, podemos redimensionarlo, igual que
en la mayora de los programas, por lo que no se porqu lo mencion.

El men Arrange nos proporciona algunas herramientas


para organizar los objetos en nuestra interfaz, el cual es particularmente til, ya que la herramienta de Zoom, vital en programas
como CorelDraw o Autocad, es muy limitada en este programa.

Para la construccin de nuestra interfaz,


es indispensable disponer de diversas
maneras de los objetos que contiene.
Para organizarlos disponemos de las
distintas opciones del men "Arrange",
que revisaremos enseguida.

47

Cmo hacer Cd's Multimedia


El men "View-Zoom"
abre una ventana que
amplifica las zonas donde
pasa el cursor, pero su
ayuda es muy relativa
para organizar los
objetos, por lo que
insistimos: use mejor el
men "Arrange".

El men Arrange-Nudge nos permite desplazar con precisin los objetos. A su vez, con Arrange-Align podemos alinearlos sin problemas y con Arrange-Order decidimos cul va
adelante y cul va atrs, para que nadie se pelee.

El men "Arrange-Nudge" desplaza el objeto u objetos seleccionados pixel por


pixel, que es la unidad mnima en pantalla. La seccin inferior, como puede ver,
desplaza los objetos de 10 en 10 pixeles. Observe tambin que estos desplazamientos estn disponibles con las flechas y la tecla "CONTROL".

48

Cmo hacer Cd's Multimedia

Qu objeto va adelante? A quin mandamos para atrs? Es un men


simple, pero sumamente til. Tngalo en cuenta antes de que un objeto
quiera sobreponerse a los dems con tal de figurar en la interfaz.
Y por ltimo, a formarse bien derechitos. Ni
modo que una fila de botones, por ejemplo, no
estn bien alineados. Vamos a hacer aplicaciones multimedia con apariencia profesional, no
cosas chuecas o mal hechas...

Aparte de estas herramientas para el manejo de objetos,


tenemos el "Administrador de Objetos", que es el panel que
est a la derecha de la pantalla y del que ya habamos hablado
en el captulo dedicado a la interfaz.
El "Administrador" es la lista de todos los objetos que hemos
colocado en nuestro proyecto. Dicha lista podemos ordenarla
segn el tipo de objeto e incluye un previsualizador de imgenes.
Adems, los iconos que estn a la izquierda de cada objeto,
nos indican si el objeto est o no visible y si forma parte de un
grupo de objetos, tal como veremos enseguida. En realidad, con
poca prctica podr manejar el administrador facilmente.
49

Cmo hacer Cd's Multimedia


El botn superior
clasifica la lista segn
el tipo de objeto.
La lista se
compone de los
nombres de los
objetos.

El icono de la
izquierda muestra el
tipo de objeto. El ojo
indica si el objeto
est visible o no.

El botn inferior
abre el
previsualizador
de objetos.

Los objetos que


forman parte de un
grupo tambin se
resaltan como tales.

Finalmente, debe saber que los objetos pueden agruparse


para trabajar ms fcilmente con ellos (moverlos, alinearlos
respecto a otros grupos, etctera). Para eso seleccionamos los
objetos que formarn parte del grupo haciendo clic en cada uno
al tiempo que pulsamos SHIFT, luego pulsamos la combinacin
de teclas CTRL-G. El administrador refleja de inmediato que se
trata de un grupo, el cual puede presentar desglosado con sus
distintos componentes, tal como ya vimos en la imagen anterior.

El men "Arrange" tambin


incluye opciones para manejar
los grupos de objetos, entre
ellas cmo aadir un objeto a
un grupo o quitarlo.

50

Cmo hacer Cd's Multimedia


Si hacemos clic en un objeto que forme parte de un grupo, todo
el grupo quedar seleccionado, En cambio, puede hacer clic en
ese objeto en el administrador, con lo que quedar seleccionado
en la interfaz y podr trabajar con l sin necesidad de desagruparlo.
Para desagrupar objetos usamos la combinacin de teclas
CTRL+U o el men Arrange-Group Manager. El cuadro de
dilogo que aparece nos sirve para crear o deshacer grupos. Su
uso es realmente simple y hoy ando algo lento, no se me ocurre
ninguna gracejada que escribir, puros albures que no puedo
compartir porque hay que mantener el nivel, aunque cueste ms
trabajo. A ver si le mando un mail a Ponchito, para que me
aconseje.*

El administrador de grupos muestra los grupos formados y los objetos


que no forman parte de ningn grupo. Tan simple como eso y como ya
dije que yo tambin ando simple, hasta aqu lo dejamos.

En realidad, no creo que a Ponchito le entusiasme mucho ayudar a un pobre autor de libros
de computacin querindose hacer el chistoso. Lo que si es cierto es que durante los das que
dur la redaccin de este trabajo, la mayora de las veces anduve medio sope.

51

Cmo hacer Cd's Multimedia


3.3.2 Ayudas al diseo
Adicionalmente a las herramientas del men "Arrange", MMB
cuenta con un par de elementos adicionales propios de programas de diseo como Autocad o CorelDraw: las lneas gua y las
rejillas de puntos. Obviamente, ambas cosas no sern parte del
programa final y slo sirven para facilitar la disposicin de los
objetos en la interfaz.
La rejilla no slo se activa con el men "Edit-Snap to Grid",
sino que, adems, hace que los objetos se ajusten a ella al
insertarse o desplazarse.

El men activa la rejilla


sobre la interfaz y hace
que los objetos se
ajusten a ella.*

Un grupo de gente, de la secta virtual que se rene por Internet llamada "Sigamos a
Bill Gates, el salvador y digamos NO a Steve Jobs, el falso redentor", cuando vieron
el borrador del libro me dijeron que ya era demasiado el desagravio a los "maqueros",
por lo que me conminaron "amablemente" a volver al "skin" de Windows XP de MMB, o
lo lamentara mucho. Prefer no discutir con ellos y cambiar de Skin.

52

Cmo hacer Cd's Multimedia


La distancia entre los puntos de la rejilla, en pixeles, se establece
con el men "Edit-Edit Grid". Alternativamente, puede usar el
men "Tools-Grid Settings...", en ambos casos el cuadro de
dilogo que se abre es el mismo y usted dir "para qu 2 mens
que llevan al mismo cuadro de dilogo?" y yo le dire: "No lo s, yo
me pregunto lo mismo...Algn da Romn Voska lo dir...".
La distancia horizontal y vertical de los puntos en pixeles se
especifica en las cajas de texto. Traducira "Grid Settings", pero
Doa Chonita no est, fue a comprar masa para las quesadillas...

Por su parte, las lneas gua pueden aadirse a la pgina de


dos maneras: arrastrando el cursor desde las reglas horizontal o
vertical de la interfaz, como puede verse aqu:

Ubicamos el cursor en la regla,


hacemos clic y, sin soltar, arrastramos
la lnea gua hasta la pgina del
proyecto. Observe que ya habamos
hecho eso con una gua vertical.

O bien, usando el men "Edit-Edit Guides...", que abre un


cuadro de dilogo para indicar la ubicacin exacta de cada gua.
53

Cmo hacer Cd's Multimedia

El cuadro de dilogo permite ir aadiendo fcilmente


lneas guas horizontales o verticales en la pantalla.

3.4 Acciones
Las acciones que podemos asociar a los objetos estn clasificadas en cuatro categoras en MMB. Las tres primeras estn diseadas para generar nuestro programa multimedia sin necesidad de
escribir un pice de cdigo, es decir, sin escribir una lnea de
programa, cosa que, las ms de las veces, nos da mucha flojera. La
cuarta categora nos da acceso a todas las dems, es ms verstil,
aunque s implica escribir pequeos segmentos de cdigo que
llamamos scripts, pero no se espante, en la mayora de los casos
eso no ser necesario o, de serlo, ser muy simple, a menos que
desee desarrollar cosas realmente complejas y se convierta usted
en el Wagner* de los programas multimedia, frentico, incansable
y con mucho, mucho talento.
Como ya mencionamos, el acceso a esas acciones es a travs
del cuadro de dilogo de propiedades del objeto seleccionado.
Seguro ya vio la seccin de botones a la que nos referimos,
llamada Actions, y se le queman ya las manos por usarlos.
Y si se apellida como yo, Gonzlez, correr el riesgo de que le digan "Luis, el wagnerito,
Gonzlez" y no es que tenga mucho talento, sino por lo exaltado.

54

Cmo hacer Cd's Multimedia


Seccin de acciones de un objeto.

Comandos externos y acciones de pgina.

Acciones de sonido.

Scripts.

Interaccin con otros objetos y video.

Vemos estos botones con calma, uno por uno.


- External Commands y Page Actions. Cmo lo traduce?
Comandos Extranjeros y acciones del General Page?*. Pues
no, es comandos externos y acciones de pgina, tal y como nos
ensea Doa Chonita, nuestra traductora de cabecera, que ya
volvi de la masa y se dispone a cocer la flor de calabaza. Tambin
aprovecha y nos recuerda que hoy no va a hacer quesadillas de
picadillo porque ya es vigilia y no se puede comer carne.
Pero volvamos a nuestras acciones: al pulsar el botn aparece el
cuadro de dilogo siguiente.

El cuadro de dilogo tiene una


lista de las acciones que podemos asociar al objeto cuando
hagamos clic en l. En algunos
casos, el comando requiere la
especificacin de algn archivo
externo o una direccin de
internet. La tercera caja de texto
nos sirve para aadir parmetros
adicionales.
*Ese Bush nos tiene espantados a todos, a ver si ya lo sacan de una vez en la prxima eleccin.

55

Cmo hacer Cd's Multimedia


La accin a realizar
puede seleccionarse de
la lista desplegable.
Revsela con cuidado, la
mayora son
autocomprensivas, pero
lo vamos a revisar todo
ms adelante.

Como su nombre lo indica, los comandos de la lista son


fundamentalmente de dos tipos, los que sirven para ejecutar
programas o comandos externos al programa en s y los que son
para ir a alguna pgina especfica de este mismo programa,
aunque aqu se aaden, adems, algunos comandos para el
control del audio.
Algunos de estos comandos requieren de parmetros adicionales. Por ejemplo, cuando elegimos Run another Project estamos
indicando que deseamos correr otro programa de MMB. En ese
caso, podemos especificar si se ejecuta en la misma ventana o una
ventana nueva e independiente del programa actual.
Como veremos, este comando
sirve para ejecutar archivos de
MMB con extensin ".mbd". En
la segunda caja indicamos la
ubicacin del archivo y en la
tercera si se usa la misma
ventana u otra nueva con
"NEW_WINDOW".
56

Cmo hacer Cd's Multimedia


La caja de texto Path sirve para indicar la ubicacin del
archivo externo que va a utilizar el comando. En el siguiente
apartado nos vamos a referir a las rutas relativas, que sirven para
evitar errores en la ubicacin de archivos cuando se ejecuten los
programas MMB en otras computadoras.

Esto extrao que ve aqu, que dice "<SrcDir>", es una ruta relativa
y ser motivo de estudio ms adelante. En tanto, considere que el
botn de los puntos suspensivos sirve para abrir un cuadro de
dilogo para ubicar el archivo a especificar.

Cuando seleccionamos el comando Browse Web, la caja de


texto Path requiere el URL del sitio de Internet a mostrar.

La caja "Path", por tanto, no slo sirve para sealar archivos, tambin la usamos
para indicar direcciones de internet. Cuando este comando entra en accin, al
hacer clic en el objeto, se abre el navegador de internet predeterminado de la
computadora. De modo similar, cuando usamos el comando para mandar un
correo electrnico, se abre programa de correo predeterminado.

Respecto a los comandos para la ejecucin de Audio, si lo


observa con cuidado, no requieren grandes explicaciones. A un
objeto podemos ponerle el comando Audio Open y en Path
definimos el archivo correspondiente (un .MP3, por ejemplo),
57

Cmo hacer Cd's Multimedia


luego, a otro objeto, le asignamos el comando Audio Play, para
que se ejecute la msica. As, sucesivamente, asignamos Audio
Stop, Audio Pause, etctera. Luego probamos el resultado.
Si no quiere hacer la prueba usted solo(a), busque entonces el
ejemplo Audio-bsico que se incluye en el CD.

Revise el programa de ejemplo "audio-bsico", cada objeto tiene


asignados los comandos externos necesarios para la reproduccin de
un archivo de sonido en formato OGG, haga clic en ellos.

La relacin completa de comandos y sus parmetros sern


motivo de estudio y profunda reflexin en la segunda parte de
este ttulo, que muy pronto podr adquirir en las libreras a un
precio increble.*
- Interactions with other objetcts Interaccin con otros
objetos. Utilizando este cuadro de dilogo, podemos hacer que
el uso del ratn sobre un objeto afecte a otro. Para que quede ms
claro, busque el ejemplo llamado Amigos del CD, cuando pase el
ratn sobre un personaje, sabr qu dice, cuando haga clic en l,
sabr lo que piensa. Cualquier parecido con la realidad...
Divirtase con el programa "amigos". Reelabrelo
y hgalos decir lo que
usted quiera...Observe
las propiedades de cada
imagen.
*Je, je... chiste malo. Todos los comandos y su uso son motivo de estudio del captulo 6.

58

Cmo hacer Cd's Multimedia


En el cuadro de dilogo podemos definir acciones sobre otros
objetos durante dos sucesos, cuando el ratn pase sobre el
objeto disparador y cuando hacemos clic en l. En este ltimo
caso, podemos afectar, simultneamente, dos objetos distintos
(o grupos de objetos, es igual).
Botn de interaccin con otros objetos

En la primera seccin del


cuadro de dilogo
establecemos una accin
sobre un objeto especificado que ocurrir cuando
el cursor pase sobre el
objeto actual.
Podemos configurar otras
dos acciones sobre
objetos cuando hacemos
clic en el objeto actual.
De nueva cuenta, hay que
seleccionar la accin de
la lista y abajo el objeto
afectado.

Las acciones sobre los objetos cuando el


cursor pasa sobre elos es la siguiente: conmutar entre ocultar o mostrar objetos, mostrarlos
y ocultarlos paulatinamente, slo mostrarlos,
slo ocultarlos o ejecutar un objeto de cdigo,
que revisaremos ms adelante. Como ya vimos
arriba, seleccionamos la accin y luego el
objeto. Pruebe con objetos simples y usando
todas las combinaciones.
59

Cmo hacer Cd's Multimedia


En el primer caso, cuando pasamos el ratn sobre el objeto,
podemos hacer lo siguiente:
- Que el objeto afectado conmute entre ocultarse o estar visible
(Show/Hide)
- Que se muestre o desaparezca lentamente, lo cual slo es
vlido con mapas de bits a los que les hayamos aplicado la
transparencia Alpha, tema que veremos ms adelante
(Show/Fade out)
- Que el objeto se muestre (Show only); si estaba oculto,
aparecer, si estaba visible, no habr cambios.
- Que slo se oculte (Hide only), aqu se aplican las mismas
reglas que el caso anterior.
Como ver, estoy omitiendo referirme a la ltima accin de la
lista, pero no me estoy haciendo pato con ella, lo que ocurre es
que la ocasin me da para hablar de modo especial de los objetos
Script, que son segmentos de cdigo que podemos poner en
nuestra programa. No se ven, pero pueden realizar diversas
acciones si se ejecutan en casos como ste, pasando el cursor
sobre el objeto disparador. De los Script tambin hablaremos en
el captulo 6.
Igual que los dems casos,
cuando seleccionamos la accin
RunScript, debemos indicar el
objeto a que nos referimos, en
este caso un Script llamado
"MiScript". Y si repetimos tantas
veces la palabra Script, es para
que se vaya familiarizando con
ella: Script.

Por otra parte, observe que la lista de acciones, cuando


hacemos clic sobre el objeto disparador, incluye ya no slo el
efecto de mostrar u ocultar objetos, sino, adems, controles para
la reproduccin de video, los cuales son muy similares a los de
audio que vimos en el apartado anterior.
60

Cmo hacer Cd's Multimedia

La lista ahora incluye comandos


para control de video, tan simples
como los que ya usamos para
control de audio.

Como son posibles dos acciones cuando hacemos clic, podramos, por ejemplo, que el objeto de video aparezca (suponiendo que estuviera oculto), al mismo tiempo que comienza la
reproduccin del video.

Esta imagen es del programa que ilustra lo anterior. Bsquelo


en el CD con el nombre "Interaccin-video".
- Sound Actions. Acciones de sonido. Qu venga la
msica! Todos a bailar, por favor. Aqu el cuadro de dilogo nos
permite designar, y ejecutar, archivos de sonido durante dos
sucesos, cuando el ratn pase sobre el objeto y cuando se hace
clic en l. El resto es historia y que no pare la msica! (Haga una
pausa y smese a la fiesta, igual que yo).
61

Cmo hacer Cd's Multimedia


Icono para activar acciones de sonido.
En el cuadro de dilogo,
simplemente debemos
especificar los archivos de
sonido que se reproducen
cuando pasamos el cursor
sobre el objeto y/o cuando
hacemos clic en l.
Recuerde que el botn con los puntos
suspensivos nos permite buscar un archivo en
el disco duro. El otro botn seala a archivos
incrustrados, lo que se explica ms adelante.

En el CD-ROM encontrar el
archivo llamado "Abailar". El sonido
lo ponemos nosotros, la accin de
bailar la pone usted, as que
levntese y tire un rato la polilla.

- Script. El cuarto botn abre el editor de Script, para escribir


cdigo y programar las acciones que se nos vengan en gana.
Como ya dijimos, ese tema nos va a ocupar en el captulo 6, pero
el cuadro de dilogo es tema de esta seccin, veamos.
62

Cmo hacer Cd's Multimedia


Al pulsar el botn de la seccin de acciones, se
abre el cuadro de dilogo para escribir Script's.

"Script
Wizard"

Editor
"ampliado".

Eventos a los que


se asocia el cdigo.

Sin embargo, el que no conozca el lenguaje de script de MMB,


no significa que el cuadro de dilogo deba quedar en blanco, ni
mucho menos. Podemos desarrollar cdigo sin saber programar. Eso es parte de las maravillas de este programa, pues
incluye lo que se llama Script Wizard, un asistente para
generar script's de manera sencilla sencilla? Sencillsima!
Como podr observar en el cuadro de dilogo, podemos
escribir dos script para el objeto, uno que se ejecutar cuando
pulsemos el botn del ratn y uno ms cuando dicho botn sea
liberado. Como son dos momentos casi simultneos y que muy
difcilmente necesitamos separar realmente, podemos indicar
todas las acciones en el script de la ceja Mouse Up (soltar el
botn), que es lo ms usual. As que con esa ceja activa,
podemos pulsar el botn del Script Wizard, que abrir un
nuevo cuadro de dilogo
63

Cmo hacer Cd's Multimedia


Lista de comandos para escribir
Scripts, slo hay que seleccionar.

Parmetros adicionales. Esto


depende del comando en s.

Explicacin relativa al comando elegido,


en ingls, lstima que usted no tiene la
asesora de Doa Chonita como yo.

Nombre del objeto sobre


el que acta el comando.

La caja Action del Script Wizard es una lista de todas las


funciones disponibles. Cuando estas funciones requieren un
nombre de archivo, ruta en el disco duro, URL, nombre de objeto
o algn dato similar, se activa la caja siguiente. Cuando hace falta
algn parmetro adicional, entonces se activar la tercera caja
de texto. Eso depende del comando seleccionado. A su vez, en
la seccin de la derecha, obtenemos ayuda de la funcin elegida,
lo que hace muy fcil ir aadiendo instrucciones al Script del
objeto sin necesidad de aspirinas.
Pongamos un ejemplo bsico, en lo que llegamos al captulo
6 y para que no se desespere.
Supongamos, por hacer algo cualquiera, que queremos que
el programa se minimice al hacer clic en el objeto, luego que haga
una pausa de 3 segundos, presente un mensaje en pantalla
dicindole al usuario que lo restaure de la barra de Windows y
luego, finalmente, termine su ejecucin. (S, s, ya se que va
usted a decir Y eso para qu diablos sirve? y yo le dir muy
tranquilo: Para nada, es un ejemplo. Con lo que podr descubrir
cmo es uno cnico, por eso ese programa podr encontrarlo en
el CD bajo el nombre de Intil).
Veamos cmo puede irse construyendo el Script.
64

Cmo hacer Cd's Multimedia


En el "Script Wizard"
seleccionamos el comando
a utilizar. En este caso no
hay nombres de objeto ni
parmetros adicionales, por
lo que pulsamos "OK" y lo
cerramos. En el editor de
Script aparece el cdigo
con la sintaxis correcta.

Volvemos a pulsar el "Wizard" para


aadir nuevos comandos.

Ahora seleccionamos el comando para hacer una


pausa y la establecemos en 3 segundos.

65

Cmo hacer Cd's Multimedia

En el editor vemos ahora el segundo


comando con el parmetro incluido,
sin errores de sintaxis.

De nueva cuenta, pulsamos


el botn del "Wizard".
Ahora seleccionamos el
comando para generar una
ventana de mensaje y
agregamos el parmetro
adecuado.

Con este mtodo vamos


aadiendo comandos
sucesivamente, hasta
construir el script del
programa completo.

66

Cmo hacer Cd's Multimedia


Es o no cierto que de este modo podemos ir aadiendo
funciones de la lista que se ejecutarn secuencialmente en el
Script? Es verdad que eso simplifica la elaboracin de cdigo
sin que necesariamente sepa programar? No es cierto que, si
acaso, lo nico que necesitara es saber qu quiere hacer y que
parmetros adicionales hay que aadir y que, si se sabe un poco
de ingls, la ayuda necesaria est ah mismo?
Que conste que yo no afirm nada, slo pregunte, todas las
respuestas las dio usted mismo, lo que quedar asentado en un
acta que est haciendo el ministerio pblico y cuyo contenido
podr ser usado en su contra, as que usted sabe qu declara.
Los que ya conozcan el lenguaje de MMB pueden, en cambio,
usar el editor de Scripts, que es una ventana un poco ms grande
y que incluye los clsicos botones para copiar y pegar segmentos
de cdigo y, an ah, tambin est disponible el Wizard, como
puede observar.
Al pulsar el botn, podemos ver la
ventana ampliada del editor de Script.

Observe que aqu estn disponibles botones para


copiar y pegar cdigo, as como para abrir y grabar
scripts como archivos de texto externos.

Arrastrando el borde, podemos ajustar


el tamao de la ventana del editor.
67

Cmo hacer Cd's Multimedia

No hemos mencionado que en el editor de Scripts podemos hacer clic con


el botn derecho del ratn, lo que nos dar un men secundario que
tambin incluye todos los comandos del lenguaje de Scripts de MMB,
incluso clasificados por categoras, adems de otras opciones.

3.5 Generacin de CD-ROMs autoejecutables


El men Project nos sirvi para iniciar nuestro trabajo, a
travs de la opcin Project Settings, ahora nos va a servir para
cerrarlo, utilizando sus dems comandos, ya que nos sirven para
hacer algunos ajustes necesarios para garantizar que nuestro
programa no va a tener problemas al usarse en otras
computadoras.

3.5.1 Convertir texto a mapa de bits


El primer factor a considerar es el hecho de que las
computadoras en las que su programa sea ejecutado, no necesariamente tienen los tipos de fuentes instalados que usted us
en su programa. Eso podra afectar la presentacin del mismo y
68

Cmo hacer Cd's Multimedia


puede echar a perder tan bella obra de arte. Si en su programa
usted utiliza fuentes como Arial o Times New Romn para poner
pequeos letreros o cajas con texto, seguramente no habr
problemas, pero si puso un ttulo con alguna fuente muy singular,
entonces deber convertirla a mapa de bits para que la visualizacin del ttulo no se vea mal.

Las fuentes utilizadas en los botones


son comunes y no implican problemas
de visualizacin. En cambio, las
fuentes del ttulo pueden no existir en
las computadores donde el programa
se ejecute.

El men "Object-Convert to Bitmap"


hace exactamente eso, crea un mapa
de bits a partir de un objeto de texto,
con lo que la visualizacin ya no se ve
afectada por la inexistencia de la
fuente. Sin embargo, aplquelo sobre
un objeto de texto y observe el
administrador de objetos. Ver que se
crea un nuevo mapa de bits, pero el
objeto de texto no desaparece, slo
cambia de nombre y se oculta.
69

Cmo hacer Cd's Multimedia

En el administrador de objetos
podemos ver un nuevo objeto de
mapa de bits, pero tambin que el
objeto de texto se renombra y oculta.

3.5.2 Rutas relativas


En segundo lugar, si el programa utiliza archivos de sonido o
video que, antes de grabar el CD, estn en una carpeta del disco
duro, entonces deber aludir a dicha carpeta de modo relativo,
no absoluto, pues no puede saber si la unidad de CD-ROM de
quien va a ejecutar el programa, es D, E, F u otra distinta.
Adems, deber grabar esos mismos archivos en una carpeta
del mismo nombre en el CD-ROM, para evitar errores.
Para cambiar las rutas absolutas a archivos por rutas relativas
en un programa, usamos el men Project-Path Replace...,
que abre un cuadro de dilogo donde aparecen todas las rutas
absolutas y las herramientas para cambiarlas.
Al abrir el cuadro de
dilogo, podemos
ver las referencias a
todos los archivos
externos usados en
el programa con sus
rutas absolutas. Al
pulsar el botn,
cambian a las rutas
relativas.

70

Cmo hacer Cd's Multimedia

Observe que las rutas a los archivos


ahora son relativas. El significado de
cada tipo de ruta ser dilucidado ms
adelante, no se trata de ningn
misterio del Cdigo Da Vinci.

3.5.3 Integracin de archivos


Otro elemento sobre el que puede decidir antes de compilar su
proyecto de MMB y crear su CD, tiene que ver con la integracin
de los archivos externos al archivo del propio programa. En otras
palabras, el resultado de su proyecto ser un programa con la
extensin .EXE, en cuya ejecucin puede llamar a un archivo
.MP3 de msica que est grabado en el programa mismo, que
resida pues en sus entraas, cual vil monstruo de alien.

Podemos integrar al cuerpo del


programa archivos de cualquier tipo:
imgenes, otros programas, videos,
etctera. Para integrar archivos de
sonido usamos otro cuadro de
dilogo, aunque el principio es el
mismo. Veamos ambos casos.

71

Cmo hacer Cd's Multimedia


Botones para agregar o remover archivos.
Si deseamos presentarle al
usuario un slo archivo de
programa, con extensin
".EXE" y no queremos que
vea ningn archivo
adicional, entonces
conviene integrar todos los
archivos necesarios al
cuerpo del programa
mismo
a travs de este
Lista de
cuadro
de
dilogo y el que
archivos
sirve
para
integrar
archivos
integrados
de sonido. Sin embargo,
observe que aqu mismo se
advierte que la integracin
de muchos objetos
incrementar el tamao del
programa final, lo que
Este cuadro de dilogo incluye adems un botn puede afectar la eficiencia
de su ejecucin.
para escuchar los archivos que se estn integrando.

72

Cmo hacer Cd's Multimedia


Para seguir con el ejemplo, si decidimos integrar el archivo
BARCO.WAV, el cual se escuchaba con una accin de objeto,
entonces tambin deber cambiar la ruta relativa al objeto del
siguiente modo:
<ScrDir>\barco.wav (Ruta relativa que indicamos en los
parmetros de la accin).
<Embedded>\barco.wav (Ruta nueva, que hace alusin al
hecho de que el archivo se haya en el programa mismo).
Se supone, sin embargo, que no es una tcnica recomendable
integrar archivos al cuerpo del programa, porque ms que
acabar como posedo por un alien, lo hara por una ballena. O se
vera como la boa que se comi un elefante en el dibujo de
Antoine de Saint Expery.*
Mientras ms archivos aada (o ms grandes sean stos), el
.EXE se leer y ejecutar ms lentamente. Por tanto, el ejemplo de
aadir un .WAV es malo, pero como buen necio persist en l.
Si acaso, los archivos que conviene integrar al cuerpo del
programa, son pequeas imgenes .JPG, HTML, archivos de
texto, otros programas MMB, si no son grandes, archivos
personalizados de cursor (.CUR), etctera.
Podramos integrar los archivos de fuentes? Me pareci or
que dijo una voz entre la multitud, lo cual me hizo voltear
alrededor espantado, porque no estoy entre una multitud, sino en
mi estudio, lo que me hace pensar que estoy esquizofrnico.
Pero en lo que resuelvo mis patologas, le voy a dar respuesta.
*Cuando era nio, o sea no hace mucho a pesar de mis 40 recin cumplidos, tena
como libro de cabecera "El Principito" de Antoine de Saint Expery. Entre otras cosas,
por mensajes como el del captulo XXIII, disfrtelo y lelo completo, por favor:
Buenos das -dijo el principito.
-Buenos das -dijo el mercader.
Era un mercader de pldoras perfeccionadas que aplacan la sed. Se toma una por
semana y ya no se siente la necesidad de beber.
-Por qu vendes eso? -dijo el principito.
-Es una gran economa de tiempo -dijo el mercader-. Los expertos han hecho
clculos. Se ahorran cincuenta y tres minutos por semana.
-Y, qu se hace con esos cincuenta y tres minutos?
-Se hace lo que se quiere...
"Yo -se dijo el principito-, si tuviera cincuenta y tres minutos para gastar,
caminara muy suavemente hacia una fuente..."

73

Cmo hacer Cd's Multimedia


S, podran integrarse, lo cual sera una solucin distinta a la
de convertir las fuentes en mapas de bits, que vimos apenas en
este mismo apartado. Para ello, hay un mtodo que, al ejecutarse
el programa, instalar las fuentes en Windows antes que cualquier otra cosa. Haga lo siguiente:
- Integre los archivos de fuentes al programa.
- En las propiedades de la primera pgina, hacemos clic en Script
- En el editor de Script, que ya conocemos, escriba el siguiente
cdigo por cada fuente aadida:
InstallFont(<Embedded>\nombre_de_fuente.ttf)
Al ejecutarse el programa, entrar en accin el Script de la
primera pgina, lo que instalar en Windows las Fuentes necesarias para la correcta visualizacin del programa. Sin embargo,
esta historia no tiene final feliz, existen los siguientes inconvenientes:
- Las fuentes tienen copyright, se supone que no puede
distribuir fuentes en sus programas si no tiene derecho a hacerlo,
as que, por lo menos en teora, estara violando la ley.*
- Este mtodo puede mandar un mensaje de error al ejecutarse
en versiones 2000 y XP de Windows si el usuario no es administrador del sistema y tiene derechos restringidos para instalar
fuentes y/o programas, recuerde, a su vez, que estos esquemas
de seguridad pueden cambiar de mquina a mquina en funcin
de si tienen instalados o no los diversos parches que Microsoft
saca constantemente para corregir sus errores, el primer martes
de cada mes, para ser ms especficos.
As que el mtodo anterior parece ms seguro: convertir los
objetos de texto en mapas de bits y usar fuentes comunes para
aquellos casos en donde el usuario deba capturar texto o haya
que presentar texto de prrafo. Arial y Times New Romn casi
nunca fallan. Por cierto, la esquizofrenia ya se fue por que ya no
oigo voces, slo una que me persigue aunque est solo...
Casi todas las fuentes tienen versiones alternativas freeware o shareware y se
distribuyen en Internet en archivos ZIP. Cheque, por ejemplo, el siguiente sitio:
http://spacefonts.8m.com/about.htm

74

Cmo hacer Cd's Multimedia


3.5.4 Reduccin de tamao
Aqu el asunto es simple. Si usted inserta una imagen en la
interfaz de su programa y luego modifica su tamao o le aplica
algn cambio de color, entre otras posibilidades, entonces MMB
har una copia provisional de esa misma imagen en su tamao
y formato original. Si compilamos el proyecto para convertirlo en
un programa, esa copia de la imagen formar parte del archivo
final aumentando su tamao. Para eliminar esas copias temporales de imgenes que estn en los proyectos usamos el men
File-Reduce Size, con lo que se genera un proyecto ms
pequeo y, al final, un programa tambin de menor tamao.

De el men slo se deriva la advertencia


de que ya no podr ser posible revertir los
cambios hechos a algunos objetos. Por lo
que slo resta pulsar la tecla "OK".

Como se ve, el inconveniente es que eso desactiva la opcin


de men Efects-Restore Original (que estudiaremos en breve), por lo que no podremos devolver a la imagen su tamao y
forma original, aunque, obvio, siempre es posible volverla a
insertar.
75

Cmo hacer Cd's Multimedia


3.5.5 Compilacin
Una vez que ha resuelto los temas anteriores, podr generar
su programa y todos los archivos necesarios para que su CD sea
autoejecutable. El men con el que conseguimos esto es
Project-Check & Distribute, que abre el siguiente cuadro de
dilogo.
Destino del archivo

Generacin del "Autorun"


para el CD-ROM.

Nivel de
compresin.

Otros parmetros.

Informacin del
programa

Lista de advertencias
de compilacin

Veamos las distintas secciones del cuadro de dilogo:


Distribute to Destination:
En esta caja de texto indicamos la ruta donde van a quedar
todos los archivos necesarios del programa, el ejecutable, el
76

Cmo hacer Cd's Multimedia


Autorun para el CD y en donde, adems, debemos poner todos
los archivos externos (msica, video y dems) en subcarpetas de
ese directorio, pues MMB no lo har por usted. El botn Locate
abre el tpico cuadro de dilogo de Windows con el que podemos
elegir unidades y carpetas del disco duro.

La carpeta donde va a quedar el programa se


especifica aqu con ayuda del botn. Recuerde que
los archivos externos deben estar en subcarpetas
de sta, para que las referencias relativas no fallen.

Con esta casilla de


verificacin, MMB genera
el archivo necesario para
que el CD-ROM sea
autoejecutable.

Espero que est de ms decir que debe indicar una carpeta del
disco duro y que no grabe directo en un CD (aunque cuente con
un software como DirectCD u otros similares), el proceso de
grabacin en el CD debe hacerlo despus con el programa que
use para quemar discos, como Easy CD Creator de Roxio, el
NeroBurn u otros.
Si quiere que su CD sea autoejecutable, debe activar la casilla
de verificacin Generate autorun.inf tal y como se ve en la
imagen anterior, que es un archivo que debe grabar tambin en
el directorio raz del CD-ROM.
Player
Cuando un programa es compilado, suele incluir algunas
libreras necesarias para su ejecucin. Lo mismo ocurre con los
.EXE elaborados con Visual Basic, que suelen aadir en
Windows algunos archivos .dll.
En MMB, elegimos Full en esta seccin del cuadro de
dilogo para que el programa tenga todos los elementos necesarios para su ejecucin en la computadora, sin restriccin de
funciones. En contraste, la opcin E-card genera un .EXE
77

Cmo hacer Cd's Multimedia


ms pequeo, lo que permite utilizarlo como tarjeta electrnica
que se puede enviar por Internet, pero tiene algunas restricciones, como la de no ejecutar sonido, ni soportar fondos para toda
la pantalla, entre otras. Puede usarlo para disear programas
con pequeas interfases, saludos y algn efecto visual. La
opcin NoFMOD equivale a "Full", pero sin las libreras para
control de audio, lo que tambin genera un ".EXE" ms pequeo.

Si va a crear un programa para distribuir en CD-ROM, entonces


usar siempre esta opcin. De paso, le comento que si su
programa tiene objetos de Macromedia Flash, entonces debe
activar esta casilla de verificacin.

Stand Alone
Si esta casilla est seleccionada, slo se generar el
.EXE. Todas las libreras necesarias para su ejecucin, que
ya mencionbamos antes formarn parte de es archivo. Si
est desactivada, se aadirn esos elementos al conjunto de
archivos. De cualquier modo, integrados o no, son necesarios
para que el programa funcione.
La diferencia en el tamao de
archivo si esta opcin est o no
activada, es realmente irrelevante.
Por lo que sugiero que la deje as.

Secure Layer
Esta opcin aade un cifrado al programa para que no pueda
ser visto por un editor hexadecimal de archivos. Protege pues su
creacin de tcnicas de ingeniera inversa que usan los que les
78

Cmo hacer Cd's Multimedia


gusta ver sin permiso el cdigo de los programas, en lugar de
preguntar, como corresponde a la gente decente.
Nunca ha visto el chiste del querubn que le dice a Dios que el
cdigo del genoma humano ha sido descubierto? Dios contesta:
Malditos Hackers, tendr que cambiar el password de nuevo.
El uso de esta opcin, sin embargo,
hace ms lenta la ejecucin del
programa, por lo que se sugiere que la
utilice slo si es necesario.

Compression
El programa ya compilado puede ocupar ms o menos espacio
en disco en funcin de su grado de compresin. Sin embargo, el
grado de compresin es inversamente proporcional a la velocidad
en la que el programa es ledo en la memoria de la computadora
Eh, qu tal? A poco no suena apantallante decir inversamente
proporcional? Ya nada ms falta que ponga algo as:
C= 1/vl
Donde C es igual al grado de compresin y vl, velocidad de
lectura. A ver, despeje vl y haga el clculo cuando C es igual a 2/3.
Ja, no es cierto, el asunto es simple, mientras ms compresin, ms tarda en leerse en memoria antes de iniciar su
ejecucin, mientras menos compresin, se lee ms rpido. Un
consejo, si su programa es pequeo, no lo comprima y santa paz.

Las distintas opciones de


compresin aparecen en la lista
desplegable. Tan, tan.

79

Cmo hacer Cd's Multimedia


Icon
Ya se fij que los programas que genera MMB tienen todos
el mismo icono, que es un cubo rojo con las letras del programa?
Las aplicaciones de MMB tienen por
default este icono, lo cual no est
mal, pero es revelador....

Si entrega un programa con este icono a algn cliente, descubrir con qu ha hecho todo el trabajo y si, adems, conoce este
libro, le dir que todo le fue muy fcil y van a querer que les
devuelva su dinero. Por tanto, tendr que usar esta opcin para
designar un icono distinto (son los archivos con la extensin .ico).

Los botones permiten


elegir un archivo de
icono (extensin ".ICO").

Le doy un consejo: en la siguiente direccin podr encontrar


programas con iconos gratuitos, todo es cuestin de que le
busque un poco.
www.softonic.com
Errors and warnings
Est seguro que hizo bien la tarea de reemplazar las rutas
absolutas a relativas y que optimiz el tamao del archivo con
File-Reduce Size, entre otras actividades previas? Pues si no
lo hizo, ponga atencin a las advertencias de esta seccin del
cuadro de dilogo. Aqu se indican los bemoles que le encuentra
al proyecto respecto a los temas que mencionamos y siempre es
mejor compilar cuando en esta ventana todo diga OK.
80

Cmo hacer Cd's Multimedia

El proceso de compilacin
es seguro cuando en esta
zona no hay ninguna
advertencia de errores.

Tenga en cuenta que puede compilar su proyecto a pesar de lo


que en esta ventana se diga, pero durante la ejecucin pueden
generarse errores, por ejemplo, con las rutas a los archivos, entre
otros. As que no sea aptico y haga caso de lo que ah le dicen.
Copyrights info
Finalmente, la seccin de informacin legal tiene varios campos en donde podemos incluir los datos de nuestra empresa, del
producto, de los derechos reservados y de la versin del programa. Cada campo soporta hasta 35 caracteres y dicha informacin quedar incluida en el ejecutable final.

Vista parcial de la seccin de


informacin de derechos. En
cada campo puede insertar
los datos de su programa.

81

Cmo hacer Cd's Multimedia


Para ver la informacin legal de nuestro programa, seleccionamos su icono en la carpeta donde est grabado y, sin ejecutarlo, pulsamos Alt-Enter, que abre la ventana con las propiedades del archivo. La informacin est en la ceja Versin. Le
dejamos de tarea buscarlo.
Al final, no hay ms que pulsar el botn OK para que el
proyecto se compile y se convierta en un brillante programa
puesto y dispuesto a recorrer el mundo, dndole fama y fortuna.
No, en este caso no es broma, realmente puede ocurrir si usted
tiene una gran idea y la expresa de este modo, se lo aseguro.
En tanto, observe que una vez compilado el proyecto, MMB ofrece
ejecutarlo de una vez, para que vea el resultado final en accin.
Una vez revisados todos los elementos
expuestos aqu, slo queda pulsar "OK"
para que MMB genere nuestro programa. Observe la cortesa con la que el
programa le informa que ha terminado y
que puede probar de una vez su
creacin pulsando el botn "Run It !".
Hgale caso, no deje a nuestro amigo
Romn Voska con la mano extendida.

Hasta aqu, el proceso en general para crear programas con


MMB y ponerlos en CDs autoejecutables est visto. Por lo que ahora
tiene usted ante s dos caminos: cerrar el libro y experimentar con
82

Cmo hacer Cd's Multimedia


los distintos objetos y las diferentes funciones para crear sus
propios programas, probndolos, buscando errores y corrigiendo
una y otra vez, demostrando su capacidad para concluir cosas,
sagacidad de investigador y tenacidad de aventurero; o ser un poco
ms paciente, seguir con la lectura y conocer, con todo detalle, las
particularidades de cada objeto y los parmetros de cada funcin,
encontrando otras que no estn en la lista del "Wizard". La decisin
es suya, tmela con calma y sabiamente. No olvide que cualquier
cosa que decidamos en la vida, como deca El Gladiador, tendr
repercusiones en la eternidad. Por eso yo le sugiero que consulte
con quien realmente es capaz de aconsejarnos y guiarnos por este
mundo, nuestra sabia, excelsa y profunda maestra, la que puede
librarnos de muchos tropiezos y nos ensea a vencer a nuestros
enemigos, nuestra aliada fiel, la almohada. Vaya a hablar con ella
y regrese, para poder continuar.

"Lo que decidamos en vida, repercute por la eternidad..."

Por eso, debe consultar con la almohada y


regresar con su decisin respecto a este libro...
83

Cmo hacer Cd's Multimedia

4
Objetos
Como seguramente ya se dio cuenta, la ventana de propiedades de cada tipo de objeto es diferente a la de los dems. Esto
se debe a lo que es posible con cada uno de ellos y lo que no. Por
ejemplo, y para no extendernos en lo obvio, una lnea no puede
tener Scripts, ni otras acciones asociadas. Si no me cree, dibuje
una lnea en el rea de trabajo de MMB y luego dele doble clic
para abrir su ventana de propiedades.

Ventana de propiedades de los objetos de lnea.


Observe que no es posible aadir acciones.

Por lo que aqu slo cabe agregar que podemos clasificar a los
objetos de dos maneras, como activos o pasivos. Adivina la
diferencia? Los activos pueden aadrseles acciones, los pasivos son slo como las lneas, no hacen nada por ms que les
hagamos clic con el ratn.
Hagamos pues una revisin de las caractersticas de cada tipo
de objeto y no haga analogas sobre cmo es cada quin en la cama.
84

Cmo hacer Cd's Multimedia


4.1.- Texto y objetos de prrafo
Los objetos de texto nos sirven fundamentalmente para poner
ttulos en nuestra aplicacin o pequeas leyendas compuestas
de pocas palabras. Yo creo que prcticamente no habra una
aplicacin que no use por lo menos un objeto de texto.
Los objetos de texto pueden ser activos o pasivos y se
construyen con el botn correspondiente de la barra de objetos
o el men Object-Create-Text.
Despus de pulsar en el botn, o seleccionar
el men, hacemos clic en el rea de trabajo
para crear el objeto de texto.

Despus de crear el objeto, podemos editar el texto en la ventana de


propiedades, que se abre con un doble clic donde ya sabe.

Cuando hacemos doble clic sobre el objeto, se abre el cuadro


de dilogo que nos permite editar el texto y poner ah el mensaje
definitivo. En ese mismo cuadro encontramos muchas otras
caractersticas que podemos establecer hasta que el objeto
funcione segn nuestras necesidades.
85

Cmo hacer Cd's Multimedia


Etiqueta del objeto,
equivale a su nombre.

Oculto y bloqueado.

Mensaje cuando
sealamos el
objeto con el
cursor.

Alineacin del
texto y tipo de
fuente.

Acciones

Forma del cursor

Definamos los elementos del cuadro de dilogo, para que luego


nadie se atreva a afirmar que no proced con absoluto orden.
86

Cmo hacer Cd's Multimedia


- Label. Es el nombre del objeto. De hecho, esta propiedad es
comn a todos los objetos y, por tanto, no volveremos a referirnos
a ella. En este caso, por default es Text. Si aadimos otro objeto
de texto igual, se llamar Text1 y as sucesivamente. Pero
podemos darle algn otro nombre para facilitar su identificacin.
Recuerde que esto es til si otros objetos interactan con nuestro
objeto de texto y si necesitamos referirnos a l en algn script.
Por tanto, podra ponerle Ttulo o Encabezado. Los ms
audaces pueden nombrar a sus objetos como "Bart", "Lisa" u
"Homero", tambin se vale ponerles a los objetos "Batman" o
"Spiderman" y hasta "Mad_Max" o "Jason", siempre y cuando,
a la hora de hacer scripts, se acuerden cmo les pusieron. Lo que
s sera un crimen es que a un rectngulo le ponga usted
"Salma_Hayeck", por mucho que haya subido de peso. Evtelo
por favor.
- Hide. Con esta casilla activada, el objeto queda oculto y
puede volverse visible con la accin de otro objeto, tal como ya
explicamos antes. Esta propiedad tambin est presente en
otros objetos, por lo que no la vamos a repetir en explicaciones
posteriores. Por otra parte, obviamente, no tendra sentido
establecer esta propiedad y dejar as el texto durante toda la
ejecucin del programa. Sera como decirle a un nio que vamos
a jugar a las escondidas, lo mandamos a esconderse y nos
vamos a dormir. No le parece cruel? S ha hecho eso? Qu
malo(a)! Vaya a buscar al nio, no sea que siga en el clset ya
medio muerto de hambre.
- Lock Position. Fija el objeto en su posicin, eso evita que lo
movamos accidentalmente durante el diseo.

Propiedades de etiqueta, ocultar y bloquear objeto en su posicin.

87

Cmo hacer Cd's Multimedia


- Fixed Width. Activa las opciones tpicas para alinear el texto:
izquierda, derecha o centro respecto al rea que lo enmarca.
Vemoslo grficamente, para que quede claro, porque si lo dejo
as usted me va a salir con cul rea que lo enmarca? Luis
Manuel debe estar loquito, ya dice cosas que ni existen.

La alineacin es respecto al rea resaltada por las lneas punteadas, no respecto


a la pgina o algn otro punto de referencia. Vi cmo no estoy (tan) loquito?

- Font. Este botn abre un cuadro de dilogo que nos


permite seleccionar el tipo de fuente para nuestro objeto de texto.
No olvide, si es que ya lo sabe, que la lista de fuentes disponibles
vara de mquina a mquina segn los programas que tenga
instalados. Ah, lo olvidaba!, por si usted es un usuario nefito:
Fuente=tipo de letra.

El tipo de letra, su
estilo y tamao se
eligen en el cuadro de
dilogo del botn
"Font". Este cuadro,
en realidad, es comn
a muchos programas
para Windows en
donde editamos texto.

88

Cmo hacer Cd's Multimedia


- Actions. De las acciones ya habamos hablado en el apartado 3.5 y a los objetos de texto, como buenos objetos activos,
podemos aadirles acciones en las cuatro categoras que vimos
ah. Tambin podemos cambiar su color cuando pasamos el
cursor encima o cuando hacemos clic en l, lo cual, ciertamente,
puede considerarse como otra accin de objeto. Adems, el
cursor puede tener una forma singular cuando toca al objeto, slo
eljalo de la lista desplegable y prubelo, se ve muy profesional.
Con las acciones activadas, podemos hacer que el texto
cambie de color si el cursor pasa sobre l o detecta un
clic. Los colores se eligen en las respectivas listas.

Las acciones que podemos programar en


los objetos de texto son las mismas que
ya revisamos en el captulo anterior.

De la lista, seleccione la forma que tendr el cursor


cuando pase sobre el texto. Le dar un toque de
elegancia y profesionalismo a su programa, con lo
que podr decir "Soy Totalmente Informtico".

89

Cmo hacer Cd's Multimedia


- ABC. Nada ms por no dejarlo pasar. Este botn hace una
revisin ortogrfica de lo escrito en el rea de edicin. Esa es la
buena noticia, la mala es que el diccionario de MMB est en
ingls, as que ni se haga ilusiones. Si no est seguro de lo que
est escribiendo en el objeto de texto, vaya por un diccionario y
busque la palabra, que para eso sirven. Ande, ande, antes de
que escriba cajn con g.
Botn para revisar la ortografa de los
objetos de texto... en ingls.

Hay otro tipo de objetos de texto que se usan exclusivamente


cuando usted quiere echar mucho rollo (igualito que yo). Se llama
Paragraph Text. Al crearlo, simplemente dibujamos con el
cursor un rectngulo en pantalla, luego el clsico doble clic abre
el cuadro de propiedades. La ventaja de este tipo de objeto,
cuando queremos poner un texto muy extenso, es que aade
automticamente una barra de desplazamiento vertical cuando
el texto rebasa el tamao del rectngulo. Sin embargo, tiene
algunas limitaciones respecto a su hermano menor: No es
posible programar acciones. Por lo que su cuadro de propiedades se limita a ser el espacio en donde escribimos y damos
formato al texto, nada ms.
De hecho, seguramente ya vio un objeto de este tipo cuando
abri el programa sobre Wagner, pues los datos sobre su vida se
presentaban en un objeto de prrafo.
Botn de la barra de herramientas y
men para crear objetos de prrafo.

90

Cmo hacer Cd's Multimedia


El cuadro de propiedades de los objetos de prrafo tiene
como funcin principal servir para editar el texto.

Para nuestro libro sobre


Autocad 2004 creamos un
CD con archivos de ejemplo.
La presentacin fue hecha
con MMB con una interfaz
personalizada, en una de
cuyas pginas hay un objeto
de prrafo. Dicho sea de
paso, el libro sobre Autocad
2004 qued buensimo y
puede conseguirlo en
libreras a un precio increble.
Pedidos al (55)-5731-6106
en la Cd. de Mxico. Llame
ahora.

91

Cmo hacer Cd's Multimedia


4.2 botones de texto
Los botones de texto son exactamente eso, objetos grficos
prediseados para funcionar como los botones que todos conocemos, como Aceptar o Cancelar y que usamos constantemente
en todos los cuadros de dilogo. Qu va a ocurrir cuando pulsa el
botn? Eso depende de las acciones que determine. De entrada, lo
nico que ocurre es que se ve cmo son pulsados, slo eso.
Para no perder la costumbre, le presentamos
magistralmente, como casi todo lo que
hacemos, el botn y el men correspondientes
para crear este tipo de objetos.

Apariencia del botn recin


creado sobre el rea de trabajo.

El conjunto de propiedades del botn ya es conocido por el


lector(a), futuro(a) especialista en MMB.
Nombre
del objeto
Texto emergente
cuando el cursor
seala el botn,
sin pulsarlo.

Texto del
botn
Color y
efectos del
botn.
Forma del
cursor

Botones de
accin
92

Cmo hacer Cd's Multimedia


El Tooltip es la leyenda sobre fondo amarillo que aparece
junto al cursor cuando lo colocamos sobre un botn de un
programa pero no lo pulsamos. Es muy comn en los programas
de Microsoft Office. Use esta caracterstica inteligentemente y
le dar una presentacin profesional a su programa.

Como ya habr observado, el botn puede tener apariencia de


men si seleccionamos la casilla Menu Item. Esto significa que
se resalta en color inverso cuando pasamos el cursor sobre el
botn. Corrobore el dato probndolo.
Al activarlo, la apariencia
del botn cambia.
La diferencia en el funcionamiento del
botn es que se resalta al pasar el
cursor, como un men, precisamente.

Sin embargo, que se vea como men a que se comporte como


tal, hay cierta distancia, aunque precisamente eso es lo que
ensea a hacer el botn Show me de la ventana de propiedades. Plselo y vea el tutorial, sera un buen intento para que
usted adelante e intente hacer un men con botones de texto.
Pero para que tenga sentido la creacin de un men, ste debe
ser realmente funcional. Y para eso debe conocer un poco ms
sobre la elaboracin de scripts. Sugiero por tanto que vuelva a
ese tema una vez que haya visto aqul. Gracias.

4.3.- Objetos grficos


Definamos, arbitrariamente (para que no se nos quite la
vocacin de autoritarios), como Objetos grficos a todos
aquellos elementos visuales que forman parte de los programas
de MMB. Algunos de ellos tienen procedimientos en comn,
93

Cmo hacer Cd's Multimedia


como la manera en que se insertan en una aplicacin, se
redimensionan, etctera. Por ello, conforme los vayamos revisando, mencionaremos estos procedimientos, pero slo los
expondremos la primera vez, para no repetir informacin.

4.3.1 Primitivas
Primitivas son unas lamentables criaturas que nunca evolucionaron, viven en cavernas, con suerte visten pieles de
animales que cazan, si no es que andan desnudas, son nmadas
y no han desarrollado el lenguaje. Dada su ferocidad y ansia de
alimentos, se dice que lograron colarse entre la clase poltica, por
la similitud entre ambas especies y lo escaso de su cerebro. Se
cree que incluso algunas de ellas han escalado a altos puestos.
Tambin les llaman dinosaurios
Sin embargo, en MMB les decimos primitivas a las formas
grficas simples, el rectngulo, el crculo, los polgonos y las
lneas. Estas figuras primitivas no deben serlo tanto, ya que
piensan demandar a las primeras por el uso del nombre y por el
dao a su reputacin que su actuar les provoca.
A pesar de eso, las primitivas pueden ser activas o pasivas
(excepto la lnea, que slo es pasiva), segn definimos antes
(tener o no acciones programadas). Los rectngulos, crculos y
polgonos tienen cuadros de propiedades comunes, donde establecemos el color de su relleno y el estilo del borde, as como las
ya conocidas Label, Hide y Lock Position.
Para insertar una figura primitiva, la seleccionamos del men
o de la barra y con el cursor la dibujamos en el rea de la interfaz,
como tantas veces ha hecho en Paint con tal de entretener al nio
que insiste en usar la computadora, sin aceptar que a los nios
ese programa los aburre porque saben, desde que nacen, que
las computadoras pueden tener juegos mucho mas divertidos.
Como ya hemos visto, en la barra de
herramientas estn todas las primitivas
en una barra emergente y como en
esta pgina ya no cabe, nos ahorramos
la imagen del men "Object".
94

Cmo hacer Cd's Multimedia


Por tanto, crear primitivas no
requiere ms informacin. Un
doble clic abre la ventana de
propiedades, que es igual para
todas, excepto para las lneas.

Propiedades de etiqueta,
oculto, bloquear posicin y
leyenda de cursor.
Color de relleno, color y estilo
de lnea.
Acciones de objeto.

Como dijimos, las propiedades de las lneas son ligeramente


distintas, veamos.
En alguna pgina
previa ya habamos
hablado de este
cuadro de dilogo y
de las escasas
propiedades de las
lneas, por lo que
guardaremos
silencio...

4.3.2 Mapas de bits


Todos los conocemos, los mapas de bits son los archivos de
imagen que pueden tener, para usarse en MMB, cualquiera de
95

Cmo hacer Cd's Multimedia


estos formatos: BMP, JPG, GIF, PCX, PNG y TIF. Todos los
hemos usado al menos para cambiar el tapiz de Windows de
nuestra computadora.
Para insertar un mapa de bits en nuestra aplicacin, usamos
el botn o el men correspondiente, luego hacemos clic en el
rea de la interfaz, lo que abre el cuadro de dilogo para
seleccionar el archivo de imagen de alguna carpeta.
Botn de la barra de herramientas. La opcin
correspondiente del men "Object" se la dejo de
tarea. Despus de pulsar el botn, hacemos clic en el
rea de trabajo, con lo que se abre el cuadro de
dilogo para seleccionar el archivo de imagen.

Como sabe, aqu basta con seleccionar el archivo y


pulsar "Abrir" u "Open", como en la imagen.*
*Es posible que muchos cuadros de dilogo que habamos presentado en espaol, de
ahora en adelante estn en ingls. Eso se debe a que mientras haca la edicin de este
libro, mi computadora, con su flamante Windows XP en espaol, fall catastrficamente.
Mientras calculaba el tiempo que se perdera al repararla, lleg Doa Chonita, nuestra
traductora estrella y ofreci prestarme su poderosa computadora porttil, lo ltimo en
tecnologa. "Pens que no tena computadora Doa Chonita, no me la imagino tecleando
luego de hacer sus quesadillas..." -Le dije imprudentemente, a lo que me contest:
"Porqu no? Yo tambin tengo que mandar correos electrnicos, usar Excel para mi
negocio y navegar en playgirl.com con Internet Explorer... Pero te la presto mijito, pero a
ratos para checar luego el hotmail. Ah! Y me la cuidas porque sta s es de las caras, no
como la patito que usas eh?".

96

Cmo hacer Cd's Multimedia


Lo ms probable es que la primera labor que hagamos con
nuestra imagen sea redimensionarla para ajustarla a las necesidades de nuestra creacin, para ello hacemos clic y arrastramos
con el ratn alguno de los pequeos recuadros negros (llamados
anclas) que lo bordean. Para que la imagen mantenga la misma
proporcin de ancho y alto, pulsamos la tecla CTRL mientras
se arrastra el ancla.

Casi todas las imagenes requieren ser


redimensionadas para que se ajusten al proyecto.

Cuando redimensionamos una imagen, MMB genera una


copia del original y la conserva en memoria junto con la imagen
modificada. Incluso, ambas imgenes se graban con el archivo
del proyecto cuando ste es guardado en disco, lo cual tiene una
ventaja evidente: si queremos volver a la imagen original, despus de haber hecho muchos cambios, podemos usar el men
Effects-Restore Original. MMB borrar la imagen modificada
y restaurar la original.
El men "Restore Original", no slo
restaura imgenes cuando se han
redimensionado, tambin lo hace
cuando han sido recortadas o hemos
aplicado algn efecto especial, de los
muchos que incluye MMB y que
veremos pronto.
97

Cmo hacer Cd's Multimedia


En contrapartida, conservar una copia del original en el proyecto, tiene la desventaja de que el tamao del archivo crece y,
si la interfaz tiene muchas imgenes, pueden quedar en el
programa compilado, internamente, muchos archivos temporales que no tienen ningn uso. Para depurar el programa de
dichos archivos, eficientar el resultado final y reducir su tamao,
usamos el men File-Reduce Size*, lo cual, a su vez, tiene la
desventaja de que desactiva el men Restore Original y
convierte en permanente las modificaciones hechas. Como
puede ver, nada es perfecto en este loco mundo, cada cosa que
hagamos tiene pros y contras y tenemos que vivir sopesando
siempre entre opciones contradictorias. Pero no se estrese, as
es la vida, no slo MMB.

Otro par de ilustraciones que han sido


tomadas de una pgina previa. Si en 3.2
segundos encuentra la pgina donde
aparecen, podr reclamar el ttulo de
buscador del ao. Relea la explicacion.

Una alternativa intermedia es modificar una imagen y convertirla inmediatamente en un nuevo original, lo que eliminar de
inmediato el archivo temporal de la memoria. Esto se consigue
*Soy conciente de que ya antes habamos hablado de los archivos temporales de las
imgenes que se guardan en el proyecto y del men "File-Reduce Size". Pero en ese
momento hablbamos de la depuracin del proyecto para su compilacin, ahora lo
mencionamos como parte del tema de uso de imgenes. La enseanza es redundante
para reforzar la comprensin de los temas.

98

Cmo hacer Cd's Multimedia


con el men Effects-Make new Original. El cuadro de dilogo
de advertencia es muy similar al anterior, pero slo se refiere a
la imagen seleccionada.
"Esto har permanente todos los
cambios en este mapa de bits. Usted no
podr restaurar la imagen con Restore
Original. Desea continuar?" *

Veamos otros cambios que podemos aplicar sobre las imgenes, antes de pasar a sus propiedades. Slo recuerde que toda
esta chchara de restaurar el original, borrar temporales y
dems, tambin puede aplicarse con los dems cambios, no slo
con el redimensionamiento, como ya mencionamos.
Para recortar una imagen, seleccionamos el men EffectsCrop, luego dibujamos el rectngulo de recorte sobre el mapa
de bits y vemos el resultado.
Al seleccionar esta opcin de men, el
cursor cobra una forma caracterstica.
Luego dibujamos un rectngulo en la
imagen, que es lo que quedar
despus del recorte.
Doa Chonita, adems de que le salen muy bien las quesadillas de championes
con queso oaxaca, tiene un extraordinario sentido de la oportunidad, pues lleg
buscando su computadora precisamente cuando necesitaba traducir el mensaje. Yo
estaba a punto de escribir: "Este Will Make y todos los changos permanecieron en este
bitmap. Usted no hablar a restauracin de originales, imagine que Restaur el
original. Gusta continuar".
Por cierto, Doa Chonita tambin me advirti que ni se me ocurriera mirar las imgenes
que baja de www.playgirl.com. Quien la viera....

99

Cmo hacer Cd's Multimedia


Observe la forma del cursor.
El recuadro punteado
delimita el rea a cortar.

Nueva imagen.

Pero ni se le ocurra redimensionar una imagen recin recortada


porque vuelve a la imagen antes del recorte. Si no me cree, intntelo,
aunque me parece psimo asunto que no me crea despus de todo
lo que le he dicho. Ahora que si de lo que se trata es de cuestionar
mi credibilidad, pues cierre el libro y ya faltaba ms.
Como ya se me pas la bilis, le recomiendo que despus de un
recorte, use de inmediato el men Effects-Make New Original, para que pueda redimensionar la nueva imagen.

Sobra decir que esto tambin impide


restaurar la imagen original, pero es
la nica manera de redimensionar
una imagen recin recortada.

Como ya se meti en los vericuetos del men Effectts, al


menos para probar Crop, Restore Original y Make New
Original, seguramente ya habr observado que est lleno de
chunches interesantes y que vale la pena indagar esas opciones.
Adems, por ms que quisiera explicarle otra cosa, no me hara
caso, cerrara el libro y se pondra a ver qu hay ah. As que
mejor le explico lo que va a encontrar y le ahorro algunas horas
de investigacin.
100

Cmo hacer Cd's Multimedia


Effects-Flip genera un reflejo horizontal o vertical de la
imagen, lo cual no requiere de mayores explicaciones.
Despus de crear el
reflejo, volvimos a insertar
la imagen original, para
que se vea la diferencia...

Tile (Mosaico) requiere que el original sea ms pequeo


que la zona a cubrir con el efecto de mosaico. En otras palabras,
debemos redimensionar la imagen, digamos como en el ejemplo
siguiente.

La imagen original debe


redimensionarse al tamao
de cada mosaico. En este
caso, hicimos ms pequea
la imagen.

101

Cmo hacer Cd's Multimedia


Luego generamos un nuevo original. Despus redimensionamos
la imagen para cubrir toda el rea de la pgina. Finalmente, usamos
el men Effects-Tile, observe ahora el resultado.
Volvemos a redimensionar la imagen
abarcando el rea a cubrir, inmediatamente despus usamos el men.

Effects-MMB Effects es una interesante coleccin de 5


efectos muy atractivos para sus aplicaciones. Si sus mapas de
bits tienen un fondo de color blanco o negro, o cualquier otro color
slido, sin matices, puede hacer primero que ste sea transparente para que el efecto tenga, permtame la redundancia, ms
efecto.
Adelantmonos un poco a las propiedades: dle doble clic a
alguna imagen y luego establezca el color de fondo como
transparente:
Vemos cmo
aadir un efecto
exclusivo de
MMB a una
imagen.

102

Cmo hacer Cd's Multimedia


Suponga que hemos insertado esta
imagen en el rea de trabajo de
MMB. Despus de redimensionarla
y crear un nuevo original, le damos
doble clic para abrir su cuadro de
propiedades, del no hemos hablado
an. Sin embargo, adelantemos un
poco haciendo transparente su color
de fondo.

Para hacer transparente el color


de fondo, activamos la casilla y
pulsamos el boton "Color Safe".
Observe ahora el resultado.

A una imagen as, podemos aplicarle mejor algn MMBEffects; por ejemplo, Fire (Fuego). En el cuadro de dilogo
103

Cmo hacer Cd's Multimedia


no tenemos ms que ir modificando los parmetros del efecto
hasta conseguir la vista adecuada.
Con cada uno de los efectos
se abre un cuadro de dilogo
para establecer los
parmetros correspondientes.

La direccin y
velocidad del viento, la
intensidad de las
llamas, etctera, son
valores que debe
establecer para crear
el efecto de fuego.

Observe el resultado.

104

Cmo hacer Cd's Multimedia


Observe el administrador de objetos. Al crear el efecto del
fuego, lo que en realidad ocurre es que se genera un nuevo mapa
de bits, al cual podemos, de nueva cuenta, editar sus propiedades y aadirle algunas acciones interesantes, o al revs, sobre
el cual podemos interactuar aadindole accin a otros objetos.
Por ejemplo, se acuerda de Show/Fade Out? No? Mmmhhh,
va a tener que releer el libro, lo cual no estara mal, pero no en
este momento, mejor le explico.

El "fuego" es en realidad un nuevo


mapa de bits, el cual es susceptible
de interactuar con otros objetos
programando acciones.

Vamos a editar las propiedades del mapa de bits inicial, ah


aadimos una accin en Interactions with other objects, de
modo que al pasar el ratn sobre el objeto aparezcan las flamas
y stas se desvanezcan cuando el cursos se aleje.

En el cuadro de dilogo de propiedades del primer mapa de bits, que


seguimos sin ver an, activamos las acciones, y de stas la que sirve para
interactuar con otros objetos. Recuerde que ya vimos cmo hacer que otros
objetos aparezcan y desaparezcan al pasar el cursor sobre l. Observe
cmo indicamos que dicho efecto se aplique sobre el objeto llamado "Fire".

Puede ver el resultado en el archivo "Efectos" que est en el CDROM, el cual, dicho sea de paso, ilustra todos los MMB Effects.
105

Cmo hacer Cd's Multimedia


Pruebe por su cuenta los efectos, en realidad no es difcil
usarlos. Incluso, tenga en cuenta que cada cuadro de dilogo de
estos efectos tiene un botn Show me.
Por otra parte, es una lstima que MMB no sea un programa
para editar mapas de bits, porque tiene efectos realmente
interesantes. Pruebe la lista de Effects-Special Effects, que
no requieren de ningn parmetro. Algunos resultados podemos
verlos enseguida.
El men "Effects-Special
Effects" es una larga lista de
efectos para los mapas de bits,
prubelos sobre cualquier
imagen, le van a gustar.

Original

Algunos efectos especiales

106

Cmo hacer Cd's Multimedia


Interactive Effects, en contraste, abre cuadros de dilogo
en donde los efectos los establece el usuario de modo, precisamente, interactivo, usando siempre el ratn. Por ejemplo, en
Warp creamos un vector de distorsin.

Los efectos interactivos abren cuadros de


dilogo para elegir los ajustes deseados.

En este efecto interactivo, debemos arrastrar el cursor


sobre la imagen para generar en ella una distorsin.

Effects-Color tweak effectts* funciona de modo similar. Es


un cuadro de dilogo con una larga, largusima lista de otros
efectos, algunos muy interesantes.
*Dada mi ignorancia en tantas cosas, sal corriendo a buscar a Doa Chonita para que
me ayudara a traducir este men. Ella, al verme, pregunt por su computadora antes que
cualquier otra cosa porqu me vi cara de apuro. Cuando le expliqu que su mquina
estaba bien, se dispuso a ayudarme con la traduccin mientras iba preparando una
deliciosa quesadilla de huitlacoche. Sin embargo, conforme lea, su extraeza aumentaba
ms y ms, al fin dijo: "O una de dos muchacho, o copiaste mal al escribir este papel o ah
dice 'Efectos de pellizco de color'. Seguro ser eso?". An no lo s, as que estimado(a)
lector(a), si se le ocurre una traduccin mejor, escrbanos a la direccin que ya sabe. El
e-mail de Doa Chonita no se lo puedo dar, suficiente tiene con asesorar por ah a sus expatrones de Manhattan en temas de desarrollo de software.

107

Cmo hacer Cd's Multimedia


En lo que averiguamos cmo ponerle en
castellano a este men, vemos que el
trabajo en el cuadro de dilogo consiste en
elegir el efecto de la lista e ir dando valores
hasta obtener el resultado deseado.

Cada efecto puede requerir de valores


diferentes. Observe que la lista de los
mismos es bastante larga, por lo que
slo me resta sugerirle que experimente
al respecto.

108

Cmo hacer Cd's Multimedia


Como el principio para usar estos efectos es el mismo, slo me
resta sugerirle que experimente con ellos a discrecin, le aseguro que el procesador no se desgasta, ni protesta, ni pide aumento
de energa y mucho menos juzga lo que el usuario est haciendo.
El da que los procesadores puedan juzgar lo que hacemos con
las computadoras, no s que van a pensar, pero de lo que estoy
seguro es que se van a carcajear un buen rato.
Un ltimo detalle antes de pasar al muchas veces pospuesto
cuadro de propiedades de los mapas de bits. Si usted coloca
diversas imgenes en su pgina slo con la intencin de decorarla, pero stas no van a tener ninguna funcin adicional en su
programa, entonces puede mejorar su eficiencia combinando las
imgenes con el fondo, para que ocupen menos espacio en
memoria. El men para dicha funcin es Arrange-CombineObjects with background....
Con esta opcin de men, un grupo de objetos
de imagen individuales, pueden combinarse en
una sola para crear el fondo de la aplicacin, lo
que ahorra recursos del sistema.

109

Cmo hacer Cd's Multimedia


Ahora s, haga doble clic en algn objeto de mapa de bits y se
abrir su ventana de propiedades, luego copie todos los elementos
de dicho cuadro de dilogo en un cuaderno, hace cinco planas con
esa lista de elementos, con buena letra por favor, y me las manda
por correo. Yo reviso la tarea y le envo de regreso un diploma que
certifique que hizo los deberes y la calificacin que obtuvo, la cual,
de ser reprobatoria, lo obligar a presentar extraordinario de la
materia Propiedades 2. (Dios mo: hay das en que necesito que
me quites lo evenflo, por lo que ms quieras).
Parmetros de presentacin
para imgenes
redimensionadas.

La imagen ser interna


o externa al proyecto?
Previsualizacin

Imagen
transparente.
Fondo transparente.

Acciones.

110

Cmo hacer Cd's Multimedia


Respecto a lo que hemos visto hasta ahora, este cuadro de
dilogo tiene dos novedades. Una es que permite establecer
criterios de comportamiento si la imagen es redimensionada. Por
ejemplo, podemos hacer zoom en una imagen, aadirle barras
de desplazamiento y permitir que el usuario del programa pueda
desplazar la imagen en su ventana contenedora con el ratn.
Observe esta configuracin del cuadro de dilogo y el resultado
durante la ejecucin del programa.
Aumentamos la imagen en
un 310%, no as la ventana
que lo contiene, por ello
tambin aadimos barras de
desplazamiento y activamos
el arrastre del ratn.

Observe que la imagen del centro est ampliada, muestra barras horizontal y
vertical y con el ratn podemos desplazarla dentro del recuadro que la contiene.

La segunda novedad es que le podemos dar transparencia al


color de fondo de la imagen, cosa que ya habamos hecho antes,
o bien al conjunto de la imagen con Alpha Transparency Map.
El grado de transparencia se establece con la caja de texto para
111

Cmo hacer Cd's Multimedia


opacidad, donde 0 es transparente y 1 completamente opaco,
Adems, esa transparencia puede combinarse con otros objetos, con lo que se pueden conseguir curiosos efectos.

En esta seccin activamos la transparencia


total del color de fondo, para que se integre
con el fondo existente. Una manera segura es
usar el botn "Color Safe", siempre y cuando
sea uno de los colores bsicos (de la paleta
de 256 colores) y no tenga matices.

Observe ahora la transparencia de toda la imagen con "Alpha


Transparency Map" activada. Mientras ms bajo el valor de opacidad, ms
transparente el objeto. Pero decamos adems que esa transparencia puede
combinarse con otro objeto, usando los botones para abrir otras imgenes,
veamos el resultado en las siguientes imgenes.
112

Cmo hacer Cd's Multimedia

Apariencia del oso sobre otra


imagen con una opacidad de 0.5.

Ahora aadimos una imagen a la transparencia y la invertimos.


Observe que en el resultado ambas imgenes se mezclan.

Intente ahora imaginar todas las posibilidades que da combinar lo que hemos visto hasta ahora: Efectos especiales, efectos
interactivos, pellizcos de color, transparencias, zoom, reflejos
horizontales y verticales, etctera, etctera. La imaginacin, si
fuera un buen sastre, tiene a partir de ahora muchos metros de
tela donde cortar.

4.3.3 Gifs animados


Los Gifs animados son esos pequeos dibujitos con movimiento repetitivo que podemos encontrar en miles de pginas de
Internet. Hay pginas que los regalan por toneladas. Una sola
tarde de navegacin, con la sola intencin de conseguir gifs
113

Cmo hacer Cd's Multimedia


animados, lo hara tener cientos en pocas horas y si bien su
creacin no es tema de este libro, tambin puedo decirle que hay
cientos de programas para hacerlos, muchos de ellos gratuitos.
Obviamente, tambin disponibles en la red de redes. Un ejemplo
al vuelo es el Active Gif Creator, que se consigue en la siguiente
direccin:
www.wsoft-lab.com
O el Microsoft Gif Animator, descargable de:
www.jhepple.com/gif_animator.htm
En donde, adems, encontrar otras cosas que seguramente
desear descargar y luego, ya una vez conectado, le dar por
revisar su correo y luego las novedades de los sitios que
frecuenta y pues de paso una buena chateada con los cuates en
el Messenger. Tambin un poco de noticias,un vistazo a
MercadoLibre, un ajedrez para el ranking de Yahoo y as sucesivamente hasta que amanezca. La bronca despus es que va
a andar con sueo en el trabajo o la escuela y todo por no saber
desconectarse a tiempo. As que mejor modere su adiccin a la
Web y los programas aqu mencionados para hacer Gifs animados bsquelos en el CD-ROM que acompaa este libro. De nada.
Pero veamos el cuadro de propiedades de los Gifs.
Botn de la barra de herramientas
para insertar Gifs animados.
Previsualizacin

Informacin
del Gif y
velocidad.

Opciones de
animacin

114

Cmo hacer Cd's Multimedia


Las propiedades Label, Hide y Lock Position no requieren ninguna explicacin. Info, como podr sospechar con
sagacidad de Sherlock Holmes, son datos relativos al Gif elegido. El nmero de cuadros que lo componen y el tipo de
optimizacin con el que se realiz el gif. Aqu no hay parmetros
que establecer.
Transparency. Como seguramente habr notado en Internet,
los gifs animados se ven mejor cuando su propio fondo es
transparente, por lo que en la mayora de los casos, la casilla
Automatic genera el efecto adecuado. Sin embargo,
desactivando la casilla, puede usted hacer transparente algn
color especfico.
Desactivando "Automatic", podemos
seleccionar el color del Gif que ser
transparente. Sin embargo, en la
mayora de los casos, los Gifs son
diseados para, precisamente, tener
un fondo que ser transparente, por lo
que rara vez usar esta paleta.

Con Speed podemos modificar la velocidad de la animacin


del Gif. Rate se refiere al tiempo en milisegundos entre sus
cuadros (1000=1 segundo). Sin embargo, un valor menor a 10
ms no da oportunidad a que se redibuje correctamente el gif en
pantalla. Por otra parte, Adjust tambin modifica la velocidad
de presentacin de cada cuadro, valores menores a 100% lo
aceleran, mayores a 100 lo ralentizan. Recuerde que puede
experimentar con estos valores pulsando el botn Animate.
Quiere acelerar o desacelerar la
animacin del Gif? Modifique estos
valores y observe el resultado en la
previsualizacin, hasta que obtenga
el resultado que busca.
115

Cmo hacer Cd's Multimedia


Autoplay inicia la animacin al activarse la pgina. Loop
lo mantiene ejecutndose cclicamente. Cuando esta opcin se
desactiva, podemos configurar lo que va a ocurrir despus del
ltimo cuadro del gif en la seccin After last frame (Despus
del ltimo cuadro*). Como podr ver, las opciones son dos,
ocultar el gif o ejecutar un script especfico.
Si lo piensa un poco, pero slo un poco (no se me vaya a
cansar), los gifs animados no tienen en su cuadro de propiedades la seccin Actions comn en muchos otros objetos, pero
con este enlace a los scripts, despus de la ejecucin de su
ltimo cuadro, hace que no estn limitados de ningn modo para
interactuar con otros objetos y con la aplicacin en general, pues
pueden disparar muchas otras acciones. Si acaso, el asunto se
vuelve un poco ms complicado, pues hay que crear el script,
pero nada ms.
Si el Gif no se va a ejecutar
cclicamente, puede ocultarse
despus del ltimo cuadro ("Hide
This Object"), adems de disparar la
ejecucin de un objeto Script, cuyo
cdigo puede incluir cualquier accin.

4.3.4 Botones de mapas de bits


Esta es una buena alternativa para crear aplicaciones
multimedia muy atractivas, con botones conformados por mapas
de bits. Un botn puede estar formado hasta por tres imgenes,
una inicial, que siempre presentar el botn. Otra cuando el
cursor est sobre l y una ms cuando haga clic. Las tres
imgenes pueden ser la misma con ciertas variantes, o bien ser
imgenes completamente distintas, lo que creara un efecto muy
loco, de verdad. Al respecto, chele un ojo al archivo Botones
de Bitmap del CD-ROM.
*Esta traduccin s la hice yo solito. Doa Chonita fue a la Merced por su mandado para
las quesadillas. Dice que an no hay proveedores confiables de cebolla, jitomate y dems
legumbres por Internet. Como sea, creo que ya aprend algo de traduccin de ella.

116

Cmo hacer Cd's Multimedia


A diferencia de otros objetos grficos, la lgica para crear el
objeto es ligeramente distinta. Al hacer clic en el rea de trabajo,
se abre el cuadro de dilogo de propiedades desde el cual
cargamos las imgenes que formarn el botn. Veamos.
El botn se encuentra en la barra horizontal,
en el mismo grupo que los botones normales.
Primera imagen
del botn

Imagen cuando
pasa el cursor
sobre el botn

Imagen cuando se
hace clic

Leer el archivo de
imagen o pegar desde el
portapapeles.

Acciones que se
derivan del clic al botn.

Librera de botones de bitmap,


puede usar las existentes o
grabar sus nuevas creaciones.

Desfase de la
posicin de la
imagen para
resaltar el clic.

Label, Hide, Lock Position y ToolTip, favor de pasar


a la sala de espera porque no vamos a repetir sus funciones.
117

Cmo hacer Cd's Multimedia


Gracias por participar y por todo el entusiasmo con el que
aparecen en casi todos los cuadros de dilogo, pero djenos
trabajar, por favor. Ya? Gracias.
La casilla Auto-Button crea el botn utilizando slo la
imagen inicial. Lo que hace es resaltar con un recuadro el botn
cuando el cursor est sobre l, con lo que se resuelve la falta de
la segunda imagen. Para la tercera, cuando hacemos clic con el
ratn, utiliza la misma imagen, pero desfasndola ligeramente,
creando el efecto de que el botn est pulsado.
Con "Auto-Button" activado, ya no es necesario cargar otras imgenes. El
botn se crea con sta desfasndola para dar el efecto de pulsacin.

Botones para leer los archivos de imagen o para


pegarla desde el portapapeles de Windows.

Para cargar las tres imgenes podemos usar el botn Load,


para elegir el archivo; el icono se usa para pegarla desde el
portapapeles, habindola copiado de otro programa.
Seguro tambin ya observ que podemos hacer transparente
el fondo de cada imagen, siempre y cuando sea un color slido
(para lo cual se adaptan muy bien los mapas de bits de 256
colores), como este procedimiento ya es conocido, no insistiremos ms en l.
Dos ltimos detalles: uno es que podemos desfasar la posicin
de las dos ltimas imgenes dando valores a la seccin Refine
Bitmaps position, lo que mejorar los efectos cuando el cursor
pase sobre el botn o haga clic en l. Lo otro es que podemos
grabar el botn en una librera de botones que puede sernos til
en el futuro. Para eso sirve la seccin "LIbrary".
118

Cmo hacer Cd's Multimedia


Un efecto sutil de desfase de la imagen
del botn es ms efectivo que un
desfase muy alto, por lo que sugerimos
valores bajos para X y Y.

Cada boton de bitmap que hagamos, puede ser parte de la librera


de botones de este tipo de MMB. De hecho, ya incluye algunos.
Use estos botones para leerlos o grabar nuevos.

Podemos obviar la explicacin del resto de las opciones de


este cuadro de propiedades, pues ya las conoce.

4.3.5 Archivos Windows Metafile


Tal vez no lo sepa, pero este tipo de archivos son los que
aparecen cuando usted selecciona una imagen prediseada
de algn programa de Microsoft Office, como Word o Excel.
Por tanto, si tiene este paquete instalado (quin no?), busque en su disco duro todas los .WMF y encontrar ms de los
que se imagina.
Su virtud es que son dibujos de vectores que no pierden su
calidad al redimensionarse. Sin embargo, en MMB no tienen ms
funcin que la de servir para ilustrar su aplicacin. No se les
puede programar acciones y su cuadro de propiedades ni siquiera necesita ser explicado, pero hay cierto necio que insiste en
poner la imagen y algunas palabras adicionales, o sea, yo.
El botn para insertar imgenes
"Windows Metafile" est en el mismo
grupo de mapas de bits y Gifs animados.
119

Cmo hacer Cd's Multimedia


Quisiera poder tener muchas
cosas que decir sobre este
cuadro de propiedades de los
"Windows Metafile", pero no
es as. Podra aadir algo,
pero seguramente seran
elucubraciones intiles, o
disertaciones profundas,
quin sabe...Me las ahorrar
para que no se desgaste
leyendo de ms.

4.3.6 reas sensibles (Hot-Spots)


Las reas sensibles, o ergenas, son aquellas cuya
estimulacin despierta la libido de las personas. Varan segn el
organismo de cada quin, pero pueden mencionarse los lbulos
de los odos, el rea entre piernas, los pectorales yPerdn! Ya
me acord que este libro no es sobre sexualidad, sino sobre
cmo hacer CDs multimedia con un programa llamado Multimedia
Builder, apodado "MMB", lo que no significa Mientras Ms,
Bueno es. As que empecemos de nuevo.
Las reas sensibles, o Hot-Spots, son objetos invisibles
durante la ejecucin a los que podemos programarles acciones
como las que ya hemos visto a lo largo del texto.
Los Hot-Spots suelen usarse sobre alguna imagen para que
el usuario haga clic en distintas zonas buscando accin (accin
multimedia, of course, no de la otra) y pueden ser de dos tipos:
rectangulares y como polgonos irregulares. En cualquiera de
los dos casos, un doble clic nos permite configurar sus acciones.
La barra horizontal muestra los dos tipos
de "Hot Spot", rectangular o poligonal,
el resto consiste en crear el objeto sobre
el rea de trabajo y luego darle doble
clic para establecer las acciones.
120

Cmo hacer Cd's Multimedia


El cuadro de propiedades no tiene nada que no hayamos visto
antes, por lo que mejor lo remito al ejemplo Hot Spot que viene
en el CD-ROM.

El cuadro de propiedades de los "Hot Spot" no tiene nada que no hayamos


visto ya. El nfasis aqu es configurar las acciones que se desencadenarn
cuando el usuario pase el cursor o haga clic en al rea del objeto. Por lo que
mejor le sugerimos buscar el archivo de ejemplo en el CD-ROM, del cual le
ofrecemos aqu una imagen.

121

Cmo hacer Cd's Multimedia


4.3.7 Efectos Especiales dinmicos
El objeto conocido como Dynamic FX es es qu es?
Bueno, ver usted, es de esas cosas raras que les da a los
programadores por inventar. En rigor, se trata de un rectngulo
que el usuario dibuja en pantalla con el ratn, luego podemos
abrir su cuadro de propiedades y configurar ah, de entre una
gran cantidad de combinaciones posibles, la animacin que ms
nos guste y como se trata de una animacin, pues no nos queda
ms que presentarle una instantnea de la misma.
Se elige el botn para crear el objeto, se dibuja el
rectngulo y luego se establecen las propiedades
de la animacin. Se le hace familiar este
procedimiento o es toda una sorpresa ?

En el CD-ROM va a encontrar un proyecto llamado FX, pero honestamente ni lo abra, mejor hgalo usted. Este ejemplo est muy rampln.
122

Cmo hacer Cd's Multimedia


En el archivo FX del CD-ROM podr ver algunos alucinantes
ejemplos de los efectos especiales, pero cuya elaboracin no tiene
ningn chiste. En lo que va corriendo a su computadora a verlo, le
cuento que este tipo de objeto es pasivo, pues no le podemos aadir
acciones, ni scripts, ni nada con que responder a los desesperados
clics del usuario. Me imagino que este tipo de objeto puede servir
como fondo hipntico de alguna interfaz y, si acaso, como relleno de
la parte invisible de otro objeto que est encima o cualquier otro
truco similar. Pinsele, por favor y ver cuntos usos le encuentra.
Del cuadro de propiedades slo le puedo decir que experimente con
l, vea cmo funciona cada uno de los efectos que contiene y
modifique a diestra y siniestra sus diversos parmetros.
Parmetros adicionales.
Estilos de color
Tipo de efecto

Usted haga clic aqu y all, pruebe combinaciones, muvale a diestra


y siniestra y vaya viendo el resultado. No se va a convertir experto en
efectos especiales, que esto no es cine, pero se va a divertir un rato.

4.3.8 Clones de Bitmap


Los objetos de mapas de bits pueden clonarse cuales viles
ovejas Dolly. Y crame cuando le digo que sera para m
sumamente interesante comenzar a disertar aqu sobre lo que se
ha dicho respecto a los bemoles ticos de la clonacin. Lstima
que no es el lugar, ni, por el momento, estoy preparado para
intervenir en dicha discusin.
123

Cmo hacer Cd's Multimedia


Lo que s puedo decirle es que clonar un mapa de bits tiene la
ventaja de que cualquier cambio que realicemos sobre el objeto
padre durante el diseo, modificar al clon o clones que
hayamos generado. Tambin vale decir que los clones pueden
estar en pginas diferentes y que, sin embargo, a cada clon le
podemos programar, por separado, acciones diferentes. Por
ltimo, su virtud principal radica en que es un buen modo de
poner muchas veces la misma imagen sin que sta ocupe mucho
espacio en memoria.

Para crear un clon, debemos usar


este men cuando est seleccionado
el bitmap a clonar.

Para ilustrar lo aqui dicho, abra el archivo del CD-ROM llamado


"Dolly", modifique el mapa de bits original y observe el resultado.
Asimismo, cada clon tiene una accin de sonido distinta.

124

Cmo hacer Cd's Multimedia


4.4 Video
Los archivos de video soportados por MMB pueden tener el
formato .AVI, .MPG (que tiene a su vez algunas variantes: mpeg
y mlv), .WMV, .ASF, .ASX, .WMA y .DAT (los clebres VCD que
venden en todos los tianguis con las pelculas de estreno y an
las que no se han estrenado). En teora, MMB tambin soporta
los archivos de video en formato .MOV, de Quick Time, de Apple,
pero en la prctica, este formato no garantiza que el programa
funcionar en distintas computadoras.
Incluso, para los formatos .WMV, ASF, ASX y WMA, se
sugiere que la computadora tenga instalado ActiveX 6.0 o
superior y Windows Media Playar 7.0 o superior.
Esto quiere decir que si su programa va a incluir archivos de
video, debe indicar estos requerimientos mnimos para que no
falle en terceras computadoras. La alternativa es convertir los
videos a formato .AVI, que tiene soporte universal en Windows,
lo que garantizara una ejecucin sin problemas.
En otras palabras, si va a distribuir su programa, utilice slo
videos en formato .AVI. Ahora que si usted ya haba creado su
material en otros formatos, no hay ningn problema. Considere
que es posible pasar de formato a formato utilizando programas
de edicin de video o utileras que, para el efecto, puede buscar
en Internet.
Por ejemplo, para convertir de .MOV a .AVI, utilice el programa
RAD video tools, que puede descargar gratuitamente de la
siguiente direccin (al menos cuando escribimos esto), ah
mismo encontrar instrucciones de cmo se hace, aunque el uso
de la utilera es obvio.
http://www.radgametools.com/bnkdown.htm
Igual que para los gif's animados, hemos incluido esta utilera
en el CD-ROM, as que ahrrese la conexin a Internet.
Ahora que si ya tiene todos los videos con los que va a construir
su enciclopedia multimedia de la fauna depredadora de Mxico
(es decir, de cierto sector de la clase poltica y empresarial) en
AVI, entonces puede irlos acomodando en sus pginas haciendo
clic en el botn correspondiente de la barra de herramientas.
125

Cmo hacer Cd's Multimedia


Para insertar archivos de video, usamos este
botn de la barra de herramientas. Ya le haba
dicho que el men "Object" tambin tiene una
opcin para el mismo efecto? Creo que s, no me
acuerdo, pero no importa. Es usted tan listo(a) que
seguro ya se dio cuenta. Al pulsar el botn, se
abre el cuadro de dilogo para seleccionar el
video. Observe los formatos aceptados por MMB.

Despus de indicar el archivo, se abre un cuadro de dilogo que


sirve para elegir una imagen del video que se va a ver en la interfaz
cuando el video no est en ejecucin. Para seleccionar el cuadro
podemos ejecutar el video y luego usar los controles para hacer
pausa, avanzar o retroceder hasta el punto adecuado.
El cuadro de dilogo que se abre
despus de hacer clic sobre el
archivo de video, slo sirve para
seleccionar un cuadro en particular,
que ser el que se muestre en la
interfaz cuando el video no est en
ejecucin. Para elegir el cuadro,
podemos usar los botones para
avanzar o retroceder el video.

126

Cmo hacer Cd's Multimedia

El video queda inserto en la interfaz


de la aplicacin, pero no tiene
botones para controlar su ejecucin.
Por otra parte, no inclumos aqu
ningn video de algn dinosaurio de
la poltica mexicana, pues no
queremos espantar a los menores.

Durante la ejecucin del programa, el video, por s solo, no se


va a reproducir, slo va a presentar la imagen congelada que
hayamos elegido al insertar el objeto. Podemos hacer que la
reproduccin del video comience al entrar a la pgina; para ello,
en las propiedades de la misma, aadimos un script con el
comando correspondiente que estudiaremos ms adelante. Sin
embargo, lo comn es que usemos otros objetos que sirvan
como botones para comenzar el video, detenerlo, avanzar,
etctera. Recuerde que podemos dibujar los botones y luego
programar estas acciones en Interaction with other objets" de
las propiedades de cada botn.
En la aplicacin podemos
aadir un botn y a ste, en
"Interaction with other
objects", la accin de ejecutar
el video. Luego podemos
aadir otros botones con las
acciones "Pausa", "Retroceder", etctera. En realidad,
esto ya lo habamos visto en el
apartado 3.5

127

Cmo hacer Cd's Multimedia


En la carpeta Videos del CD encontrar varios archivos AVI
que le van a servir para experimentar al respecto. Puede crear
controles de video personalizados usando botones u otros
objetos, aunque, en realidad, Romn Voska ya nos simplific el
trabajo (sin que se lo pidiramos, para que vea que el acomedido
donde quiera cabe). Seleccione un video que haya insertado en
la pgina, luego pulse el botn Wizard de la barra de herramientas y utilice el men Insert Video Controls, lo que colocar, junto al video, un grupo de botones preprogramados con
todos los controles necesarios: Reproducir, Detener, Pausa, etctera.
El botn "Wizard", que estudiaremos en detalle ms adelante,
simplifica el trabajo automatizando
algunas tareas, en este caso, el de
la generacin de controles de video.
Observe el resultado.

Con cualquiera de los dos mtodos (insertando los botones


prediseados de MMB o creando sus propios controles y usando
los comandos de "Interaction with other objects"), an le falta
establecer las propiedades del objeto de video. Un doble clic en
l abrir el cuadro de dilogo correspondiente:
128

Cmo hacer Cd's Multimedia


Opciones de
ejecucin.

Acciones despus
de finalizado el
video.

Imagen de
presentacin.

Guardar imagen de
presentacin.

Script asociado a
la ejecucin de
Velocidad de reproduccin.
video.

Las propiedades Label, Hide Still image (ocultar la imagen congelada que seleccion al insertar el video) y Lock
Position no requieren explicacin. En cambio, observe que
desde esta ventana puede leer otro archivo AVI para que
sustituya al anterior. Esto se debe a que el video, de cualquier
manera, permanece como un archivo externo al programa final
de MMB. Por tanto, no olvide que debe usted sustituir la ruta de
acceso al archivo por su equivalente relativo, que ya vimos antes
o no funcionar bien en todas las computadoras a donde su
programa vaya a parar.

Aqu se indica la ruta al archivo. Con el botn podemos seleccionar un


nuevo video. No olvide que esta es la ruta absoluta, al finalizar el
proyecto, debemos sustituirla por la ruta relativa.

Por su parte, las casillas de verificacin Loop, Sound y


Full Screen activarn estas caractersticas cuando comience
la reproduccin. Loop lo dejar reproduciendo en ciclos,
129

Cmo hacer Cd's Multimedia


Sound har que reproduzca su sonido y Full Screen que
ocupe toda la pantalla, aunque en este ltimo caso, puede perder
calidad la imagen.
Las tres casillas pueden estar
activadas. La reproduccin en
pantalla completa suele disminuir la
calidad de la imagen.

Qu va a ocurrir con su aplicacin cuando el video termine?


En algunos programas multimedia, los programadores optan
porque el programa regrese al men principal. En otros, simplemente, esperan una nueva eleccin del usuario. En nuestro caso
podemos decidirlo de entre el grupo de opciones que estn bajo el
rubro After video finish (Despus de que el video termine)*.
Entre las acciones que podemos
establecer cuando el video termine
estn: a) No hacer nada; b) devolver
el video a su cuadro inicial; c)
Descargar el objeto de video y
ocultar la imagen de presentacin y;
d) pasar a la pgina siguiente.

Tambin podemos asociar scripts al video con la casilla "Run


Scripts". El botn "Define" nos permite escribir el cdigo y
decidir cundo se ejecuta: al leer el video, al iniciar la reproduccin, al detenerse o cuando finaliza. Lo que da un control total
sobre la reproduccin del video y de lo que ver el usuario en
cualquiera de estos momentos.
* Le dira que Doa Chonita tambin particip en la traduccin de esta parte, pero no
puedo hacerlo por dos razones: una, porque si no lo hago solito, se va a pensar que no
puedo ni con las traducciones ms sencillas, lo que me hara ver como intil. Dos, porque
Doa Chonita dice que si la sigo distrayendo, hasta para eso, me va a recoger la
computadora y, lo que es peor, no me va a dar a probar sus nuevas quesadillas de tinga
con su maravillosa receta secreta.

130

Cmo hacer Cd's Multimedia


Toda una secuencia de comandos
puede ser activada en distintos
momentos de la reproduccin del
video. Observe que la ventana para
escribir el script, que se abre con el
botn "Define", tiene 4 cejas para
seleccionar dicho momento.

Cejas de la ventana de Script. El resto


de la ventana ya la conoce.

La propiedad Speed permite modificar la velocidad de reproduccin del video, sobre la base de que 1000 es la velocidad normal.
Valores menores ralentizan el video, mayores lo aceleran.
"Mask" permite leer un mapa de bits (generalmente en blanco
y negro) que crear un contorno distinto sobre el que se reproducir la pelcula. Hay que crear o elegir un mapa de bits con una
silueta adecuada, todo lo dems funciona igual.
Con el boton podemos seleccionar un mapa de
bits en blanco y negro. La parte negra ser
transparente y servir para crear un contorno
personalizado para la reproduccin de la pelcula.

131

Cmo hacer Cd's Multimedia


Ha visto alguna vez una pelcula de Batman dndose de
mandarriazos con el Depredador? Yo creo que ese es uno de los
tantos deseos secretos de los fans de Batman que siempre
hemos querido ver cumplidos. Igual que ver cmo Batman vence
limpia, contundentemente a Superman, como ocurre en Dark
Knight Return (El retorno de el Caballero Oscuro) y DK2, los
cmics escritos por Frank Miller y publicados en Mxico por
editorial VID. Debera conseguirlos y deleitarse con la derrota del
ltimo hijo de Kriptn (y despus que los lea, me los regala para
mi coleccin).
En el CD-ROM encontrar un programa llamado Batman en
donde no slo ilustramos la insercin de video en una aplicacin
de MMB, sino, adems nos damos gusto con este film de Sandy
Collora sobre el enigmtico vigilante de ciudad Gtica. Cheque
el dato y regresa.

132

Cmo hacer Cd's Multimedia

5
Otros objetos
5.1 Objetos preprogramados
A poco no est buena la pelcula? No le gust? El final lo
deja a uno sin saber qu? Mmhh, bueno, hablemos de otra cosa.
Como habr comprobado, el botn Wizard de la barra de
herramientas incluye una serie de objetos preprogramados que
simplifican enormemente la elaboracin de controles, fundamentalmente para la ejecucin de audio y video.

Insercin de botones

Controles para audio y video.

Efectos visuales
Captura de la tecla "ESC".

Las primeras dos opciones insertan botones en la pgina


activa con las funciones ya definidas en sus propiedades.
La primera opcin inserta botones para
avanzar o retroceder entre las pginas.
La segunda un botn para cerrar la
aplicacin. Igual que cualquier objeto,
con doble clic abrimos sus propiedades.
133

Cmo hacer Cd's Multimedia

Observe que el botn cerrar es simplemente un botn de bitmap. En


sus acciones est configurada la accin salir cuando se pulsa. Los
otros dos botones tambin son muy sencillos: avanzan o retroceden
de pgina y su texto puede cambiarse, como ya sabemos.

Las opciones del segundo grupo del men insertan grupos de


botones para controlar la reproduccin de video, como ya vimos,
pero tambin la de audio. Insert MP3 controls, por ejemplo,
crea, casi automgicamente un reproductor de archivos MP3 en
su computadora, slo le faltara el arte de la interfaz.

La opcin de men inserta un grupo


de botones para la reproduccin de
archivos MP3 y dos etiquetas CBK
que se estudiarn extensamente en
el captulo 6. Para ver o editar las
propiedades de algn botn del
grupo, recuerde que lo seleccionamos en el administrador de objetos,
sin necesidad de desagruparlo.

134

Cmo hacer Cd's Multimedia


Sera muy ilustrativo que usted insertara estos botones en una
pgina y explorar las propiedades de cada botn. Adems, si
tiene archivos MP3 en su computadora (jurara yo que s),
ejecutara el programa, con lo que hara un reproductor de MP3
en un par de minutos. Prubelo, pero antes lea el apndice C.
Cabe decir tambin que la insercin de controles para la
reproduccin de CDs, archivos MOD (que tambin son de
audio) y video siguen exactamente la misma lgica.
Controles para la reproduccin de
archivos .MOD
Reproduccin de CD's de audio.

El tercer grupo del men del botn "Wizard" tiene dos opciones: Insert Lens Flare (Destello de lente) y Glow on Move
Mouse (Brillo al moverse el ratn). En el primer caso, basta
con insertar el efecto de destello sobre un objeto de mapa de bits
para resaltarlo. Se trata de un objeto grfico, por lo que tambin
se le pueden programar acciones.

Observe la diferencia entre estas dos imgenes, la segunda tiene


encima un "brillo de lente", que es slo otro objeto grfico. Si abrimos
sus propiedades, podemos aadirle acciones. Digamos que es un
plus atractivo para resaltar algunos mapas de bits.
135

Cmo hacer Cd's Multimedia


El brillo al moverse el ratn es un efecto interesante que ya
habamos revisado en el apartado 4.3.2, slo que aqu est
simplificado. Elegimos el objeto al que le vamos a aplicar el
efecto, seleccionamos la opcin y usamos el cuadro de dilogo
para afinar parmetros.
Seleccionamos la imagen y
la opcin del botn
"Wizard", luego modificamos los parmetros del
cuadro de dilogo a placer.
Hay que destacar tambin
que el efecto es mejor an
si la imagen tiene establecido el fondo transaparente
en sus propiedades,
observe el resultado.

En el cuadro de dilogo
escogemos el color del
brillo, su tamao, etctera.

Durante la ejecucin del programa, el efecto


de brillo funciona cuando pasamos el ratn
sobre, en este caso, el ratn (!?). Usted
me entiende. Adems, ya sabemos lo que
ocurre: Se crea un nuevo mapa de bits que
bordea el objeto y se establecen propiedades de interaccin para que aparezca y
desapareza al pasar el cursor. Fcil.
136

Cmo hacer Cd's Multimedia


El ltimo grupo del men inserta botones en la Master Top
Layer, pero esto lo revisaremos un poco ms adelante, cuando
estudiemos las etiquetas CBK. As que permtame dejarlo
pendiente.
Finalmente, junto al botn Wizard estn sus dos hermanos
menores, Buble y Sparkle, dos chamacos latosos que no
tienen ms gracia que la de aadir sus figuras prediseadas en
las pginas. "Sparkle" comparte todas las propiedades de los
objetos grficos, Buble, el ms bobo de los dos, ni siquiera eso.
No s porqu "Buble & Sparkle" me suena
como a "Starsky & Hutch", los cuales a su vez
remiten mi mente a "El Gordo y el Flaco",
"Viruta y Capulina", "Manoln y Chilinsky",
"Derbez y Creel", "Moroco Topo y el Inspector
Ardilla", "Barney y Godzilla", etctera. Como
sea, aqu estn estos botones que sirven para
enriquecer grficamente su aplicacin.

"Sparkle" suele usarse sobre


otros mapas de bits, pues slo
aade efectos de brillo. Podemos
modificar su color y, como ya
mencionamos, aadir acciones
a sus propiedades. Dados sus
conocimientos en el tema, slo
nos resta sugerirle que experimente con ellos.

137

Cmo hacer Cd's Multimedia

"Buble" inserta globitos y algunos


grficos de flechas. Recuerde que estos
objetos ya fueron utilizados en la aplicacin donde hacamos hablar a algunos
personajes de la poltica. Yo creo que en
prximas versiones de MMB, van a aadir
ms objetos a esta lista.

5.2 Audio visualizacin


Este objeto muestra grficas de sonido mientras se ejecuta. Para
usarlo, no tiene ms que insertar el objeto, dimensionarlo a gusto
para que quede a tono con su interfaz y luego seleccionar su
forma y sus colores en el cuadro de propiedades. Haga un
programa y valo en accin. En el CD hay un sencillo ejemplo
llamado audivis.
El botn para insertar objetos de
audiovisualizacin est en la barra
horizontal junto al de "Efectos especiales".

En el cuadro de propiedades pueden seleccionarse dos vistas: como


osciloscopio o analizador. Tambin podemos modificar el color de fondo, el de
la lnea y algunos otros valores. Vea el ejemplo y selo en sus aplicaciones.
138

Cmo hacer Cd's Multimedia


5.3 Objetos HTML
Usted puede rematar su programa en MMB, en la ltima
pgina, con un mini-mini-mini-navegador de Internet dirigido a la
pgina de su empresa, de la empresa de su cliente (noms para
apantallar) o a la de alguna pgina que ofrezca informacin clave
para el asunto en cuestin. Puede aadir dos, tres, cuatro
ventanas navegadoras, cada una dirigida a sitios distintos y, si
tiene una conexin a Internet activa, hacerlos decir: Wow, qu
manera de programar de esta persona, seguro es una fiera para
el lenguaje C o Java.
Botn de la barra de herramientas para insertar una
ventana navegadora de Internet. Recuerde que el men
"Object" tiene la misma opcin. Despus de creado el
objeto, tiene esta apariencia. Lo dems consiste en editar
sus propiedades y verlo en accin al ejecutar el programa.

En el cuadro de propiedades indicamos la


direccin de internet o el archivo HTML
que va a abrir el objeto. En el primer caso
se requiere una conexin funcionando.

139

Aqu se pueden aadir botones


bsicos de navegacin.

Cmo hacer Cd's Multimedia


El programa buscar conectarse a la direccin de Internet de las propiedades.
Observe los botones para avanzar, retroceder, detener y recargar que se
aadieron automticamente. Si indicamos un archivo HTML del disco duro o un
CD-ROM, recuerde que siguen siendo vlidas las observaciones sobre las rutas
relativas. Finalmente, si hace un programa para una presentacin corporativa, no
le vaya a pasar lo que a m, que puse por error una direccin hacia un sitio de
fotografas de Nicole Kidman. Les gust mucho y anduvieron navegando en el
sitio, pero ya nadie record la reunin y mi jefe me despidi...

5.4 Objetos de Script


En infinidad de ocasiones hemos mencionado que los objetos
activos pueden tener, adems de las distintas acciones, cdigo
con comandos de MMB para que la respuesta del objeto sea ms
sofisticada an. En el apartado 3.4 vimos incluso cmo funciona
la ventana para escribir cdigo y un "wizard" que automatiza la
elaboracin de programas. En sntesis, la idea que ah se trataba
era que los objetos pueden contener scripts, cdigo, secuencia
140

Cmo hacer Cd's Multimedia


de comandos, programacin o como quiera llamarle.
Ahora la idea es distinta, los objetos Script son solo cdigo.
Son invisibles durante la ejecucin de los programas y, a diferencia de los Hot-Spot, que tambin son invisibles, son objetos
pasivos, pues no podemos aadirles otras acciones que se
desencadenen con un clic del ratn, por lo que tambin da igual
su ubicacin en la pgina, podemos ponerlos en cualquier parte.
Una pgina con varios objetos Script se vera as:

Varios objetos Script sobre una pgina, cual legin de eSpectros....

El punto aqu es: Para qu queremos esos entes fantasmales


compuestos de cdigo, que son invisibles durante la ejecucin
del programa y que ni siquiera podemos hacerles clic para que,
al menos, digan "Bu"? De qu nos sirve crearlos en una pgina
y dejarlos por ah regados, sin una ubicacin especfica y sin
formar parte de la interfaz? Ser que deben vagar por la pgina
porque son las almas de objetos con cdigo que un da fueron
salvajemente borrados? Ser que es cdigo en busca de
venganza? Mmhh, no lo creo.
En programacin los espectros, fantasmas, espantos, demonios y hasta uno que otro ngel tienen poco o nada que ver.
Los objetos script son una manera de aadir cdigo a una
pgina que slo va a funcionar en determinadas circunstancias
no necesariamente relacionadas con el ratn o los dems
objetos. Un objeto Script puede activarse con una combinacin
141

Cmo hacer Cd's Multimedia


de teclas o cuando es llamado a la accin desde otro script. Pero
centrmonos en el primer caso, que es el mas interesante.
Cuando abrimos el cuadro de propiedades de un objeto Script,
podemos ver la ventana para escribir cdigo que ya habamos
revisado en el apartado 3.5 y otra a la derecha para aadir
comentarios. Tenemos tambin el botn del editor ampliado, el
botn "Wizard" y los que sirven para abrir archivos de texto con
cdigo y para guardarlo. La novedad aqu es que podemos
configurar una combinacin de teclas que ejecutar el Script,
independientemente de lo que ocurra con los dems objetos. Por
lo que su programa monitorear* permanentemente las acciones
del usuario a la espera de la pulsacin de esa combinacin de teclas.
Ventana de propiedades de Script

Botones para facilitar la creacin de


cdigo: "Wizard", "Editor ampliado", "Abrir y grabar texto".

Seccin para determinar la combinacin


de teclas que disparar el Script.

*"Monitorear"? No estoy seguro que esta palabra exista. Cbrala con un lpiz y al
margen del libro escriba la palabra "supervisar". Gracias.

142

Cmo hacer Cd's Multimedia


Los objetos Script pueden entonces ser llamados al frente de
batalla con una combinacin de teclas o, como ya habamos
dicho tambin, desde otros Scripts a travs de los comandos
"RunScript" y "ScriptTimer".
Y usted dir: "Pues s, todo est muy bien, qu bonito Y yo
como diablos se qu cdigo hay que agregarle a los objetos
Script? Nadie me ha enseado eso. Luis Manuel habla de
cdigo por aqu, cdigo por all, que el Script del objeto, que el
objeto Script y quin sabe cuantos trabalenguas ms, pero no se
explica claramente, no va al meollo del asunto, o sea qu
cdigo escribo? qu comandos hay? cmo se usan? De
verdad me da ms posibilidades para mis programas multimedia?
Debera tirar este libro a la basura porque yo no soy fan de Nicole
Kidman, sino de Salmita" (Las mujeres pedirn a Antonio Banderas y otras, como Paty, al viejito de Harrison Ford).
A lo que yo le responder: "Tranquilo(a), calma. Cmo escribir
Script es tema del captulo siguiente, lo mejor est por venir.
Adems, si vamos a discutir esos asuntos Qu opina de Mnica
Bellucci?" (para ellas podra proponer a Russell Crowe pero no
me voy a ver bien).

143

Cmo hacer Cd's Multimedia

6
El lenguaje de MMB
Estimado lector: Se acuerda que al inicio de este libro,
incluso en el ttulo, le dije que bamos a hacer CDs multimedia
sin programar? No es que me burle pero Ja, lo enga! Nos
disponemos a programar ahora mismo.
Qu pasa? Por qu mira el libro con esos ojos? Tranquilo,
clmese por favor No tire el libro Noo! (Mmmhh, ya lo tir
y s duele) Ahora recjalo Me deja explicar? A ver, cuente hasta
diez mientras respira profunda y pausadamente. Ya? Va por
puntos:
1.- Su deseo de aprender ya lo trajo hasta aqu a poco no?
Si no le hubiera gustado el asunto ste del MMB, no estara
leyendo esto. Porqu no aprender un poco ms?
2.- Programar es un ejercicio intelectual gratificante. Las
neuronas tambin se ponen flcidas si no hacen un poco de
ejercicio. As que preprese para unas abdominales y lagartijas
abstractas, combinadas con brincos y carreras de induccin y
deduccin y rematadas con un poco de esfuerzo mental. Le va
a gustar, sin albur.
3.- En realidad, el lenguaje de MMB es mucho menos extenso
que otros lenguajes.
El lenguaje C, Pascal, Java, vaya, hasta el vilipendiado Visual
Basic, tienen cientos de comandos y cada uno decenas de
parmetros. En MMB estamos hablando de unos cuantos comandos, unas cuantas funciones y unas pocas reglas. Incluso no
necesita memorizar cmo se escriben los comandos y las
funciones pues, como veremos en breve, el asistente del lenguaje pone todo a la mano.
El premio de aprender a programar en este lenguaje es dominar
hasta el tutano las aplicaciones que podemos hacer con MMB,
para luego sacarle el mximo provecho posible. As que por favor,
deje de hacer pucheros y dispngase para las siguientes pginas,
ligeramente ms densas que el resto del libro.
144

Cmo hacer Cd's Multimedia


Por cierto, de aqul lado estn los klennex, por ah me pasa
uno que me est dando gripe.

6.1 Conceptos bsicos


En el apartado 3.5, y en diversas partes a lo largo de todo el
texto, nos hemos referido a los scripts y a la programacin con
MMB, por lo que no se puede decir que llegamos a este punto
partiendo de cero. Sin embargo, no hemos definido qu elementos componen los Scripts de MMB. Si usted ha programado
alguna vez en su vida, el asunto le parecer muy fcil. Si nunca
ha tenido contacto con la programacin, entonces quite el muy
y djelo en fcil, a secas.
Los programas (o scripts, como desee), se componen de una
secuencia de rdenes (comandos) que la computadora realiza
durante su ejecucin. Por lo que, haciendo analoga con el
lenguaje humano, la mejor manera de estructurar dicha secuencia de rdenes es a travs de oraciones, es decir, de lneas de
cdigo. Y como una oracin real, cada lnea de cdigo debe
respetar la sintaxis establecida. Algo as como tener sujeto,
verbo y predicado. Por tanto, cada lnea de cdigo tiene un
comando, con los parmetros y datos necesarios para que
pueda funcionar.
Message("Est seguro que desea continuar?","ms")
Muestra de un comando con los parmetros adecuados para
que funcione. O sea, su sujeto, verbo y predicado.

Adems de los comandos, estn las funciones, que realizan


operaciones con los datos u ofrecen informacin del programa o
el sistema, como veremos en breve.
MemSistem$=GetMemory()

Funcin que devuelve el total de memoria del sistema y la cantidad libre.


145

Cmo hacer Cd's Multimedia


El lugar para desarrollar el programa, como ya sabe hasta la
saciedad, es el editor de Scripts. Como recordar tambin,
podemos aadir cdigo a cada objeto, el cual se dispara cuando
hacemos clic en l o, en casos como los objetos de video, cuando
termina su reproduccin. Tambin podemos aadir cdigo a las
pginas e incluso hacer cdigo como objetos en s mismos, el
cual se ejecuta con una combinacin especfica de teclas, como
vimos al final del captulo 5. As, un programa de MMB puede
tener cdigo por todas partes: detrs de las cortinas, debajo de
cada piedra, hasta en la cocina y, temo decrselo, puede que
hasta en su cama. Es ms, a lo mejor estamos rodeados de
cdigo en cada pared, en cada cosa que nos rodea, por culpa de
Romn Voska y eso es lo que intenta decirnos Neo en Matrix* y
no le hemos hecho el caso debido.
Si hay cdigo en cada objeto del programa, en las pginas,
objetos Script y dems qu cdigo entra en operacin? Eso
depende de qu haga el usuario. Eso es lo que se llama
"Programacin orientada a eventos". El programa queda a la
espera de las acciones del usuario y, dependiendo de stas,
realiza las rdenes programadas.
El editor de Scripts tiene tres poderosas caractersticas que
facilitan la elaboracin de los programas. Una es que va dando
formato al programa, indentando las lneas de cdigo y aadiendo colores a los comandos, conforme usted lo va escribiendo.
Fragmento de una ventana de
cdigo donde se ve cmo MMB
va indentando el programa para
facilitar su escritura. Esto se
realiza automticamente
durante el desarrollo.

*Para decirlo con franqueza, los efectos visuales y el ritmo de la accin en Matrix son
muy buenos, pero la historia es muy chafa. Para qu tanto discurso plagado de jerga
informtica y de programacin para salir con un final mstico? Mmhh, no me convence.
Para pelculas sobre mundos virtuales, le recomiendo mejor que vea "El piso 13". Y si
quiere conocer los terribles avatares de un matemtico programador de modelos, vea "El
orden del caos". Acuda a su videoclub preferido o a su proveedor de VCD's. (Esta cpsula
de cine fue patrocinada por: "Quesadillas Doa Chonita, sabor que distingue").

146

Cmo hacer Cd's Multimedia


La segunda caractersticas es que reconoce cuando el usuario
ha comenzado a escribir un comando especfico y lo completa
automticamente, ahorrando trabajo de escritura y evitando
errores de sintaxis.
La tercera caracterstica es que el botn derecho del ratn
sobre el editor, ofrece una relacin completa de comandos y
funciones del lenguaje. Por eso le decamos que no hay que
memorizar nada, todo est ah.

Con un clic al botn derecho del ratn sobre el rea de edicin de


Script, aparece un men con todos los comandos y funciones del
lenguaje de MMB, las cuales se insertarn con la sintaxis correcta.

Por si todo lo anterior le parece insuficiente, tenemos tambin el


Wizard para construir cdigo, que tambin ya habamos revisado
en el apartado 3.5. Vemoslo grficamente, para abreviar.
Al pulsar el botn "Wizard" del editor de
Script se abre el cuadro de dilogo que ya
habamos mostrado antes, que automatiza
la generacin de lneas de cdigo.
147

Cmo hacer Cd's Multimedia

Con todo, el uso del "Wizard Script" resulta limitado respecto a la


lista del botn derecho del ratn, pues incluye no slo todos los
comandos, sino adems todas las funciones. An as, puede usarse
uno u otro indistintamente. El procedimiento, como ya sabemos, es
escoger el comando y luego aadir los parmetros requeridos.

Finalmente, todos los lenguajes de programacin ofrecen un


mtodo para insertar comentarios entre el cdigo, de modo que
el programador pueda aadir notas que guen su trabajo o que
sirvan de advertencia a terceros que tengan que revisarlo.
Para crear comentarios en el cdigo de MMB usamos un
doble asterisco al inicio de la lnea. MMB sabr que lo dicho ah
no le incumbe y no intentar interpretarlo y ejecutarlo; es ms, ni
lo voltear a ver
Cuando escribimos un doble asterisco, MMB
detecta que se trata de un comentario y no de un
comando o funcin. Cuando lo pruebe, observe
que quedan resaltados con color verde.

148

Cmo hacer Cd's Multimedia


Tambin es comn que al ejecutar pruebas de un programa,
algo no marche bien y no sepamos exactamente qu lnea fall.
Entre programadores es comn poner un doble asterisco al inicio
de una lnea de cdigo para convertirla en comentario e impedir
que MMB la ejecute para efecto de pruebas, por lo que el doble
asterisco tambin se convierte en una herramienta para la
verificacin y depuracin de los programas.
Lo que sigue son las palabras del lenguaje, todos los comandos, funciones y otros elementos y cmo se usan. Ya depende
de usted si los combina para hacer un discurso largo y tedioso o
apenas para un mensaje parco y sin elocuencia.

6.2 Valores constantes


De entrada contamos con valores constantes. Cmo definimos un valor constante? Simple, como aqul que no cambia, por
lo menos bajo circunstancias normales. Por ejemplo, qu edad
tiene usted? Si no cumple aos pronto, podemos considerar su
edad como un valor constante de aqu a su prximo cumpleaos.
Y si su cumpleaos fue hoy, su edad ser un valor constante
durante un ao. Si el valor del que hablamos es de 25 (qu edad
maravillosa, caray! Sospecho que me estoy haciendo viejo), el
rubro bajo el que queda el dato es Edad. Puede expresarse as:
Edad=25
En otras palabras, Edad se convierte en la etiqueta que
distingue al valor. Es como un contenedor de la constante, la cual
puede copiarse a otro contenedor. Supongamos que, en este
caso, nos referimos a la edad de Juan. Podramos crear un
contenedor ms especfico y luego copiar de contenedor a
contenedor:
EdadJuan=Edad
Si imprimiramos el contenido de "EdadJuan", el resultado
sera 25. Lo cual hara suponer a mucha gente que, por su edad,
Juan es un sujeto juvenil, fuerte y fogoso. Pero recuerde tambin
149

Cmo hacer Cd's Multimedia


que no slo es el modelo, tambin influye el kilometraje y hasta
el terreno transitado. Juan a sus 25 est as:

Vea en cambio a Carolina, que a sus 59 est as:

En MMB tenemos valores constantes de diverso tipo que


obtenemos de sus contenedores y los vaciamos en otros contenedores personalizados para usarlos en nuestros programas. El
nombre de un archivo de msica, por ejemplo, es un valor
constante, el tiempo de duracin de la meloda es otro valor
constante, lo mismo podemos decir del procesador de la computadora en la que corre el programa, cunta memoria libre hay y
qu resolucin tiene la pantalla. Todos estos valores constantes
y varios ms, podemos obtenerlos y usarlos como deseemos.
150

Cmo hacer Cd's Multimedia


Cheque el siguiente ejemplo. Se trata de un humilde y solitario
botn al que le hemos aadido este script:
memoria$=GetMemory()
Message("La memoria total/libre es:","memoria$")

Botn que muestra un mensaje


con la memoria total y libre del
sistema. Bsquelo en el CD con
el nombre "Botn-memoria".

Sabedor de que la existencia le haba asignado un insignificante papel en los programas multimedia, este botn encontr
consuelo trayendo a otro botn igual de mediocre que l.

El primer botn invit a otro


que tambin mostraba un
mensaje con otro valor
constante. En el CD se
llama "dos botones", bralo
y vea su script.
151

Cmo hacer Cd's Multimedia


Conversando, estos botones descubrieron que haba muchsimos ms como ellos, los llamaron a todos y primero hicieron
una fiesta, luego un sindicato y terminaron por amafiarse de
modo tan siniestro que acabaron aniquilando a mi computadora.
Tenga cuidado cuando ejecute el programa Fiesta de botones
que ilustra algunos de los valores constantes que podemos
obtener del sistema a travs de MMB.

No permita que la fiesta dure mucho tiempo o pngales msica, de lo


contrario los botones comenzarn a conspirar contra su mquina.

6.2.1 Valores CBK


Hay objetos de texto que en el nombre llevan su destino.
Suena melodramtico pero es cierto, sobre todo si son de la
familia de los CBK. Cuando un objeto de texto tiene como
etiqueta una constante CBK, quedar condenado a reflejar la
informacin que esa constante posee y esa maldicin lo perseguir toda la vida, por lo menos hasta que el programador cambie
su nombre de etiqueta. Veamos un ejemplo.
152

Cmo hacer Cd's Multimedia


La propiedade "Label" de los objetos de texto
puede ser una constante CBK. La lista de
constantes disponibles est en el mismo
cuadro de propiedades. Cuando seleccionamos
una constante, la propiedad "Label" cambia.

Observe que las etiquetas CBK estn


clasificadas por grupos. Aqu vemos
las relacionadas con fechas y tiempo.

Al ejecutarse el programa, el objeto de texto mostrar la informacin


de la constante CBK, de la cual lleva su nombre. En este caso, con la
etiqueta CBK_TimeHMS, vemos la hora del sistema, por lo que
habremos creado un reloj en pantalla de modo casi inmediato.

153

Cmo hacer Cd's Multimedia


La siguiente Lista muestra las constantes CBK existentes,
para qu sirven y en qu formato muestran la informacin. Estn
clasificadas igual que en el programa.

Constantes de Audio
CBK_Total

Muestra el tiempo total del archivo de audio


cargado en el programa. El formato de
tiempo es mm:ss (minutos:segundos)
Ejemplo: 21:12
CBK_TotalSec Tambin muestra el tiempo total del archivo de audio cargado, pero en segundos.
Ejemplo: 360
CBK_Time
Muestra el tiempo transcurrido del archivo
de audio en ejecucin. El formato es mm:ss
Ejemplo: 11:08
CBK_TimeSec Muestra el tiempo transcurrido del archivo
de audio actual, pero en segundos.
Ejemplo:110
CBK_MP3Type Devuelve el tipo de archivo MP3 cargado.
Ejemplo: MPEG 1 Layer 3
CBK_MP3Bit
Muestra el promedio de bits del archivo de
audio cargado en Kilobytes por Segundo
(Kbps)
Ejemplo: 128kbps
CBK_MP3Freq Muestra la frecuencia del archivo de audio
en ondas hertzianas.
Ejemplo: 44.1kHz
CBK_MP3Name Muestra el nombre del archivo cargado, sin
la extension ni la ruta a la carpeta donde se
encuentre. Igual que los casos anteriores,
estamos hablando de archivos MP3.
Ejemplo: Silvio Rodrguez Te doy una
cancin.
CBK_Channels Muestra el modo del canal de salida, la cual
puede ser Mono o Stereo.
Ejemplo: Stereo
CBK_ID3Song Muestra el ttulo de la cancin del archivo
MP3 recuperado de la etiqueta ID3. Cuando
154

Cmo hacer Cd's Multimedia


pasamos a MP3 un CD, algunos programas como Music Match Juke Box aaden
al archivo el nombre de la cancin, el artista, el album de donde procede y otros
datos, los cuales se graban en una etiqueta
interna llamada ID3.
Ejemplo: Quiero cantarte un beso
CBK_ID3Artist Muestra el nombre del artista del archivo
MP3, recuperado de la etiqueta ID3.
Ejemplo: Silvio Rodrguez
CBK_ID3Album Igual, pero muestra el nombre del album.
Ejemplo: Cita con ngeles
CBK_ID3Year
Muestra el ao de la etiqueta ID3 del archivo MP3.
Ejemplo: 2000
CBK_ID3Genre Igual que todos los casos anteriores, pero
ahora muestra el gnero de msica.
Ejemplo: Trova
CBK_NumTracksMuestra el nmero de tracks de un CD de
audio.
Ejemplo:12

Constantes de Lista de Canciones


CBK_CurItemList

Muestra el item seleccionado de la lista


de canciones.
Ejemplo: Cita con ngeles Quiero
cantarte un beso
CBK_NumInList
Cuenta y muestra el nmero de canciones de la lista
Ejemplo: 31
CBK_TotalList
Calcula y muestra el tiempo total de
todos los items de la lista de canciones
en el formato mm:ss
Ejemplo: 135:28
CBK_TotalListSec Calcula y muestra el tiempo total de
todos los items de la lista de canciones,
pero lo muestra en segundos.
Ejemplo: 1130
155

Cmo hacer Cd's Multimedia


Constantes de Video
CBK_VName

Devuelve el nombre del archivo de video


que se est reproduciendo, sin mostrar
la ruta ni la extension.
Ejemplo: TheMatrix
CBK_VTotal
Muestra el tiempo total que dura el archivo de video que se est reproduciendo
en el formato mm:ss
Ejemplo: 180:00
CBK_VTotalSec
Muestra el tiempo total que dura el
archivo de video que se est reproduciendo en segundos.
Ejemplo: 10800
CBK_VTime
Muestra el tiempo transcurrido de reproduccin del video actual en el formato
mm:ss
Ejemplo: 94:32
CBK_VTimeSec
Muestra el tiempo transcurrido de reproduccin del video actual en segundos
Ejemplo: 48000
CBK_VTotalFrames Devuelve el nmero total de cuadros
(fotogramas) del archivo de video actual
Ejemplo: 394024
CBK_VFrame
Muestra el nmero de cuadro actual del
archivo de video en reproduccin.
Ejemplo: 249253

Constantes de Fecha y Tiempo


CBK_Year
CBK_Month
CBK_MonthNum

CBK_Day

Muestra el ao actual.
Ejemplo: 2004
Muestra el nombre del mes actual.
Ejemplo: Julio
Muestra el nmero de mes actual usando
un nmero entero. Obviamente, el rango
es del 1 al 12.
Ejemplo: 7
Muestra el nombre del da actual.
156

Cmo hacer Cd's Multimedia


CBK_DayNum

CBK_DateNum
CBK_DateShort
CBK_DateLong

CBK_TimeHMS

CBK_Time24
CBK_Hour
CBK_Minute
CBK_Second

Muestra el nmero del da actual usando


un nmero entero del 1 al 7, de acuerdo
a la siguiente lista.
Domingo = 1
Lunes = 2
Martes = 3
Mircoles = 4
Jueves = 5
Viernes = 6
Sbado = 7 3
Muestra el nmero del da del mes actual usando un nmero entero, en el
rango 1 al 31.
Muestra la fecha actual usando el
formato corto de Windows. DD/MM/AA.
Ejemplo: 21/03/2002
Muestra la fecha actual usando el
formato largo de Windows: Mes Da,
Ao.
Ejemplo: Julio 22, 2004
Muestra la hora actual del sistema usando
el formato H:M:S y dividiendo en AM/
PM.
Ejemplo: 01:06:12 PM
Muestra la hora actual del sistema en
HH:MM:SS en formato de 24 horas.
Ejemplo: 13:06:12
Muestra el nmero de la hora actual en
el rango 0-23
Muestra el nmero del minuto actual en
el rango 0-59.
Muestra el Segundo actual en el rango
0-59.

Constantes Generales
CBK_PageName

Muestra la propiedad Label (Etiqueta) de la pgina actual del archivo MMB


en ejecucin.
157

Cmo hacer Cd's Multimedia


CBK_Error

CBK_Volume
CBK_URLpath
CBK_OpenFile

CBK_OpenDir

CBK_SelColor

Si se produce, muestra el nmero de


error en la reproduccin de un objeto de
video o de audio. En el sistema de ayuda
viene una relacin de los nmeros de
error y las causas posibles.
Muestra el porcentaje actual del volumen principal.
Muestra el URL actual de un objeto
HTML.
Ejemplo: http://www.unam.edu.mx
Despus de usar un cuadro de dilogo
para abrir archivos, esta etiqueta CBK
muestra el nombre del archivo seleccionado, sin la ruta de carpeta.
Despus de usar un cuadro de dilogo
para abrir archivos, esta etiqueta CBK
muestra la ruta del archivo seleccionado.
Ejemplo: c:\videos\
Devuelve la combinacin de valores
RGB
de la caja de dilogo para seleccionar
color. Como se sabe, los colores pueden
ser expresados en terminos de una
mezcla de Rojo, Verde y Azl (Reed,
Green & Blue), cada uno en un rango
que va del 0 al 256.
Por tanto, el contenido de esta etiqueta
puede ser:
128,5,64
Que corresponden a las intensidades
de rojo, verde y azul (en ese orden) de
que se compone el color.
Para utilizar esta etiqueta CBK, puede
asignarla a una variable de cadena:
colores$=CBK_SelColor

158

Cmo hacer Cd's Multimedia


Constantes de Scripts
CBK_MP3EOF

CBK_Menu

CBK_Exit

EOF significa End of file. Si nombramos


con esta etiqueta CBK a un script, su cdigo
se ejecutar cuando el archivo de audio
MP3 concluya. Este objeto de script puede
ubicarse en la pgina o en la capa maestra
superior que se describe en el apartado 3.2.5.
Durante la ejecucin del programa y antes
de que se ejecute un archivo MP3, se busca
si hay un script que tenga esta etiqueta.
El nombre de cualquier grupo de objetos
puede iniciar con esta etiqueta CBK_Menu.
Si es necesario usarla en ms de un grupo
de objetos, podemos poner como sigue:
CBK_Menu1
CBK_Menu2 ...etc.
Cuando un grupo de objetos tiene este
nombre, se ocultar automticamente cuando
el usuario haga clic fuera del grupo.
Por tanto, esta etiqueta ayuda a construir
mens desplegables. El archivo de ejemplo
"masterpages.mbd"" que viene con el propio
MMB ilustra su uso, aunque volveremos a
abordarlo ms adelante.
De manera similar al caso anterior,cuando
nombramos con esta etiqueta a un grupo
de objetos, que deben ubicarse en la capa
maestra superior (Master Top Layer), estos objetos se hacen visibles cuando el
usuario pulsa la tecla ESC. De ese modo,
usted puede crear una ventana con el mensaje Est seguro de salir? o cualquier
otra que desee que el usuario vea al intentar salir del programa.
En el apartado 5.1 ya habamos mencionado que el botn "Wizard" de la barra de
herramientas inserta controles con estas
etiquetas CBK en la capa maestra superior.
159

Cmo hacer Cd's Multimedia


6.2.2 Constantes del Sistema
De manera similar a las etiquetas CBK, las constantes del
sistema ofrecen informacin sobre la pantalla, la aplicacin de
MMB, el procesador y la memoria. Sirven por tanto para que el
programa pueda autoajustarse a la computadora del usuario y
mejorar su presentacin, toda vez que las constantes del sistema
pueden usarse como parmetros de otros comandos del lenguaje de MMB.
Veamos pues estas constantes, derechito y sin intermediarios.
- ScreenWidth()
Devuelve el ancho de la pantalla en pixeles como un nmero
entero.
El valor que obtiene con este comando es
igual a la resolucin de pantalla que tenga
configurada en su equipo. Por otra parte,
Doa Chonita me pidio que aprovechara para
presumir la computadora que me prest.

En el ejemplo "Fiesta de botones" puede ver cmo asignar el


resultado de esta funcin a una variable, aunque la siguiente
lnea de cdigo tambin es vlida:
Message("El ancho de pantalla es: ","ScreenWidth()")
- ScreenHeight()
Devuelve el alto de la pantalla en pixeles como un nmero
entero.
Si la resolucin de su monitor es
1024 por 768, en la funcin anterior
obtendr 1024, en sta 768.
160

Cmo hacer Cd's Multimedia


- WorkAreaWidth()
Devuelve el ancho del rea de trabajo como un nmero entero.
En circunstancias normales, el valor del
ancho del rea de trabajo es igual a la
resolucin horizontal de la pantalla (1024,
por ejemplo). Pero si por cualquier circunstancia estuviera la barra de tareas en el
costado de la interfaz, ese valor se reduce.

- WorkAreaHeight()
Devuelve al alto del rea de trabajo como un nmero entero.
De modo similar, el alto del rea de
trabajo es igual a la resolucin menos el
ancho de la barra de tareas. En este
ejemplo, para ilustrar, hemos aumentado
exageradamente la barra, reduciendo el
rea de trabajo.

- MouseX()
Devuelve la posicin horizontal del puntero del ratn en
pantalla como un nmero entero.
- MouseY()
Devuelve la posicin vertical del puntero del ratn en pantalla
como un nmero entero.
Esta funcin y la anterior se ilustran en el archivo "ratnposicin"
del CD-ROM. Estudie el Script del ratn...
161

Cmo hacer Cd's Multimedia


- MouseLButton()
- MouseRButton()
- MouseMButton()
Devuelve el estado de los botones izquierdo, derecho y medio
del ratn. Si fueron pulsados indica un 1, de lo contrario
devuelven el valor 0.
La aplicacin mousestatedetection.mbd ilustra el uso de
estas constantes. Este ejemplo est en la carpeta "Samples"
donde est instalado MMB. Tambin encontrar ilustrativos los
archivos "mouseovertest.mbd" y "mousemove_checkcol.mbd".
Bsquelos, bsquelos, deben andar en su disco duro.
- ProcType()
Devuelve la marca, el modelo y la velocidad del procesador
principal de la computadora como un dato de texto. Observe el
siguiente cdigo, est realmente muy sencillo:
var$=ProcType()
Message("El procesador de esta mquina es: ","var$")
- ProcFreq()
Devuelve la velocidad en Mhz del procesador principal como
un valor entero. Ahora un torito simple: reescriba las dos lneas
de arriba para esta funcin (solucin al pie de pgina).
- GetMemory()
Devuelve el total de la memoria y de la memoria libre como una
cadena de texto. Ambas cantidades aparecen separadas con
una diagonal:
256/110

var=ProcFreq()
Message("La velocidad del procesador en Mhz es: ","var")

162

Cmo hacer Cd's Multimedia


Ejemplo de cdigo:
Message("Memoria total y libre: ", "GetMemory()")
- UsingWinNT()
Devuelve un 0 un 1 dependiendo si el sistema operativo es
de la familia Windows NT o no. El 0 equivale a no y, por supuesto,
el 1 a s. Los Windows de esta clase son, por supuesto,
Windows NT en todas sus versiones, Windows 2000 y Windodows
XP. Seguramente tambin lo sern los futuros Windows.
Las versiones de Windows que no pertenecen a la familia NT
son 95, 98 y Millennium Edition.
Qu le parece si usted mismo programa un botn que abra
una ventana con el mensaje del tipo de Windows que tiene? As
no me deja todo el trabajo a m.
- WinVer()
Devuelve la versin de Windows que se est ejecutando en el
sistema en una cadena de texto. Es probable que se encuentre
con algo como esto:
5.01.2600
Y puede utilizarlo con un cdigo como el siguiente:
vw$=WinVer()
Message("Versin de Windows activa : ","vw$")
- ScreenColors()
Devuelve el nmero de colores usados por Windows y la
tarjeta de video. En configuraciones de alta resolucin, presenta
el nmero de bits (16 o 32) de la tarjeta. En los equipos y tarjetas
de video de la edad de los picapiedra, muestra el nmero de
colores. El dato tal vez no le sea til, mientras se asegure que las
imgenes se vean decentemente.
163

Cmo hacer Cd's Multimedia


6.2.3 Constantes de Publicacin
Los creadores de MMB definen a las constantes de publicacin como aquellas que ofrecen informacin del estado que
guarda el proyecto de MMB, su posicin en pantalla, si est
minimizado, etctera. Vemoslas.
- PubWidth()
Devuelve el ancho de la ventana del proyecto en pxeles como
un nmero entero.

La ventana que se mide es la


del programa en ejecucin de
MMB, desde donde llamamos
a esta funcin.

- PubHeight()
Devuelve el alto de la ventana del proyecto en pxeles como un
nmero entero.
Igual que el caso anterior, pero
ahora se muestra el valor para el
alto de la ventana.

- ClientWidth()
Devuelve el ancho de la ventana del proyecto en pxeles como
164

Cmo hacer Cd's Multimedia


un nmero entero, pero restndole el ancho del borde de la
aplicacin. Por lo que obtener este valor es muy til para... para...
(puf! ya me met en problemas) para... Bueno, no s. Usted
tendr que averiguar un uso interesante y digno para tan importante dato.
- PubX()
Devuelve la distancia horizontal de la posicin de la ventana
de proyecto, al margen izquierdo de la pantalla, en pixeles y
como un nmero entero.

Distancia horizontal al inicio de


la ventana del proyecto.

- PubY()
Devuelve la distancia vertical de la posicin de la ventana de
proyecto respecto al margen superior de la pantalla, en pxeles
y como un nmero entero.

Con la pena, pero tuvimos que


hacer el ratn ms pequeo, para
que se viera la distancia vertical.

- ObjectX(Etiqueta del objeto)


Devuelve la distancia horizontal del objeto referenciado por su
etiqueta (propiedad Label), al borde izquierdo de la ventana de
la aplicacin.
165

Cmo hacer Cd's Multimedia


- ObjectY(Etiqueta del objeto)
Devuelve la distancia vertical del objeto referenciado por su
etiqueta (propiedad Label), al borde superior de la ventana de
la aplicacin.
- ObjectWidth(Etiqueta del objeto)
Devuelve el ancho de un objeto de la aplicacin usando su
etiqueta como referencia (propiedad Label), el dato es en
pxeles y es un nmero entero.
- ObjectHeight(Etiqueta del objeto)
Devuelve el alto de un objeto de la aplicacin usando su
etiqueta como referencia (Propiedad Label), el dato es en
pxeles y es un nmero entero.
ObjectX("Etiqueta")

ObjectY("Etiqueta")

ObjectWidth(Etiqueta)

ObjectHeight(Etiqueta)

- ImageScrollX("Etiqueta del objeto")


Para comprender mejor esta funcin debo recordarle una idea
que vimos en el apartado 4.3.2: los objetos de imagen pueden
dimensionarse dentro de los mrgenes de su tamao actual. En
otras palabras, hay comandos para hacer zoom a los mapas de
166

Cmo hacer Cd's Multimedia


bits, ya sea para hacerlos ms grandes o ms pequeos. Tambin
podemos modificar su tamao en su ventana de propiedades. Si un
mapa de bits est contenido en un objeto de imagen, pero est
redimensionado respecto a ste (ms grande o ms pequeo), esta
constante devuelve la distancia horizontal del mapa de bits
respecto a su contenedor. La opcin "Keep Actual Image Size,
en la ventana de propiedades, debe estar activada. Si la imagen est
desplazada dentro del contenedor ms all de su borde izquierdo,
entonces esta constante devolver un valor negativo.
Obviamente, una revisin grfica del asunto dejar todo ms
claro que el contenido de una coca cola.
En la pgina 111 de este libro presentamos esta vista parcial del cuadro de
propiedades de una imagen. El tamao
ha sido aumentado en ms de 300%,
aunque su contenedor se mantiene
igual. Para desplazar la imagen
ubicamos barras horizontal y vertical,
adems de que activamos el arrastre
con el ratn.
El mapa de bits est ampliado y desplazado
respecto al rectngulo que lo contiene. La
funcin muestra la distancia horizontal entre
el borde izquierdo de la imagen y el borde
izquierdo del mapa de bits. Por lo que en
este primer caso mostrar un valor negativo, pues el borde izquierdo de la imagen
est a la izquierda del contenedor.
Vea ahora el contraste: la imagen
es ms chica que el contenedor,
por lo que la funcin mostrar la
distancia entre el borde del
rectngulo y el borde izquierdo de
la imagen, como se ilustra.
167

Cmo hacer Cd's Multimedia


Como es fcil imaginar, la funcin devuelve un nmero entero,
por lo que podemos usar el resultado asignndolo a una variable,
como en este ejemplo:
var=ImageScrollX(Bitmap1)
- ImageScrollY(Etiqueta del objeto)
Igual que la constante anterior, pero devuelve la distancia
vertical.
En una imagen reducida, esta
constante muestra la distancia
vertical del borde superior de la
imagen respecto al contenedor.

- ImageWidth(Etiqueta del objeto)


Devuelve al ancho de un objeto de imagen en pxeles. Si la
imagen es ms grande que el contenedor el valor refleja el
ancho total.
Da lo mismo si la imagen es ms
pequea que el contenedor, la
funcin devuelve el ancho del mapa
de bits, que resaltamos aqu.

- ScrollBarSize(Etiqueta del objeto)


Si un objeto de imagen incluye en su contendor una barra de
desplazamiento, entonces esta constante devuelve el ancho de
168

Cmo hacer Cd's Multimedia


la propia barra, si es vertical, o el alto si es horizontal, lo que le
permite al usuario conocer cul es el ancho (o alto) total de la
imagen en pxeles con todo y barra de desplazamiento haciendo
las sumas correspondientes.
- IsVisible(Etiqueta del objeto)
Esta constante verifica si el objeto referenciado existe y si est
o no oculto. Por tanto, devuelve alguno de los siguientes valores:
-1 Si el objeto no existe en la pgina actual.
0 Si el objeto existe pero est oculto.
1 Si el objeto existe y est visible.
- IsMinimized()
Esta constante verifica si la aplicacin est o no minimizada.
Por lo que devuelve cualquiera de estos dos valores:
0
1

Si no est minimizada.
Si lo est.

Estas ltimas funciones, como veremos en breve, suelen


cargarse en variables numricas y luego son evaluadas con el
comando "If" (S condicional). Dependiendo del valor resultante,
pueden tomarse otras acciones, como mostrar los objetos ocultos, restaurar la aplicacin, etctera.

6.2.4 Macro Rutas


A poco no se oye como si fueran supercarreteras o algo as?
El nombre en ingls es Path Macros, lo que podra traducirse
tambin como Macro Ramas, pero se refiere a eso, a las rutas
hacia los archivos de la aplicacin y yo, como buen pionero de los
libros sobre MMB en espaol, le pongo Macro Rutas, no
porque me sienta un gran traductor, sino porque veo en esto una
oportunidad para adornarme. En otras palabras, si hubiera sido
el astrnomo que descubri el dcimo planeta, no le hubiera
puesto Sedna, eso jrelo estimado(a) lector(a), pero como no
puedo decidir al respecto, s decido en el bautizo de las Macro
169

Cmo hacer Cd's Multimedia


Rutas, as que se llaman Macro Rutas y sanseacab.
En el apartado 3.6.2 ya habamos mencionado la ventaja de
utilizar rutas relativas para apuntar a archivos externos al programa que estn grabados en CD-ROM o alguna carpeta del disco
duro. Pero vemoslo con ms calma.
Supongamos que estamos desarrollando un proyecto que
est grabado en el disco duro del siguiente modo:
c:\mis programas en MB\enciclopedia\mienciclopedia.mmb
Imaginemos ahora que en dicho trabajo utilizamos un video,
entre varios, que tenemos grabado en la siguiente ruta:
c:\mis programas en MMB\enciclopedia\videos\pelic1.avi
Si utilizamos esta ruta para insertar el objeto de video en
alguna de nuestras pginas qu va a pasar si el usuario
decide grabar nuestra aplicacin en el disco duro D? Simple,
la aplicacin va a marcar un error, toda vez que va a buscar el
archivo de video pelic1.avi en la unidad C y en la subcarpeta
correspondiente.
Recuerda estimado lector qu ocurre con dicha ruta cuando
usamos el men Project-Path Replace?
La ruta al video en el programa se sustituye del siguiente
modo:
<SrcDir>\videos\pelic1.avi
Por qu? Porque <SrcDir> es una Macro Ruta que apunta,
como cadena de texto, a la carpeta desde donde la aplicacin
(mienciclopedia.mbd) se est ejecutando, sin importar su ubicacin real. As, el usuario puede instalar el programa en cualquier
unidad del disco duro y en la carpeta que desee, el nico requisito
para que funcione es que "\videos\" sea una subcarpeta de esa
misma carpeta.
Por tanto, <SrcDir> es una Macro Ruta que puede utilizarse
en los comandos de los Scripts de MMB o en las acciones de las
propiedades de los objetos, para sustituir una ruta fija por una
relativa y evitar errores al apuntar a archivos.
170

Cmo hacer Cd's Multimedia


Sin embargo, como recordar, dada su increble memoria, el
reemplazo de rutas con el men Project-Path Replace era uno
de los pasos previos a la compilacin del proyecto, es decir, a su
conversin de un archivo .MMB a un .EXE. Esto implica que
el uso de esta macro ruta <SrcDir>, durante el desarrollo del
programa en MMB, tiene algunas condiciones:
- Una vez compilado el programa, apunta a la carpeta desde
la cual se ejecuta. Lo cual es el efecto deseado.
- Si se utiliza durante la prueba de un archivo MMB, apuntar
a la carpeta desde donde se ejecuta el propio Multimedia Builder,
lo que no necesariamente es correcto.
C:\Archivos de programa\Multimedia Builder495
o bien:
C:\Program Files\Multimedia Builder495
Por lo que sugerimos usar, durante la fase de desarrollo, rutas
fijas a los archivos y cambiar a Macro Rutas, al finalizar el
proyecto, para efectos de compilacin.
Por otra parte, hay otras Macro Rutas que pueden utilizarse en
los programas:
<SrcDrive>
Devuelve, como cadena de texto, la carpeta raz de la unidad
desde donde se ejecuta el programa, por ejemplo:
c:\
<CD>
Devuelve la carpeta raz de la primer unidad de CD-ROM
disponible en la computadora, por ejemplo:
D: \

171

Cmo hacer Cd's Multimedia


<Windows>
Devuelve el directorio raz de Windows, que no necesariamente puede estar en la unidad c:
c:\Windows
Por tanto, si deseamos apuntar a un archivo que sabemos
est en la carpeta de Windows, como leame.txt, por ejemplo,
escribiramos:
<Windows>\leame.txt
<System>
Devuelve la ruta al directorio de sistema dentro de Windows,
el cual puede variar segn la versin. En Windows 98 es:
C:\Windows\System
En Windows XP es:
C:\Windows\System32
<Temp>
Devuelve la ruta a la carpeta temporal de Windows, que
tambin cambia segn la versin:
Windows 95/98/Me:
C:\Windows\Temp
Windows NT/2000/XP
C:\Windows\Documents & Settings\Nombre Usuario\Local
Settings\Temp
De cualquier modo, si su programa genera un archivo que
172

Cmo hacer Cd's Multimedia


desea grabar en la carpeta temporal de Windows, simplemente
utilice esta lnea de cdigo:
<Temp>\archivo.txt
<File>
Devuelve el nombre y la ruta completa del ltimo archivo
abierto con el cuadro de dilogo para abrir archivos.

6.3 Valores Variables


Tambin conocidas despectivamente como Variables o
"chimoltrufias". Son aquellas gentes veleidosas y de carcter
impredecible. Ahorita le dicen una cosa y al rato otra diferente.
Por tanto no se puede confiar en ellas y cualquier acuerdo que
desee establecer, tiene que hacerlo por escrito, para que no lo
engaen. Lstima que en programacin esta definicin nos sirve
para un carambas, por lo que va de nuevo.
De manera similar al lgebra, en donde X puede tomar
distintos valores segn la ecuacin, razn por la cual se le llama,
precisamente, "variable x", en programacin podemos tener
datos que podemos distinguir por su identificador, pero cuyo
valor puede cambiar intermitentemente. En MMB tenemos dos
tipos de variables: numricas y de cadena. Las variables
numricas no requieren de explicacin, a menos que desee que
le diga que se trata de nmeros (chin, ya se lo dije!). Las
variables de cadena son aquellas que contienen caracteres
alfanumricos, tambin se les conoce como variables de texto,
aunque de cadena me parece ms adecuado.
Adelantemos una idea necesaria: los nombres de las variables
de cadena requieren que al final agreguemos el signo monetario
para distinguirse de las variables numricas, algo como esto:
minombre$
Una variable numrica se vera sencillamente as:
minumero
173

Cmo hacer Cd's Multimedia


Veamos unas y otras a ver qu aprendemos hoy.

6.3.1 Variables numricas


Ni modo, tendr que decirlo: Las variables numricas son las
que contienen nmeros (me encantan los axiomas, es como
cuando uno dice El comando COPIAR sirve para copiar, en fin).
Como dijimos ya, a las variables se les conoce por su
identificador, por su nombre de variable. Para crear este
nombre podemos usar una combinacin de letras y nmeros,
hay que evitar el uso de smbolos especiales y, de preferencia, debemos usar nombres que nos indiquen claramente que
contiene la variable. Por tanto, nombres vlidos para variables
numricas son:
cancion1
cancion135
contador
1erUsuario
total
SumaTotal
No debe usarse como nombre de variable ningn nombre de
comando o funcin de MMB. Tambin evite utilizar las etiquetas
que les haya dado a los objetos de su aplicacin. De igual modo,
evite ponerle apodos a las variables, menos an si no se lleva
con ellas, son muy sentidas y pueden retirarle la palabra.
Para asignar un valor a una variable, no hay ms que usar el
signo igual. De una vez le decimos tambin que podemos
asignar el valor contenido en una variable a otra por el mismo
procedimiento:
Edad=25
MiEdad=Edad
Los nmeros que puede contener una variable numrica de
MMB pueden ser enteros o flotantes, es decir, con decimales,
como 3.1416.
Tambin hay que mencionar que como estas variables contie174

Cmo hacer Cd's Multimedia


nen nmeros, es posible realizar operaciones aritmticas con
ellas. Observe con cuidado el siguiente cdigo, detngase y
concntrese en el hasta que quede hipnotizado, al menos
dormido:
acum=125
deap=23
tfinal=acum*deap
message(Total a exhibir =,tfinal)
Las operaciones vlidas son: sumas (+), restas(-), multiplicaciones (*) y divisiones(/). Aritmtica pura. Por otra parte, creo que
est de ms decir que todas las combinaciones son vlidas:
contdep=contdep1+14.18-revismes
fracc=sumtot/dividendos
Por su mirada, creo que ya capt la idea, as que para qu
le sigo.

6.3.2 Captura de valores


Hagamos un parntesis que nos va a servir para trabajar con
estas variables y las de cadena, se trata de un tipo de objeto que
no habamos explicado porque su uso tiene que ver directamente
con este tema, por lo que no tena sentido abordarlo en otra parte
del libro.
Obviamente, este asunto de las variables no tiene ningn
sentido si el valor tenemos que asignarlo mediante cdigo. El
chiste es que el usuario pueda poner sus datos y luego el
programa los utilice de cualquier manera. Para esto sirven las
"Cajas de Edicin" o Input Text Box, como se llaman en ingls
en MMB.
La barra horizontal donde estn los
objetos de texto, incluye el botn para
insertar los objetos "Input text box".

175

Cmo hacer Cd's Multimedia

Las cajas para entrada de datos, pueden tener un texto


predeterminado. Como ya sabemos, hay que establecer
sus propiedades para que funcione correctamente.

En esta seccin establecemos el tipo de


datos que va a recibir la caja de texto
(numrico o de cadena), as como la
variable en la que se va a cargar.

Opcionalmente, cada que vez que


se reciba un dato, podemos
ejecutar un objeto Script cuyo
cdigo, por ejemplo, puede
evaluar el dato recin dado para
procesarlo, evaluarlo, solicitar el
siguiente, corregirlo, etctera.

La ventana de propiedades nos permite definir si esta caja de


edicin va a recibir un dato de cadena o uno numrico y a qu
variable va a ir a parar dicho dato. Lo ms interesante es que
176

Cmo hacer Cd's Multimedia


podemos hacer que, despus de capturado algn valor en la caja
por el usuario, se ejecute un script que lo procese, como ya
vimos.
En la ventana de propiedades indicamos
el nombre del objeto script que se
ejecutar cada vez que en la caja de
texto se capture un dato nuevo. Con los
comandos y funciones de cadena y para
variables numricas que vamos a ver, las
posibilidades de evaluacin y proceso de
los datos son realmente amplias.

En algunos casos, una variable puede ser de tipo alfanumrico,


pero lo que nos interesa es la parte numrica del dato. Adelantndonos un poco al tema del prximo apartado, diremos que una
variable de cadena puede contener, precisamente, una cadena
de nmeros, pero stos no representan en s un valor numrico,
por lo que suele ser necesario convertirlas de cadenas a nmeros. Para eso y otras acciones estn diversas funciones que nos
ayudan a trabajar con las variables numricas. Observe el
siguiente cdigo
varcad$=123
num=VAL(varcad$)
total=num+250
En este caso, la funcin VAL(variable) convierte el contenido
de la variable "varcad$" en su expresin numrica y asigna el
resultado a la variable "num", la cual ya puede operar
aritmticamente para sumarle 250 y asignarle el resultado a
total.
En el siguiente caso el resultado es 250, porque la variable
varcad$, convertida a nmero, es igual a cero.
varcad$=hola
num=VAL(varcad$)
total=num+250

177

Cmo hacer Cd's Multimedia


Una vez ejemplificado el uso de la funcin VAL(), veamos
otras funciones que pueden usarse con las variables numricas.
- INT(Variable numrica)
Redondea un nmero con precisin decimal al entero inmediato inferior y lo asigna a la variable especificada.
totalfactura=125.36
apagar=INT(totalfactura)
El resultado en la variable "apagar" es 125.
- ABS(Variable numrica)
Asigna a una variable la parte entera y absoluta de un nmero
con precisin decimal, esto es, si el nmero es negativo, lo
convierte en positivo. Veamos un par de ejemplos.
var1=19.36
varab=ABS(var1)
var2=-36.25
varab2=ABS(var2)

**el resultado es 19
**el resultado es 36, positivo.

- RND(Variable Numrica/nmero)
Esta funcin genera un nmero aleatorio comprendido en el
rango establecido por cero y el valor de una variable numrica o
un nmero. En otras palabras, la variable numrica o un nmero
sern el lmite superior del rango del nmero aleatorio. Considere el siguiente cdigo de ejemplo:
limitesuperior=50
azar=RND(limitesuperior)
Message(El nmero ganador es:,azar)
El resultado, cada vez que el cdigo se ejecute, ser un
nmero aleatorio entre el 0 y el 50.
178

Cmo hacer Cd's Multimedia


El siguiente cdigo tambin es vlido y da el mismo resultado,
aunque aqu ya no participa una variable numrica como lmite.
azar=RND(50)
Message(El nmero ganador es:,azar)

6.3.3 Variables de cadena


Las variables de cadena son aquellas que contienen datos
alfanumricos. Por tanto, estas variables pueden contener de
todo. Sin embargo, a diferencia de las variables numricas, si
dos variables de cadena contienen nmeros, stos no pueden
operarse aritmticamente.
Como ya habamos mencionado, a las etiquetas de las variables de cadena hay que aadirles obligatoriamente el signo
monetario $. Por tanto, nombres de variables vlidos pueden ser:
nombre$
direccion$
cartadeamor$
ap1$
var5$
Para asignar contenido a una variable de cadena, usamos
tambin el signo igual, pero la cadena alfanumrica debe estar
comprendida entre apstrofes. Una lnea de cdigo que asigne
datos a una variable puede ser, por tanto, algo como esto:
nombre$=Luis Manuel Gonzlez Nava
Y si queremos asignar una cadena de caracteres que incluya
un apstrofe, cmo le hacemos? La siguiente lnea de cdigo
generara un error:
frase$=Vmonos pall
Para eso usamos una diagonal invertida:
frase$=Vmonos pa\ll
179

Cmo hacer Cd's Multimedia


MMB interpretar que el apstrofe es parte de la cadena de
texto gracias a que lo antecede una diagonal invertida. Y si la
variable va a contener una ruta y, por tanto, contiene una
diagonal invertida final? Eso es un nuevo problema, la siguiente
asignacin es un error:
ruta$=c:\misdatos\
MMB no podr interpretar el segundo apstrofe como aquel
que cierra la cadena de texto, ya que lo antecede una diagonal
invertida, la cual, a su vez, queremos que sea parte de la
propia cadena. Para resolver este problema debemos hacer
lo siguiente:
ruta$=c:\misdatos\\
La primera diagonal invertida cancelar el efecto de la segunda y la cadena de texto que quedar en la variable es:
c:\misdatos\
Por otra parte, al igual que las variables numricas, podemos
hacer asignaciones de variable a variable, por tanto, lo siguiente
es vlido:
x$=k1$
Incluso, es posible pegar dos cadenas de texto en una variable
usando el signo +. Observe el siguiente cdigo:
nombre$=Luis Manuel
paterno$=Gonzlez
materno$=Nava
nombrecompleto$=nombre$+ +paterno$+ +materno$
Observe que hemos aadido espacios entre las variables,
para que el resultado sea correcto, con lo que podramos
completar el cdigo con esta lnea:
Message(El nombre del farsante es: ,nombrecompleto$)
180

Cmo hacer Cd's Multimedia


Tambin sera vlido concatenar cadenas de texto y variables, algo como esto:
nombrecompleto$=nombre$+ Gonzlez +materno$
Usted sabr concluir todas las dems combinaciones posibles, por eso me gusta escribir para lectores(as) inteligentes,
sagaces y cultos(as) como usted.
Hace un momento utilizamos una variable para definir una ruta
en el disco duro. Si lo piensa un poco, con los comandos
adecuados, eso nos podra ayudar a crear, por ejemplo, un
programa que instale otro programa en donde la carpeta destino
sea definida por el usuario.
De manera similar, podemos asignar a una variable el nombre
de un objeto cualquiera, es decir, su propiedad Label. De este
modo el cdigo puede aludir a distintos objetos indistintamente,
a travs de variables.
Para que esta explicacin quede fcil, supongamos que hemos creado 3 objetos script, llamados cod1, cod2, cod3, cuyo
cdigo deseamos ejecutar consecutivamente a travs del comando "RunScript" (que no hemos revisado). El cdigo podra
quedar as:
RunScript(cod1)
RunScript(cod2)
RunScript(cod3)
Usando variables podra ser as:
aejecutar$=cod1
RunScript(aejecutar$)
aejecutar$=cod2
RunScript(aejecutar$)
aejecutar$=cod3
RunScript(aejecutar$)
Adelantmonos un poco ms y observe el siguiente cdigo,
que da el mismo resultado, pero que, en trminos de programacin, tiene ms efectividad:
181

Cmo hacer Cd's Multimedia


For t=1 to3
codigos$=cod
aejecutar$=codigos$+CHAR(t)
RunScript(aejecutar$)
Next t
Los ciclos For-Next los veremos ms adelante, pero le
puedo adelantar que este cdigo hace 3 ciclos en donde t
adquiere los valores 1, 2 y 3 en cada uno. La funcin CHAR
convierte el nmero contenido en la variable t en una
cadena de caracteres y se suma al contenido de la variable
aejecutar$, de modo que va tomando los datos cod1, cod2
y cod3 y el comando "RunScript" va ejecutando el cdigo que
tenga los objetos script llamados de ese modo.
Ahora que ya mencionamos la funcin CHAR(variable numrica), sigmonos de filo con las funciones que podemos aplicar
sobre las cadenas alfanumricas.
- VAL(variable de cadena)
Ya la habamos mencionado, convierte una variable de cadena en un nmero y lo asigna a otra variable de ese tipo. Ya hemos
puesto ejemplos, por lo que no veo la necesidad de volverlo a
hacer An as debo poner un ejemplo? Bueno, va:
result$=15.5
resultado=VAL(result$)
- CHAR(Nmero/variable numrica)
Es la funcin contraria, su antpoda, su enemigo irreconciliable, esta funcin y la anterior no se pueden ver porque hacen
trabajos opuestos, pero as es este mundo, lleno de contradicciones. El caso es que convierte un nmero o variable numrica
en una cadena. Va otro ejemplo, hecho al vapor, como casi todo
lo que hago:
resultado=15.5
result$=CHAR(resultado)
frase$=El resultado final es: +result$
182

Cmo hacer Cd's Multimedia


- CHR(nmero)
Devuelve el carcter del cdigo ASCII correspondiente al
nmero o variable numrica contenido en la funcin. chele un
ojo a este cdigo, en donde volvemos a usar ciclos.
For i=97 To 122
minuscula$=CHR(i)
Message(Minscula siguiente: ,minuscula)
Next i
Si asigna este programa a un botn, irn apareciendo ventanas de mensaje en donde podr ver, por si no las conoca, todas
las letras minsculas del alfabeto, ya que de la "a" a la "z" le
corresponden los cdigos del 97 al 122 del cdigo ASCII.
- ORD(carcter/variable de cadena)
De nueva cuenta, se trata de la funcin inversa a la anterior.
Esta devuelve el nmero del cdigo ASCII del carcter.
caracter$=z
numcaracter=ORD(caracter$)
Message(El nmero de z es: ,numcaracter)
El resultado de este cdigo es 122.
- LEN(cadena)
Devuelve el nmero de caracteres de los que se compone la
cadena.
cadena$=Mira, mira
cuantasletras=LEN(cadena$)
- LOW(cadena) / UPP(cadena)
Asigna a una variable de cadena el mismo texto contenido en
otra variable, pero convirtiendo todas las letras en minsculas
(LOW) maysculas (UPP). Pongamos un ejemplo bobo:
183

Cmo hacer Cd's Multimedia


cadena$=CONVERSION A MINUSCULAS
cadenaminus$=LOW(cadena$)
cadena$=conversin a maysculas
cadenamayus$=UPP(cadena$)
- POS(subcadena, cadena)
Esta es una de esas funciones con las que luego podr hacer
programas que jueguen con las palabras, junto con todas las
dems funciones, por supuesto.
Esta funcin busca una subcadena, especificada en la misma
funcin, dentro de una cadena ms grande y devuelve el nmero
donde inicia la subcadena. En ambos parmetros podemos usar
directamente cadenas de caracteres o variables.
cadena$=A la ta Conchita le gusta el pan del mismo
nombre
tia$=Conchita
lugar=POS(tia$, cadena$)
Message(Las conchas comienzan en el nmero: ,lugar)
La ventana de mensaje indica el lugar donde comienza la
subcadena.

Como hace ya varias pginas que no ponamos ninguna imagen de


algn programa, una ventana de dilogo, un objeto de la interfaz o
cualquier otro grfico que descansara la lectura, esta ventana de
mensaje es bienvenida y le daremos un aplauso.

184

Cmo hacer Cd's Multimedia


Si la subcadena no es encontrada, entonces la funcin asigna
a la variable numrica el valor cero. Cabe especificar que esta
funcin distingue entre maysculas y minsculas, por lo que A,
no es lo mismo que a. Ah, verdad!
- StrCopy(variable$, ndice, cantidad)
Esta funcin devuelve una subcadena de caracteres sacada
de una variable de cadena. La subcadena comienza a partir del
nmero establecido por ndice y su nmero de caracteres est
establecido por el parmetro de cantidad. No entendi qu
quise decir? Yo tampoco, pasemos a la siguiente funcin
No, mejor expliquemos bien esta funcin, no vaya a ser que
este libro cobre fama de intil.
Observe la siguiente frase:
El principito es mi libro de cabecera
Numere los caracteres, para obtener el ndice: E, 1, ele, 2,
espacio 3, p, 4, r, 5, etctera. mi libro comienza en el caracter
18 y establezcamos la cantidad en 8 para cubrir esta subfrase,
por llamarla as. De modo que el resultado del siguiente cdigo
es fcilmente previsible:
frase$='El principito es mi libro de cabecera'
conclusion$=StrCopy(frase$,18,8)
Message(Quiero que leas ,conclusin$)

Estimado lector: Con el nico afn de que


vea que s prob el cdigo que pongo en
este libro, le muestro la ventana donde lo
escriib y la ventana que aparece con el
comando "Message".
185

Cmo hacer Cd's Multimedia


A estas alturas del partido, resulta casi obvio decir que el
ndice y la cantidad no necesitan ser valores fijos en la funcin,
sino variables numricas de modo que podamos usar esta
funcin dinmicamente para distintos efectos.
En el CD-ROM va usted a encontrar un archivo llamado
Nombres en donde, combinada con otros comandos y funciones, usamos esta funcin para crear una animacin bsica
de texto.
Para todos aquellos que slo leen pero
no se detienen a buscar los ejemplos y
mucho menos los ejecutan, hemos
decidio ponerles una ventana en donde
NO se ve la interfaz del programa. As
que si quiere saber qu hace y qu
cdigo tiene, vaya al CD-ROM, bralo y
estdielo un rato, luego sigue viendo los
"Reality Show's" de la televisin.

- StrDel(cadena, indice, cantidad)


Esta funcin es similar a la anterior, pero en vez de copiar una
subcadena de una cadena mayor, elimina los caracteres especificados por ndice y cantidad. Como ya sabemos, ndice nos
dice en qu caracteres empezamos a contar y cantidad, cuntos
caracteres.
S perfectamente que la multitud clama pidiendo ejemplos:
frase$='Reviso pues la fecha de la prensa, me pareci que
ayer deca lo mismo'
recorte$=StrDel(frase$,16,18)
Adivina lo que contiene la variable recorte$? Estoy seguro
que s. Se trata de la frase completa menos lo contenido a partir
del indice 16, tomando 18 caracteres.
Por cierto, la frase proviene de una bella cancin de Silvio
Rodrguez llamada Llover sobre mojado, la cual puede escuchar en la aplicacin llamada Silvio, noms para satisfacer los
186

Cmo hacer Cd's Multimedia


sentidos, porque no tiene nada que ver con el comando.
- StrIns(cadena origen, cadena, indice)
Esta funcin inserta el contenido de cadena en la cadena
origen en la posicin especificada por el ndice, con lo que se
convierte en la funcin inversa a la anterior. Veamos un ejemplo:
frase$=Esta excelente noticia
subfrase$= es una
completa$=StrIns(frase$,subfrase$,5)
Un ejemplo interesante es el que combina esta funcin con
otra para aadir texto al final de una cadena, observe, lo va a
entender fcilmente:
frase$=Mi unicornio azul
subfrase$= ayer se me perdi
n=LEN(frase$)
** Se acuerda qu hace la funcin LEN(cadena)?
cancion$=StrIns(frase$,subfrase$,n)
-StrOfChar(caracteres$, cantidad)
Genera una cadena con el contenido de caracteres$ de
longitud establecida por cantidad. Veamos:
letra$=p
variaspe$=StrOfChar(letra$,10)
El resultado es:
pppppppppp
Como no se me ocurre ahora mismo para qu podramos usar
esta funcin, ah le dejo de tarea usarla.
-StrChange(cadena, cadena a buscar, cadena nueva)
Busca en una cadena la ocurrencia de cadena a buscar y la
187

Cmo hacer Cd's Multimedia


sustituye por cadena nueva.
El ejemplo que viene en la ayuda del programa es bueno, por
lo que lo presentamos aqu:
cadena$=El Seor de los anillos
abuscar$=los anillos
nueva$=las cervezas
resultado$=StrChange(cadena$, abuscar$, nueva$)
Aada el comando Message y revise el resultado.
-StrToFile(nombredearchivo$, cadena, agregar,
avanzar lnea)
Esta es una funcin ms interesante pues genera un archivo
de texto con el nombre y la extensin establecida por la variable
nombredearchivo$ y cuyo contenido es cadena.
Los parmetros Agregar y Avanzar lnea, pueden tener
los valores True o False (Verdero o Falso) y su combinacin tiene distintos efectos sobre el archivo de texto. Veamos las
combinaciones:
Agregar

Avanzar Lnea

True

False

True

False

False

False

True

True

True

True

Efecto
Si el archivo no existe, se
genera.
Si el archivo ya existe, el
contenido de cadena se
aade a la derecha del texto
del archivo.
Invariablemente, se genera
el archivo de texto, an
cuando se sobrescriba otro
archivo del mismo nombre.
Si el archivo no existe, se
genera.
Si el archivo ya existe, el
contenido de cadena se
aade en una lnea nueva.
188

Cmo hacer Cd's Multimedia


Al usar esta funcin, debemos asignarla a una variable numrica,
ya que devuelve el valor 1 si el archivo qued correctamente
grabado y 0 si no fue posible completar la operacin. Por tanto,
la variable numrica podra evaluarse con la funcin "If()" para
tomar medidas en caso de que sea igual a 0. Ya se, ya se, no
hemos visto an If(), ya se ver para qu se desespera?
Con un poco de cdigo quedar ms claro que el agua de
tamarindo.
nombredearchivo$=libros.txt
nuevotitulo$=Cmo hacer CDs multimedia al instante y
sin programar
val=StrToFile(nombredearchivo$, nuevotitulo$, FALSE,
FALSE)
Con esto se genera un archivo de texto llamado Libros.txt
que, al abrirse, mostrara el texto de nuevotitulo$. Si volvemos
a ejecutar el cdigo, el resultado ser exactamente igual. Hagamos entonces un cambio:
nomdearchivo$=libros.txt
nuevotitulo$=Cmo hacer CDs multimedia al instante y
sin programar
val= StrToFile(nomdearchivo$, nuevotitulo$, TRUE, FALSE)
En este caso, cada vez que ejecutemos el cdigo, se aadir
la cadena contenida en nuevotitulo$ al archivo de texto. Supongamos que el texto se ejecuta tres veces, al abrir el archivo se
ver algo como esto:
Cmo hacer CDs multimedia al instante y sin
programarCmo hacer CDs multimedia al instante y sin
programarCmo hacer CDs multimedia al instante y sin
programar
Eso esta medio loco No? Pero tiene la lgica implacable con
la que se ejecutan todos los programas de computadora. Aade
al archivo de texto el contenido de la variable nuevotitulo$, a
travs del comando.
189

Cmo hacer Cd's Multimedia


Mejor veamos este otro cdigo:
libro$[1]=Cmo hacer CDs multimedia al instantes y
sin programar
libro$[2]=Autocad 2004, de la pantalla a la realidad
libro$[3]=Excel XP, el valle de los nmeros
libro$[4]=Word XP, de la idea al papel
libro$[5]=Access XP, los datos en orden
libro$[6]=PowerPoint, la imagen en accin
nombredearchivo$=libros.txt
For i=1 to 6
val= StrToFile(nombredearchivo$, libro$(i), TRUE, TRUE)
Next i
Apuesto a que ahora s lo sorprend. Se estar preguntando
porqu diablos las variables de cadena tienen un parntesis
cuadrado con un nmero, pero no se lo voy a decir, por lo menos
no ahora, sino un poco ms adelante, cuando le explique las
variables de matriz. Entonces, despus de ese tema, tendr que
regresar a este punto para comprender este cdigo. Slo espero
que no sienta que estoy jugando con usted, porque eso no es
cierto. (Je, je, je)*
De cualquier modo, el cdigo anterior crea un archivo de texto
llamado libros.txt y cuyo contenido es:
Cmo hacer CDs multimedia al instante y sin programar
Autocad 2004, de la pantalla a la realidad
Excel XP, el valle de los nmeros
Word XP, de la idea al papel
Access XP, los datos en orden
PowerPoint, la imagen en accin
Que es como se llaman algunos de mis ttulos. Aproveche el
comercial y vaya a la librera a preguntar por ellos.
La risa "Je, je, je" siempre ha estado asociada a los malos de la historia. Ignoro la
causa, pero un villano nunca se rie franca, abiertamente, con un "Ja, ja, ja". Sino que
siempre, soterrada, calladamente, hace un "je, je, je", sobre todo despus de que ha
concretado un plan para acabar con su archienemigo. Por tanto, dgame usted, querido
lector, Qu poltico se rie de ese modo? Ya sabe a qu direccin de correo puede mandar
su respuesta.

190

Cmo hacer Cd's Multimedia


- StrFromFile(nombredearchivo$, desdelalnea,
nmerodelneas)
Si tenamos una funcin para grabar archivos de texto
porqu no una para leerlos? Digo, es lo justo. Por eso Romn
Voska fue nombrado juez en su pueblo, por ser un hombre
justo. Por fortuna no acept el cargo y sigui programando,
dijo que era ms fcil entender un script que las pasiones
humanas. Quin lo viera, tan filsofo.
El caso es que este comando asigna a una variable de cadena
el contenido de un archivo de texto especificado por
nombredearchivo$. Los parmetros desdelalnea y
nmerodelineas se refieren a que puede leer desde determinada lnea del archivo y slo el nmero especificado.
Si nmerodelneas es igual a -1, entonces todo el archivo
ser ledo. Si nmerodelineas es igual a -1 y desdelalnea es
mayor que 0, entonces se leer desde la lnea especificada y
hasta el final del archivo.
Y de nuevo el clamor del respetable pblico exige un ejemplo:
archivo$=libros.txt
numlin=2
desde=5
titulos$= StrFromFile(archivo$, numlin, desde)
Si el contenido de libros.txt es como lo dejamos en la funcin
anterior, entonces la variable titulos$ slo contendr:
Access XP, los datos en orden
PowerPoint, la imagen en accin
Prubelo, prubelo, no lo deje as, a lo mejor soy bien mentiroso.

6.3.4 Funciones de ruta


Suponga ahora que tenemos la siguiente variable de cadena:
nombredearchivo$=c:\mis documentos\programas en
MMB\prueba.mbd
191

Cmo hacer Cd's Multimedia


Las siguientes funciones de ruta devuelven estos resultados:
extension$=ExtractExt(nombredearchivo$)
Asigna a una variable de cadena la extensin del archivo: .mbd
directorio$=ExtractDir(nombredearchivo$)
Analiza nombredearchivo$ y devuelve la ruta del directorio:
\mis documentos\programas en MMB\
nombre$=ExtractName(nombredearchivo$)
Devuelve el nombre del archivo: prueba
unidad$=ExtractDrive(nombredearchivo$)
Separa y devuelve la letra de la unidad especificada en la ruta: c:
Le parecen muchos detalles? Ni tanto, esto se pone
bueno.

6.3.5 Variables de matriz


Para entender las variables de matriz, imagine usted un mueble
con varios compartimentos. Cada compartimento puede contener
un objeto diferente, pero se trata siempre del mismo mueble. Si
numeramos cada compartimento, entonces podramos tener un
identificador para el lugar donde se ubica cada objeto:
mueble[compartimento1]=objeto1
mueble[compartimento2]=objeto2
mueble[compartimento3]=objeto3
Etctera.
En las variables de matriz podemos albergar valores numricos o de cadena, igual que sus similares que ya vimos, la
diferencia es que podemos tener varios datos bajo un mismo
192

Cmo hacer Cd's Multimedia


identificador de variable, un mismo mueble digamos y cuyos
compartimentos se distinguen por un nmero ndice.
As, una variable de matriz numrica podra ser la siguiente:
misvalores[1]= 15
misvalores[2]=16.9
misvalores[3]=7.5
Si necesitamos operar con el contenido de algn compartimiento, simplemente usamos la variable especificando el ndice
correcto:
total=misvalores[3]*2
El contenido de total ser 15.
A su vez, en lugar de un valor fijo como ndice, podemos usar
una variable numrica e incluso una operacin. Los siguientes
ejemplos son vlidos:
dato=3
total=misvalores[dato]*2
O bien.
dato=2
total=misvalores[dato+1]*2
Igual que con todas las variables, la asignacin del contenido
puede provenir de otra variable:
dato=2.5
indice=1
misvalores[indice]=dato
Las variables de matriz de cadena funcionan igual, pero
llevan el signo $ como identificador:
mano$[1]=pulgar
193

Cmo hacer Cd's Multimedia


mano$[2]=ndice
mano$[3]=medio
mano$[4]=anular
mano$[5]=meique
El ndice puede ser una variable, por supuesto, pero, adems,
suele venir en un ciclo como los que estamos a punto de estudiar
a detalle:
For i=to 5
midedo$=mano$[i]
Message(Quita de ah tu dedo ,midedo$)
Pause(200)
Next i
Ah le va un reto, para que ponga en juego su imaginacin,
habilidad, paciencia, entereza, espritu de aventura y nos demuestre fehacientemente el agudo filo de su inteligencia.
Se acuerda del archivo libros.txt? Se acuerda que tiene 6
lneas? Recuerda tambin la funcin que sirve para leer archivos de texto y que incluye parmetros para leer a partir de
determinada lnea? Bien, la idea es que genere un ciclo For-Next
que lea dicho archivo y que los ttulos se carguen en una variable
de matriz, un ttulo por ndice. No se vale usar nmeros fijos en
los ndices, ni en los parmetros de la funcin StrFromFile. Por
tanto, evite una lnea de cdigo como la siguiente:
titulos$[2]=Autocad 2004, de la pantalla a la realidad
No busque la solucin en ninguna parte de este libro,
tampoco en el CD-ROM. No la hice. Deb haberla desarrollado, pero no. No se qu me pas, debo haberme bloqueado
o algo as. Djeme me reinicializo para ver si as funciono de
nuevo Ya, gracias.
Si resuelve el reto y me lo manda por correo no le prometo un
viaje a las Vegas (video incluido), ni una casa amueblada, ni nada
de eso. Si acaso, tal vez, lo mencione en la prxima edicin de
este libro. Tal vez en alguna fe de erratas, una nueva pgina de
crditos o a ver qu. Siempre y cuando, adems, me deje
194

Cmo hacer Cd's Multimedia


fusilarme el cdigo para ponerlo como solucin. De cualquier
modo espero sus entusiastas mensajes.

Vista de la casa que el lector(a) NO va a ganar si


resuelve el problema aqu planteado.

Una posibilidad interesante de las variables de matriz es que


pueden contener nombres de objetos para luego usar las variables como parmetros de otros comandos o funciones. Por
ejemplo, imagine que tenemos dos objetos grficos, llamados
mapa1 y mapa2. Una variable de matriz de cadena puede
contener sus nombres:
mapas$[1]=mapa1
mapas$[2]=mapa2
Otros comandos que aludan a los nombres de los objetos
pueden usar la variable mapas$[indice] en lugar del nombre del
objeto en s, por ejemplo:
MoveTo(mapas$[2],230,260,1000, EASYTO)
Da lo mismo si el ndice es a su vez otra variable numrica.

6.4 Funciones de flujo


Definiremos las funciones de flujo como aquellas que determinan la secuencia en que se ejecutan los comandos de un script.
En el lenguaje de MMB tenemos funciones de flujo de dos tipos,
las sentencias If y los ciclos For-Next.
195

Cmo hacer Cd's Multimedia


Preprese para ser llevado, a travs de estas funciones, a la
dimensin desconocida.

6.4.1 Ciclos For-Next


Ya hemos puesto tantos ejemplos de los ciclos For-Next,
que ya es casi seguro que los conoce y sabe cmo funcionan
y de qu se trata, pero no est de ms estudiar hasta sus ms
ntimos detalles. Hagamos pues un ejercicio de vouyerismo
con esta funcin.
Un ciclo For-Next ejecuta todos los comandos que estn
comprendidos entre la sentecia For, que inicia el ciclo, y la
sentencia Next, que lo cierra. El nmero de veces que el ciclo se
ejecuta est determinado por los parmetros de la funcin. Se
requiere adems que haya una variable numrica que sirva
como contador de los ciclos. Todos estos elementos son obligatorios. Observe el siguiente cdigo:
La variable x contar los
ciclos, en este caso 50.

For x=1 to 50
Message(Estamos en la vuelta nmero: ,x)
Next x
La sentencia "Next"
("Siguiente"), ordena el
prximo ciclo.

En cada ciclo se ejecutarn todos los comandos y funciones comprendidos entre las
sentencias For y Next. Aqu slo se trata de
un mensaje que muestra el valor de x.

En trminos coloquiales, podramos traducir este cdigo


como sigue: Para x desde 1 hasta 50, presenta un mensaje
que diga Estamos en la vuelta nmero y el valor que en
cada ciclo tenga x.
Parece que est de ms decir que en un programa sofisticado,
el nmero de ciclos puede estar determinado por factores
interactivos con el usuario, de modo que haya variables en lugar
de un nmero de vueltas fijo.
196

Cmo hacer Cd's Multimedia


For x=inicio To fin
consecutivos[x]=x*factor
Next x
Si el valor de las variables inicio y fin fueran iguales, el ciclo
se ejecuta una sola vez. Si inicio fuera menor que fin,
entonces se ejecuta el ciclo el nmero de veces necesario,
adquiriendo x valores descendientes. En otras palabras, el
siguiente cdigo tambin funciona 10 veces:
For x=10 To 1
Message(Conteo de despegue: ,x)
Next x
Message(O, despegue;)
Usted puede insertar cualquier nmero de comandos y
funciones en el cuerpo de un ciclo For-Next, incluso anidar otro
ciclo, lo que no puede hacer es cruzarlos. El primer ciclo es
correcto, el segundo no lo es:
** Ciclo 1
For x=100 to 200
For y=200 to 230
MoveTo(dibujo,y,x,1000, EASYTO)
Next y
Next x
** Ciclo 2
For x=100 to 200
For y=200 to 230
Next x
MoveTo(dibujo,y,x,1000, EASYTO)
Next y

Ciclos anidados
correctamente.
Ciclos anidados
incorrectamente.

En el primer caso, el ciclo del contador y se ejecutar 30


veces por cada ciclo de x. El segundo, como ya dijimos, es
un error.
Otro error es asignar otros valores en el cuerpo del ciclo a la
variable contadora. Prohibido por tanto algo como esto:
197

Cmo hacer Cd's Multimedia


n=40
For m=1 to 10
m=n
Next m
Ya en estos ejemplos hemos usado el contador en el cuerpo
del ciclo de distintas maneras, por lo que sta y otras combinaciones tambin son posibles, siempre y cuando no se cambie el
valor del contador:
c=0
For m=2005 To 2010
c=c+1
frase$[c]=En el prximo ao: +CHAR(m)
Next m
En cambio, hay ocasiones en las que es deseable generar un
ciclo ininterrumpido, por lo menos en trminos de programacin,
el cual tendra la siguiente sintaxis:
For contador=1 To Infinity
contador=contador+1
DisplayValue(Text,contador)
Next contador
Pero permtame volver a este ciclo un poco ms adelante, una
vez que expliquemos el siguiente mtodo para controlar el flujo
de un programa de MMB, la sentencia If, tambin conocida
como la famosa S condicional que ha participado en diversas
producciones de Hollywood, entre ellas, El Padrino.

6.4.2 Sentencia If
El Padrino se rasca la barbilla con el dorso de la mano izquierda
hacia arriba, de adentro hacia afuera, en ese movimiento tan suyo
y con esa misma mano le indic a su consigliori que se acercara,
luego con la voz bajita y rasposa que lo distingua le prometi a su
ahijado que actuara y cantara en Las Vegas, que convencera al
empresario necio que le negaba el papel:
198

Cmo hacer Cd's Multimedia


- Le har una oferta que no pueda rechazar.
Y, efectivamente, al empresario no le qued ms remedio que
subir al escenario al mediocre actor y cantante, pues no pudo
hacer ningn tipo de valoracin sobre las cualidades artsticas
del ahijado consentido de Don Corleone*, algo como esto:
Si el ahijado canta bien
Entonces
Lo promuevo y lo hago estrella
Si no
Lo mando a volar
Y ya
En cambio, tal vez El Padrino s tuvo la oportunidad de plantear
una comparacin que le hiciera valorar la situacin y decidir las
acciones a tomar, veamos:
Si el empresario no le da el papel a mi ahijado
Entonces
Le hago una oferta que no pueda rechazar (le mato
al caballo, pues)
Si no
Le doy las gracias
Y ya.
Por fortuna, nosotros, al programar, no tenemos detrs la
temible sombra de Tataglia o de Luca Brassi, ni ningn otro
pistolero, por lo que podemos hacer todas las valoraciones y
comparaciones que deseemos en los programas y tomar decisiones en funcin del resultado. Cosa que conseguimos con la
sentencia If, que podemos definir como un Si condicional, una
pregunta de cuyo resultado dependen las acciones siguientes.
Para muchos jvenes la pelcula "El Padrino" de Francis Ford Coppola es vieja y no
existe mucho incentivo para verla. Su accin no es tan trepidante como las pelculas
actuales y se sabe que la mayora de los actores que ah aparecen ya ni siquiera estn
de moda. Sin embargo, creo que es una de esas bellas piezas de cine que nadie debe
perderse, ni siquiera los jvenes. Es una larga reflexin sobre el ejercicio descarnado del
poder y las circunstancias an vigentes de la sociedad moderna. As que vaya a su
videoclub ms cercano y rntela, le va a impactar.

199

Cmo hacer Cd's Multimedia


La pregunta a plantear siempre es una comparacin respecto
al contenido de una variable, por lo que una sentencia If completa
tiene la siguiente sintaxis:
If (pelcula$=El Padrino) Then
Message(No puede perderse la pelcula:,pelcula$
End
En trminos coloquiales diramos: Si la variable pelcula$
es igual a El Padrino, entonces presenta el mensaje No
puede perderse la pelcula: (variable)
Como en todos los dems comandos y funciones, podemos
comparar entre variables, variables y valores fijos y usando
variables numricas o de cadena.
If(num=dat) Then
Message(Nmeros iguales,)
End
Y hablando de limitaciones, tampoco est restringido a comparar entre datos iguales, tambin estn los siguientes operadores de comparacin:
=
<>
<=
=>
>
<

igual
diferente
Menor o igual
Igual o mayor
Mayor
Menor

If (nombre$<>Luis Manuel) Then


Message(T no eres el Jefe, eres:,nombre$)
End
No vaya usted a pensar, ni por un segundo, que el cdigo que
puede escribir despus de la comparacin est limitado a mensajes en pantalla. Usted puede aadir ah todo lo que desee que
ocurra con su programa si el resultado de la comparacin es
positivo y eso incluye a toda la batera de comandos y funciones
de los que es capaz MMB y que apenas comenzamos a ver.
200

Cmo hacer Cd's Multimedia


Pero qu ocurre si el resultado de la comparacin es falso?
Qu cdigo va a ejecutarse? No va a pasar nada? Habr
impunidad como tantos casos en este pas? La mafia se saldr
con la suya? No, no, para nada. Lo que pasa es que no hemos
aadido el complemento de If, la sentencia Else:
If(edad<18) Then
Message(No tienes edad para ver este programa,)
Else
Message(Est bien, slo no te claves con el contenido,)
End
El cdigo despus de Else se ejecutar slo si el resultado
de la comparacin es negativo. Est de ms decir que en ese
caso el primer mensaje no aparece.
Tambin es posible hacer ms de una comparacin en una
sentencia "If", usando los operadores Y (&) y O (|). Veamos
un ejemplo:
If(persona$=hombre & edad>18) Then
Message(Pase a la seccin para caballeros del SPA, por
favor,)
End
El mensaje aparece slo si se cumplen ambas condiciones,
que la variable persona$ sea igual a hombre y la variable
edad sea mayor a 18.
Por otra parte, tambin es posible anidar una sentencia "If" en
otra sentencia "If". Observe este ejemplo:
If(ventas=>5000 & ventas<=10000) Then
comision=ventas*.05
Message(La comisin percibida es del 5% y equivale a:
,comision)
Else
If(ventas=>10001 & ventas<=20000) Then
comision=ventas*.1
Message(La comisin percibida es del 10% y equivale
a:,comision)
201

Cmo hacer Cd's Multimedia


Else
comision=ventas*.15
Message(Alcanza la mxima comisin del 15%, equivale
a:,comision)
End
End
En la primera sentencia If, se evala si ventas es mayor que
5000 y menor que 10000, lo que da un rango y, por tanto,
operaciones respectivas de comisin. Si est fuera de este
rango, ms all de 10000, se evala, en el segundo If, si es
mayor que 10000 y menor que 20000, lo que da 10% de
comisin. Si no es as, entonces es mayor que 20000, lo que
genera una comisin mxima del 15%.
Sin embargo, este cdigo adolece de un error. Y si ventas es menor a 5000? En este cdigo no se evala dicha
posibilidad. Por tanto, le pido, le ruego, le solicito encarecidamente que le piense tantito y reescriba esta secuencia de Ifs
para que evale, primero, si ventas es mayor que 5000 y
luego todo lo dems.
Sin embargo, tal vez a algunas personas les parezca un poco
confuso anidar If's, toda vez que hay que tener cuidado qu
sentencias End cierran qu Ifs, de modo que no falte, ni sobre
ninguna.
Por ello, alternativamente, si necesitamos hacer una serie de
evaluaciones consecutivas, podemos usar una clusula especial del comando. Observe el siguiente cdigo:
If(mes$=Febrero) Then
Message(Comienza ciclo escolar semestral,)
Return()
End
If(mes$=Septiembre) Then
Message(Comienza Segundo ciclo semestral,)
Return()
End
If(mes$=Diciembre) Then
Message(Comienza periodo de vacaciones,)
Else
202

Cmo hacer Cd's Multimedia


Message(En este mes no hay avisos escolares,)
End
Aunque le parezca extrao, este cdigo evala el contenido de
la variable mes$ y enva el mensaje correspondiente al resultado. Aqu el papel central lo juega la funcin "Return()", que
termina la ejecucin de If para pasar a la siguiente sentencia.
Esto es, se ejecuta an cuando la evaluacin resulte falsa,
permitiendo que la siguiente evaluacin acte.
Todo este asunto nos lleva de regreso a la cuestin de los
ciclos For-Next infinitos. Por qu querramos un ciclo infinito?
Bueno, en MMB es posible crear un programa que, en su
interaccin con el usuario, tenga que monitorear permanentemente algunas de sus acciones o el cambio de valor de diversas
variables. Tambin es posible que tengamos que ponerla en un
ciclo de este tipo con la idea de que ejecute ininterrumpidamente
una presentacin en pantalla, hasta que el usuario lo detenga. El
caso es que el cdigo de un ciclo infinito tiene esta apariencia:
For contador=1 To Infinity
contador=contador+1
.
(Cdigo a ejecutarse)
.
Next contador
Y cmo le hacemos para detenerlo sin resetear la mquina,
apagarla de golpe o, de plano, darle un martillazo? Bueno, pues
aqu entran en accin las sentencias If. Veamos el siguiente
cdigo:
For h=1 to Infinity
h=h+1
DisplayValue(Text,h)
If (accionusuario$=Si) Then
Return()
End
Pause(1000)
Next h
203

Cmo hacer Cd's Multimedia


Este ciclo se ejecuta ininterrumpidamente, por lo menos hasta
que alguna accin del usuario modifica el contenido de la variable
accinusuario$, cosa que seguramente ocurre en el cdigo de
algn otro objeto, un script, botn, etctera. El caso es que si
accionusuario$ es igual a Si, entonces la funcin Return()
concluye el ciclo.
Cabe mencionar que podemos iniciar la ejecucin de otros
script o ms cdigo si la evaluacin es verdadera en vez de
concluir el ciclo. Observe el siguiente ejemplo:
For h=1 to Infinity
h=h+1
DisplayValue(Text,h)
If (accionusuario$=Si) Then
RunScript(accionesfinales)
Return()
Ejecuta un Script llamado
End
"accionesfinales" antes de dar
Pause(1000)
paso al comando "Return()"
Next h
que concluye el ciclo.
Finalmente, la funcin Pause(milisegundos) genera eso
precisamente, una pausa de tiempo igual a los milisegundos
indicados entre parntesis. En este caso, obvio, un segundo.
Para qu nos sirve una pausa de un segundo en cada ciclo?
Para dos cosas, para que el ciclo infinito no absorba todos los
recursos del sistema y dos, no me acuerdo.
Llegados a este punto podemos afirmar que hemos completado la exposicin de cmo se construye un programa con MMB.
Lo que sigue son los comandos que podemos aplicar sobre el
proyecto y los distintos objetos, todo ello clasificado por categoras. Y aunque su exposicin puede ser ya ms rpida, de todos
modos spase que lo mejor an est por venir.

6.5 Comandos
6.5.1 Comandos de Proyecto
En esta categora estn aquellos comandos que se refieren al
proyecto multimedia como un conjunto, a sus rdenes para salir
204

Cmo hacer Cd's Multimedia


o para cargar otros proyectos, pero tambin a las pginas que lo
componen. Se trata pues de comandos que no afectan a objetos
en lo particular. Veamos la lista:
- FirstPage()
Mueve la aplicacin a la primera pgina. Si sta tiene un script
en sus propiedades, ste se ejecuta. Si en la primera pgina de
su programa MMB es el men principal o la pantalla inicial de
bienvenida, este comando servira para volver a ese punto. El
comando no requiere parmetros.
- LastPage()
Mueve la aplicacin a la ltima pgina, por lo que sera tambin
un buen mtodo para que el usuario pueda ir a una pgina de
despedida y, en ella, tener un script que concluya el programa.
- NextPage()
Pasa a la siguiente pgina. Si estamos en la 3, pasa a la 4,
etctera. Si estamos en la ltima pgina, el comando no tiene
efecto. Sin embargo, sera absurdo que pusiramos este comando en la ltima pgina.
- PrevPage()
Se mueve a la pgina anterior. Al buen entendedor, pocas
palabras, no explicar ms.
- Page(etiqueta de pgina)
Se mueve a la pgina especificada en el parmetro del
comando. Si quiero ir a una pgina llamada Page 5, como por
default las llama automticamente MMB, entonces el comando
debe ser:
Page(Page 5)

205

Cmo hacer Cd's Multimedia


Recuerde que puede usar variables:
recorrido$=Pgina inicial
** Siempre y cuando a una pgina le hayamos puesto esta
etiqueta.
Page(recorrido$)
Qu tal este otro cdigo?
If m=1 Then
Page(Page 3)
Else
Page(Page 5)
End
Adicionalmente, podemos usar el parmetro LASTPAGE,
para que vuelva a la ltima pgina activa, que no necesariamente
es la anterior:
Page(LASTPAGE)
- Minimize()
Minimiza la ventana de la aplicacin. Como usted es un
experto en Windows, recuerde que a todas las ventanas les
corresponde un botn en la barra de tareas, el cual, al pulsarlo,
vuelve a reestablecer la ventana.
- Run(Ruta, Parmetros)
Este comando permite ejecutar cualquier programa externo a
nuestro proyecto en MMB e incluso podemos aadirle algunos
argumentos para su uso. Por ejemplo:
Run(<Windows>\notepad.exe,c:\mis datos\leame.txt)
Esta lnea de cdigo ejecuta el bloc de notas de Windows y,
adems, abre el archivo leame.txt que est en la carpeta mis
datos de la unidad C:
206

Cmo hacer Cd's Multimedia


Adems, es posible aadir algunos parmetros adicionales,
propios de MMB que determinan la relacin entre ste y el
programa externo:
- TOP
Este parmetro ejecuta el programa externo por encima de
nuestro programa, aunque un clic en cualquier otra aplicacin lo
manda hacia atrs en la pantalla. Es posible aadirle adems un
retardo en milisegundos antes de que la aplicacin aparezca:
Run(c:\archivos de programa\Corel \photopaint.exe,
"TOP(1500))
Ejecuta Photopaint por encima de nuestra aplicacin, con un
retardo de 1.5 segundos.
- TOPMOST
Ejecuta una aplicacin externa por encima de las dems
aplicaciones y as se mantiene hasta que la cerremos o se
ejecute otra aplicacin que se sobreponga a las dems. Tambin
es posible aadirle un retardo en milisegundos, por lo que el
ejemplo anterior podra cambiar y verse de este modo:
Run("c:\archivos de programa\Corel\photopaint.exe",
"TOPMOST(1500)")
- WAIT
Este parmetro obliga a nuestro programa a esperar hasta que
la aplicacin externa se cierre. De este modo se evita que se
ejecutan ms lneas de cdigo, lo que sera til, por ejemplo, en
un programa que sirva para instalar otros programas.
Run(<CD>\demos\instalar.exe,WAIT)
Podemos combinar ms de un parmetro, separndolos por
comas:
207

Cmo hacer Cd's Multimedia


Run("<CD>\demos\instalar.exe","TOP,WAIT")
Observe adems que hemos utilizado, indistintamente y para
efectos de ejemplificar, rutas absolutas y macro rutas, las cuales
son preferibles en la mayora de los casos.
- RunMBD(Ruta y aplicacin, Pgina)
Si nosotros terminamos nuestro proyecto y lo compilamos,
ste se convertir en un programa autnomo con extensin
.EXE. Desde l podemos llamar a otros proyectos de MMB que
tengan la extensin .mbd con este comando.
Esto es til porque podemos tener una aplicacin principal
compilada y decenas, cientos de archivos .mbd que no lo estn,
pero que sean llamados desde esa aplicacin principal. Esto
ahorra recursos de memoria de la computadora donde el programa se ejecuta.
El segundo parmetro permite ir a una pgina especfica del
archivo .mbd que se est llamando. Vea esta lnea de ejemplo:
RunMBD(<CD>\adicionales\consulta23.mbd,Page 5)
Ejecuta el archivo de MMB consulta23.mbd, inicindolo en la
pgina 5.
- Exit()
Cierra la aplicacin, por lo que este comando puede aadirse
al script de un botn que, sencillamente, diga Salir.

6.5.2 Comandos de objeto


- Hide(Etiqueta de objeto)
Oculta el objeto referenciado por la etiqueta.
- Show(Etiqueta de objeto)
Muestra el objeto oculto referenciado por la etiqueta.
208

Cmo hacer Cd's Multimedia


- Invert(Etiqueta de objeto)
Invierte la condicin de oculto/visible del objeto referenciado
por la etiqueta.
En cualquiera de estos tres casos es posible adems referirse a
la etiqueta de un grupo de objetos, los cuales se vern afectados en
conjunto del mismo modo que los objetos individuales.
- MoveObject(Etiqueta de objeto, x,y[,ancho,alto])
Mueve el objeto referenciado por la etiqueta de una posicin
a otra. Opcionalmente, puede redimensionarse el objeto dando
nuevos parmetros de ancho y alto.
La nueva posicin horizontal del objeto est dada por el valor
de x, la vertical por el valor de y. Veamos un ejemplo en donde
no se altera el tamao del objeto:
MoveObject(imagen, 210, 235)
Ahora uno que lo cambie:
MoveObject(imagen, 210,235, 40,25)
Espero que est de ms decir que dichos parmetros pueden
ser sustituidos por variables.
Lo que s cabe agregar es que tambin podemos indicar la
etiqueta de un grupo de objetos para que se muevan, pero en
este caso no es posible aadir parmetros para cambiar su
tamao.
- MoveTo(Etiqueta, x,y,pasos,tipo de animacin)
Este comando, igual que el anterior, mueve el objeto
referenciado por la etiqueta de una posicin a otra. La posicin
destino del objeto est determinada por los valores que demos
a x y, los cuales, como sabemos, pueden ser valores absolutos
o variables numricas. El valor de Pasos determina la velocidad
en la que el objeto va a ir de un punto al otro. Un valor bajo acelera
el objeto, un valor alto lo ralentiza. En tipo de animacin,
209

Cmo hacer Cd's Multimedia


tenemos estas posibilidades:
- EASYTO. Comienza a moverse rpidamente hacia su posicin destino, pero conforme se acerca, desacelera.
- EASYFROM. Al revs, comienza lento y va acelerando
conforme se acerca al destino.
Ejemplos:
MoveTo(imagen,140,350,50,EASYFROM)
Esta lnea tiene valores absolutos como parmetros y lleva el
objeto llamado imagen a x=140, y=350, a un paso de 50 y
acelerando al destino. En contraste, observe esta segunda lnea
de cdigo en donde usamos variables numricas.
MoveTo(imagen,valx,valy,paso,EASYTO)
Como todo lo que se mueve llama la atencin, hemos elaborado un ejemplo para que vaya corriendo a buscar el CD que
acompaa este libro, ya que hace rato que lo tenemos abandonado. Ya lo perdi? Le advierto que no hay reposicin.
El archivo se llama Carrera de caballos, as que vaya
haciendo sus apuestas.

Vista del programa que ilustra el uso del comando "MoveTo", el cual
tambin nos va a servir para ilustrar el uso de "ScriptTimer".
210

Cmo hacer Cd's Multimedia


Ya se le ocurri pensar que con las constantes MouseX() y
MouseY(), que ya estudiamos, podramos hacer que un objeto se
moviera pegado al cursor del ratn si lo combinamos con el
comando que estamos estudiando ahorita?
Cargue el archivo Dragn del CD y estudie el cdigo.
- DisplayValue(Etiqueta del objeto, Variable)
Muestra el contenido de la variable, numrica o de cadena, en
el objeto de texto o botn, referenciado por su etiqueta.
Var$=Resultados a mostrar
DisplayValue(Text1,Var$)
- LoadText(Etiqueta del objeto,Texto)
Ubica texto en un objeto de texto, botn, caja de texto u objeto
de prrafo. El origen del texto a mostrar est determinado por el
segundo parmetro, el cual puede ser una variable de cadena,
una cadena de texto en s o un archivo de texto externo. Veamos
ejemplos de cada caso:
LoadText(Text1,Esta es una cadena de texto fija)
LoadText(Text1,var$)
LoadText(Text1,<CD>\datos\leame.txt)
Ya en los proyectos "Nombres" y "Ratnposicin" se ilustra el
uso de estos comandos, por lo que lo remitimos a ellos para que
revise el cdigo.
Sin embargo, estoy seguro que conforme va aprendiendo el
uso de distintos comandos, paulatinamente va tambin haciendo
sus propias pruebas. Si no es as, entonces le sugiero que vaya
soltando el cuerpo, flojito, flojito, para que poco a poco vaya
programando mejor. Empiece con pruebas simples, luego aada
cosas algo ms complicadas. Experimente con distintas ideas,
hasta que le sea cada vez ms y ms familiar el desarrollo de
cdigo. Trabajando es como se hacen los expertos.
211

Cmo hacer Cd's Multimedia


6.5.3 Temporizadores y ejecucin de scripts
Todo aspirante a programador de computadoras, por lo menos
a programador en MMB, debe conocer estas profundas palabras
de Renato Leduc:
Sabia virtud, de conocer el tiempo,
a tiempo amar y desatarse a tiempo
como dice el refrn dar tiempo al tiempo,
que de amor y dolor, alivia el tiempo.
Por eso, los comandos relativos a este tema tienen que ver con
el buen manejo de los tiempos en la ejecucin de un programa,
como bien deca Don Renato, lo cual me lleva a pensar que,
probablemente, un buen programador tambin puede llegar a
ser un buen poeta. O al revs, un buen poeta tal vez tenga futuro
como programador. Quin sabe. Yo, como no soy buen programador, veo incierto mi futuro potico.
El caso es que en muchas ocasiones nos encontramos con la
necesidad de darle tiempo a los programas antes de que se
ejecute la siguiente lnea de comando. A veces, para que el
usuario pueda ver un mensaje en pantalla, otras para esperar
una accin del mismo y otras ms para que otro script pueda
concluir su ejecucin.
Por otra parte, ligado a este tema, tambin debemos revisar
algunos comandos que sirven para ejecutar objetos script,
cdigo que llama a la accin a otro cdigo. Comenzamos antes
de que se nos acabe el tiempo.
- Pause(milisegundos)
Ya habamos hablado de este comando, genera una pausa en
milisegundos y como en todos los dems casos, podemos usar
una variable numrica como parmetro:
Pause(3000)
** 3 segundos de pausa
alto=1500
Pause(alto)
** 1.5 segundos de alto
212

Cmo hacer Cd's Multimedia


- RunScript(Etiqueta del Script)
Ejecuta el Script referenciado por su etiqueta.
En realidad creo que esto no requiere realmente muchas explicaciones. Cuando vimos los objetos Script, descubrimos que stos
pueden ejecutarse con la pulsacin de una combinacin de teclas
hecha por el usuario. Ahora sabemos que tambin pueden ser
llamados desde el cdigo de otro script o de un objeto.
As, podramos tener un botn que al pulsarse ejecute uno o
varios objetos script, as de simple.
- ScriptTimer(Etiqueta del Script, Milisegundos)
Con este formato, el comando ejecuta el script referenciado
por su etiqueta pero, a diferencia del comando anterior, hace
primero un retardo igual al establecido en el segundo parmetro.
Por lo que tampoco hay mucho qu decir, sabemos que en el
siguiente ejemplo hay una pausa de 5 segundos antes de
ejecutar el cdigo del script llamado inicio:
ScriptTimer(inicio,5000)
Pero la novedad de este comando son sus clusulas TimerA,
TimerB y TimerC, que permiten ejecutar hasta 3 objetos script
simultneamente, cheque el siguiente cdigo:
ScriptTimer(TimerA=inicio1,1500)
ScriptTimer(TimerB=inicio2,1000)
ScriptTimer(TimerC=inicio3,750)
El Script inicio1 comenzara a los 1.5 segundos, inicio2 un
segundo e inicio3 a los 750 milisegundos. Cada uno podra ser
un espectculo a la vista, los tres un efecto alucinante.
Como sea, "carrera de caballos", que no hace mucho revis,
es una muestra del uso de este comando. El Script de la segunda
pgina de ese programa utiliza "ScriptTimer" para hacer correr
a los caballos usando las tres clusulas "Timer", pero el parmetro
de retardo es un valor aleatorio que se calcula con "RND" y se
asigna a una variable, para que el resultado sea impredecible.
213

Cmo hacer Cd's Multimedia


- PageTimer(milisegundos,Etiqueta de pgina)
El comando va a la pgina referenciada por su etiqueta
despus del tiempo establecido en el primer parmetro. Si
recuerda, este comando podra combinarse con las propiedades
de las pginas, donde se establecen los efectos de transicin de
una pgina a otra.
PageTimer(3000,Page 4)
Pero el comando tambin tiene algunos agregados interesantes.
El primero es que si no se especifica ninguna etiqueta de
pgina, entonces mueve el programa a la pgina siguiente
despus del tiempo especificado:
PageTimer(1000,)
Tiene adems las clusulas: "THIS_PAGE", "THIS_SCRIPT"
e "IF_IDLE".
THIS_PAGE recarga la pgina actual despus de la pausa,
ejecutando el script de dicha pgina, su transicin, etctera.
PageTimer(2000,THIS_PAGE)
THIS_SCRIPT no recarga la pgina actual, pero s vuelve a
ejecutar su script.
PageTimer(2000,THIS_SCRIPT)
IF_IDLE avanza a la pgina siguiente despus del tiempo
especificado, siempre y cuando el usuario no ejecute ninguna
accin, como pulsar un botn del ratn o alguna tecla.
PageTimer(15000, IF_IDLE)
- ExitTimer(Milisegundos)
Sale del programa o proyecto de MMB despus del tiempo
especificado, siempre y cuando el usuario no ejecute ninguna
accin, de lo contrario, el comando se cancela. Est de ms
214

Cmo hacer Cd's Multimedia


decir que en lugar de valores, tambin podemos usar variables numricas.
ExitTimer(25000)
- Refresh()
Redibuja la ventana de la aplicacin. El uso de este comando
se recomienda despus de los ciclos For-Next o cuando se
ejecutan diversos scripts o programas externos, con la idea de
evitar el congelamiento de nuestra aplicacin.

6.5.4 Cuadros de dilogo


Ningn programa que se precie de decente puede dejar de
contar con los cuadros de dilogo tpicos de Windows. Menos
ahora que no es necesario tener canas verdes para usarlos, ya
que MMB cuenta con comandos para llamarlos sin tantas
complicaciones.
- Ventana de mensaje
La hemos utilizado muchas veces en los ejemplos de cdigo
anteriores. Abre una ventana con el mensaje predeterminado y,
opcionalmente, un valor o contenido de una variable. De manera
preprogramada, cuenta con un botn Aceptar (u "OK", segn
el idioma de su sistema operativo), que cierra la ventana.
Message(Cadena de texto,variable)

Ventana de
mensaje.
215

Cmo hacer Cd's Multimedia


- Abrir archivos
Este cuadro de dilogo es hiperfamoso, lo usamos todos en
casi cualquier programa con el men Archivo-Abrir: Word,
Excel, PowerPoint, Corel, PhotoShop. Vaya, slo le falta salir en
Big Brother. Tan no necesita presentacin que la imagen relativa
a este cuadro de dilogo la hemos recortado de esta edicin,
pues consideramos que no hace falta:

Imagen del cuadro de dilogo para abrir archivos. Es


tan famosa que decidimos recortarla.

Mejor estudiemos el comando que sirve para activar el cuadro


de dilogo:
- OpenFile(Filtro,Extensin por default)
Sospecho que, despus de todo, s ser necesario poner una
imagen del cuadro de dilogo para revisar su funcionamiento y
poder explicar mejor el comando. Adems, corramos el riesgo
de que su representante artstico nos llamara quejndose por
la omisin de su imagen. As que le ofrecemos una disculpa por
lo sucedido y le aseguramos que no volver a pasar.
Como sea, el punto a resaltar aqu es que, en cualquier
programa, cuando usamos el men Abrir, aparece este cuadro
de dilogo con una lista desplegable de los tipos de archivos que
va a presentar en su ventana.
216

Cmo hacer Cd's Multimedia

El cuadro de dilogo para abrir archivos suele presentar la lista


de los tipos de archivos que es capaz de abrir el programa. En
este ejemplo, Paint abre mapas de bits.

Los parmetros de la funcin permiten definir precisamente


eso: qu tipos de archivos se van a presentar en la ventana para
ser abiertos.
Por tanto, es necesario definir el filtro a utilizar. Esto tiene dos
partes:
Divisin entre las dos partes del parmetro.

Archivos de msica en MP3 (*.mp3) | *.mp3


La primera parte describe el tipo de archivo que se est
presentando en la ventana, la segunda sirve para filtrar los
archivos usando su extensin. En este caso, la ventana
muestra solamente los archivos con extensin ".MP3".

La primera parte del parmetro es la descripcin del tipo de


217

Cmo hacer Cd's Multimedia


archivo que aparece en la lista desplegable del cuadro, lo que
sigue es la extensin de los archivos que se presentaran en la
ventana.

El cuadro de dilogo para abrir archivos de un programa hecho con


MMB. Observe que usamos el filtro del ejemplo anterior, para que
muestre slo los archivos con extensin ".mp3".

Si hacemos un programa que reproduzca archivos de MP3, tal


vez este filtro nos acomode para todos nuestros fines, pero si
estamos haciendo un reproductor de archivos de sonido que
abarque ms formatos, entonces habr que aadir otras extensiones. El filtro puede expandirse para abarcar ms de uno
separandolos con una barra vertical:
Archivos de msica en MP3 (*.mp3) | *.mp3 | Archivos
de sonido WAV (*.wav) | *.wav
Ya con vuelo, podemos de una vez hacer un filtro que abarque
todo lo que necesitamos:
Archivos de msica en MP3 (*.mp3) | *.mp3 | Archivos
de sonido WAV (*.wav) | *.wav | Archivos de sonido MID
(*.mid) | *.mid| Archivos de msica OGG (*.ogg) | *.ogg
218

Cmo hacer Cd's Multimedia

La lista de tipos corresponde al filtro del comando.

En el segundo parmetro del comando simplemente especificamos la extensin que va a buscar por default cuando el cuadro
de dilogo aparece:
*.mp3
Con lo que el comando completo se ve ahora as:
OpenFile(Archivos de msica en MP3 (*.mp3) | *.mp3 |
Archivos de sonido WAV (*.wav) | *.wav | Archivos de sonido
MID (*.mid) | *.mid| Archivos de sonido MOD (*.mod) |
*.mod,*.mp3)
La siguiente variante presenta, en una sola lnea de tipos de
archivo, todos los formatos de sonido:
219

Cmo hacer Cd's Multimedia


OpenFile(Archivos de sonido (*.mp3,*.wav,*,*.mid,*.mod)|
*.mp3;*.wav;*.mid;*.mod|","*.mp3;*.wav;*.mid;*.mod")

Con esta variante, en una sola lnea se presentan todos los


formatos de archivo especificados.

Hagmosle un ltimo aadido al cdigo anterior, para que


adems de los de sonido, presente todos los archivos. Observe
la lnea con cuidado, no la vaya a romper:
OpenFile(Archivos de sonido (*.mp3,*.wav,*,*.mid,*.mod)|
*.mp3;*.wav;*.mid;*.mod| Todos los archivos (*.*) | *.*|,
*.mp3;*.wav;*.mid;*.mod)

Observa la diferencia? Ahora, adems de todos los


formatos en una sola lnea, tambin est la opcin de que
la ventana presente todos los archivos (*.*).

Qu pasa si elegimos un archivo con el cuadro de dilogo y


pulsamos el botn Abrir u "Open"? Recibe un aplauso por ser
el elegido? Se va a su casa? Se burla de los dems archivos?
No lo adivina? Mmmhhh, mala memoria entonces porque ya
lo habamos dicho. Sospecho que va a tener que leer otra vez
todo el libro, copiarlo a un cuaderno, hacer tres planas y regresar.
Cuando se hace la eleccin, tres constantes y una variable de
cadena adquieren los datos relacionados:
220

Cmo hacer Cd's Multimedia


OpenFile$. Tiene la cadena de texto con el nombre del archivo
seleccionado y toda la ruta al mismo.
<File> (Macro Ruta). Contiene la misma cadena que OpenFile$
CBK_OpenFile. Contiene el nombre del archivo sin la ruta,
vgr. leame.txt
CBK_OpenDir. Contiene la ruta, sin el nombre del archivo,
vgr. c:\mis datos\
La pregunta lgica que seguramente usted se har en este
punto es qu hace ahora con los datos del archivo seleccionado.
Su programa sabe qu eligi el usuario con el cuadro de dilogo
y lo puso en la variable OpenFile$ y en las constantes que ya
vimos, pero si fuera un archivo de sonido cmo le hacemos
ahora para que se reproduzca?
Eso lo veremos un poco ms adelante, cuando estudiemos los
comandos para la reproduccin de los archivos de sonido y
multimedia. Entre tanto, podemos dar un ejemplo de qu hacer
con los datos usando solamente lo que hasta aqu sabemos, pero
referido a archivos de imgenes, observe el siguiente cdigo:
OpenFile( Archivos de imagen (*.bmp), (*.jpg),
(*.tif),(*.gif)|*.bmp,*.jpg,*.tif,*.gif| Todos los archivos
(*.*)|*.*|,*.bmp,*.jpg,*.tif,*.gif)
Message(Archivo seleccionado: ,OpenFile$)
dato$=<File>
Message(Contenido de la constante <File>:,dato$)
dato$=CBK_OpenFile
Message(Nombre del archivo:,dato$)
dato$=CBK_OpenDir
Message(Ruta al archivo:,dato$)
Por ultimo, revise esta ltima variante que se sugiere en la ayuda
del programa. Esta lnea de cdigo define la extensin por default
que va a presentar el cuadro de dilogo, pero ubicndolo de una vez
en una carpeta especfica usando macro rutas. Se trata de una
subcarpeta de aquella donde est el propio programa:
Ruta$=<SrcDir>+\textos\*.txt
OpenFile(Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*|,Ruta$)
221

Cmo hacer Cd's Multimedia


- Guardar archivos
Si tenemos un comando para llamar al cuadro de dilogo que
sirve para abrir archivos porqu no tener uno que sirva para
guardarlos?
El uso de este cuadro de dilogo es prcticamente idntico al
que sirve para abrir archivos: permite seleccionar carpetas,
definir el nombre de archivo e incluye un filtro para establecer el
tipo de extensin. Sin embargo, recuerde que, por lo pronto,
MMB slo es capaz de grabar archivos de texto, a travs del
comando "StrToFile", que ya estudiamos. Por lo que la combinacin de este comando, con el cuadro de dilogo, nos permite
grabar texto, slo eso. Veamos el comando.
- SaveFile(Filtros,Extensin por Default)
Los parmetros del comando funcionan exactamente igual,
observe el siguiente ejemplo:
SaveFile(Archivos de texto (*.txt)|*.txt|,*.txt)
El resultado es un cuadro de dilogo con la funcionalidad para
elegir una carpeta especfica y que presenta en su lista desplegable este formato de archivo.

Esta lnea de cdigo puede


aadirse el script de un botn o
un objeto cualquiera y servir
para abrir el cuadro de dilogo.

222

Cmo hacer Cd's Multimedia


Las variantes que ya estudiamos tambin son vlidas. Observe que aqu nos hemos inventando dos extensiones para archivos de texto (*.mit y *.gic). Tambin incluimos (*.*) para que
presente todos los formatos.
SaveFile(Archivos de texto (*.txt,*.mit,*,*.gic) |*.txt;
*.mit;*,gic| Todos los archivos (*.*)|*.*|,*.txt;*.mit;*.gic)

Observe que el cuadro de dilogo ahora incluye las extensiones que


hemos inventado y que podramos usar como nuestra propia
extensin para los archivos de texto de nuestros proyectos.

E igual que con OpenFile, una variable y tres constantes


muestran el resultado de lo que haga el usuario con el cuadro.
OpenFile$. Tiene la cadena de texto con el nombre del archivo
y toda la ruta al mismo.
<File> (Macro Ruta). Contiene la misma cadena que OpenFile$
CBK_OpenFile. Contiene el nombre del archivo sin la ruta,
vgr. leame.txt
CBK_OpenDir. Contiene la ruta, sin el nombre del archivo,
vgr. c:\mis datos\
Pero, pero pero...Es la misma variable y las mismas constantes! Si, as es y?
El reto ahora es que combine este comando con StrToFile,
una caja de texto, algunas variables y algunos botones para
crear en su programa, por ejemplo, un modulo de registro de
usuarios de su enciclopedia multimedia Ser capaz? Yo creo
que s, ya vi que entorn los ojos como preparndose para el reto.
223

Cmo hacer Cd's Multimedia


- Seleccionar carpetas
Otro cuadro de dilogo similar es el que permite navegar entre
las unidades y carpetas del disco duro. Este cuadro es muy
utilizado en los programas que sirven para instalar programas.
Echmosle un vistazo sin que implique perder un ojo:

Los parmetros del comando que llama a este cuadro permiten definir un mensaje en el mismo y la carpeta inicial en la que
va a posicionarse:
- BrowseForFolder(Mensaje,Carpeta inicial)
Sin embargo, ambos parmetros son opcionales y el comando
puede escribirse slo de este modo:
BrowseForFolder(,)
O bien, de este otro, en donde la carpeta inicial ser c:\
224

Cmo hacer Cd's Multimedia


BrowseForFolder(Seleccione una carpeta por favor, por
su propio bien,c: \)

El cuadro se abre en la carpeta


especificada y muestra el mensaje.

Tambin podemos usar variables:


Mensaje$=Elija una carpeta destino
Inicio$=c:\mis datos\\
BrowseForFolder(Mensaje$,Inicio$)
La eleccin del usuario queda en la constante CBK_OpenDir,
como ya estudiamos.
- Seleccin de color
El ltimo cuadro de dilogo soportado por MMB es el
selector de color. No requiere de parmetros y el resultado de
la eleccin del usuario queda en la constante CBK_SelColor.
Observe este cdigo:
225

Cmo hacer Cd's Multimedia


ColorPicker( )
color$=CBK_SelColor
Message(El color seleccionado es una mezcla de rojo,
verde y azul: ,color$)

El comando "ColorPicker()"
no requiere parmetros y abre
directamente el cuadro de
dilogo para seleccionar un
color. El resultado son los
valores de rojo, verde y azul
que se requieren para
mostrarlo y se cargan en la
constante CBK mencionada.

6.5.5 Comandos del Sistema


Los comandos del sistema permiten que nuestro programa
interacte con Windows, son pues comandos que miran hacia
fuera de nuestro programa para dar herramientas que permitan
usar el portapapeles, instalar fuentes y otras actividades que
exponemos enseguida:
- SysCommand(Comando, Parmetros)
226

Cmo hacer Cd's Multimedia


Este es una especie de metacomando, un comando Terminator,
el Schwarzenegger de los comandos de sistema de MMB,
porque adems que hace muchas cosas, es igual de implacable.
Aunque, la verdad, me cae mejor el Schwarzenegger que hace
comedia con Danny de Vito, que el racista gobernador de
California. Pero sea, espero que vengan mejores tiempos para
mis compatriotas migrantes que andan por all.
Veamos los diferentes comandos que este supercomando
soporta:
- SysCommand(ResizeWindow, alto,ancho)
Como se oye, redimensiona la ventana de nuestra aplicacin,
cosa que no conseguiramos de ningn otro modo durante la
ejecucin del programa.

En el archivo de ejemplo
"Redimensionar la ventana", que
viene en el CD-ROM, aadimos el
comando a un botn. Despus de
pulsarlo la ventana se ajusta al
tamao especificado en el
parmetro, por lo que no hay ms
secretos que develar al respecto.

227

Cmo hacer Cd's Multimedia


Los parmetros de alto y ancho pueden ser nmeros fijos o
variables numricas, slo pondremos otro ejemplo:
alto=520
ancho=310
SysCommand(ResizeWindow,alto,ancho)
Se acuerda de las funciones para averiguar el alto y ancho de
la ventana de aplicacin? Podra usarlas combinadas con un
ciclo "For-Next" para crear una alucinante aplicacin que, entre
otras hipnotizantes cosas, se redimensione permanentemente?
Sera algo loco, no? Intntelo y me lo manda para ponerlo en la
pgina de este libro en www.guiasinmediatas.com.
- SysCommand(MoveWindow,x,y)
Mueve la ventana de la aplicacin a las nuevas coordenadas
x,y tomadas desde la esquina superior izquierda de la aplicacin.
En el propio programa hay un proyecto que usa este comando,
cheque el ejemplo llamado movewindow de la carpeta de
ejemplos de Multimedia Builder.

En el archivo de ejemplo del propio


programa podemos hacer que la
ventana se mueve horizontal o
verticalmente, simplemente
cambiando los valores del comando
en un ciclo "For-Next".
228

Cmo hacer Cd's Multimedia


- SysCommand(CenterWindow,)
Esta variante de SysCommand no requiere parmetros y,
simplemente, centra la ventana de aplicacin en la pantalla,
puede ser un comando til al inicio de su programa.
- SysCommand(AlwaysOnTop,)
Ubica nuestra aplicacin por encima de todas las ventanas
abiertas en la pantalla. Si queremos hacer un programa alevoso,
debemos incluir este comando al inicio, el cual se mantendr as
por lo menos hasta que llegue otro ms alevoso an, que, con
una funcin similar, le quite el espacio de privilegio. Este comando no usa otros parmetros.
- SysCommand(NotAlwaysOnTop,)
Esta variante le devuelve la humildad a nuestro programa,
pues no necesariamente se mantiene por encima de las dems
ventanas, dejando esa decisin en los sabios clics del usuario.
- SysCommand(CopyFile,archivo origen, destino)
S, adivin usted, sirve para copiar un archivo en la ubicacin
especificada en el parmetro. Puede usted usar una ruta fija o las
ya clebres Macro Rutas, todo es cuestin de gustos:
SysCommand(CopyFile,c:\leame.txt,c:\respaldo\leame.txt)
O bien:
SysCommand(CopyFile,<CD>\historia.txt,c:\temp\historia.txt)
Pero ya dejemos por la paz a "SysCommand" y veamos otros
comandos de sistema, que tambin existen.
- Return()
Este ya lo conocamos, ya lo habamos usado, hemos hablado
229

Cmo hacer Cd's Multimedia


de l infinidad de veces (precisamente en los ciclos infinitos,
entre otros lugares). De modo que no necesitamos decir que
sirve detener la ejecucin del script y que suele usarse tambin
con sentencias If, entre otros casos.
For h=1 to Infinity
h=h+1
DisplayValue(Text,h)
If (accionusuario$=Si) Then
Return()
End
Pause(1000)
Next h

Este cdigo debe ser


fcilmente acequible al
lector. El comando
"Return()" termina el ciclo
"For-Next" si la valoracin
de "If" es positiva.

- FileExist(Ruta,Variable numrica)
Determina si el archivo especificado en el parmetro existe
o no. Si existe, la variable numrica cobra el valor de 1, de lo
contrario queda en 0. Por lo que este comando suele usarse
con sentencias "If", para evaluar el contenido de la variable
y hacer que el programa acte en consecuencia. Observe el
siguiente cdigo:
FileExist(<ScrDir>\instalar.exe,comprobacion)
If(comprobacion=1) then
Message("El archivo existe, instlese","")
else
Message("Imposible instalar el programa","")
end
- FileString(Subcadena,variable numrica)
Este comando verifica si existe la subcadena en el contenido
de la constante <File>. Recuerde que esta constante contiene
la ruta y el nombre del archivo seleccionado con el comando
OpenFile. Si la subcadena existe, la variable numrica es igual
a 1, de lo contrario es 0.
El siguiente cdigo evala la extensin del archivo seleccionado
por el usuario, para ver si nuestro programa puede ejecutarlo o no.
230

Cmo hacer Cd's Multimedia


FileString(.mp3,sirveono)
If(sirveono=1) Then
PlaySound(<File>)
Else
Message(Tipo de formato no reconocido,)
End
- InstallFont(Ruta a la fuente)
Este es un tema que ya habamos tocado cuando hablamos
de la construccin de la interfaz de los programas. Sugeramos
que si usaba un tipo de letra que probablemente el usuario no
tenga, hay dos soluciones, crear una imagen de mapa de bits con
el letrero o mensaje, o bien, instalar la fuente correspondiente
usando un script de entrada en la primera pgina de la aplicacin.
El comando a usar, verifica si la fuente ya existe en el sistema
donde va a ejecutarse, si no es as, lo instala para que nuestro
programa pueda visualizarse correctamente. Al finalizar la ejecucin, la fuente se desinstala. Todo esto slo requiere una lnea
de cdigo:
InstallFont(<SrcDir>\mifuente.ttf)
El resto es historia.
- Clipboard(Send/Get,Variable numrica/cadena)
Con este comando podemos aprovechar el portapapeles de
Windows. Sus parmetros definen si se va a poner el contenido
de la variable en el portapapeles o al revs. Pongamos algunos
ejemplos:
misdatos$=Esto va derechito al portapapeles
Clipboard(Send,misdatos$)
El otro caso.
Clipboard(Get,loquehaba$)
Message(Esto haba en el papeles:, loquehabia$)
231

Cmo hacer Cd's Multimedia


6.5.6 Comandos de sonido
Vaya, por fin algo de accin auditiva! Si estamos hablando de
un programa que sirve para hacer programas multimedia, ya era
hora que volviramos a lo que nos permite ponerle msica al
asunto. As que demos paso a los comandos relativos a tan
ldicas tareas.
- VolumeUp(Volumen)
Este comando sirve para que su computadora cambie el canal
de su televisin, tambin mueve la estacin de radio de su
aparato estereofnico y, a veces, le cambia la hora a los relojes
de cuarzo. Si no me cree, entonces piense que sirve para subir
el volumen del audio de la computadora. Si no se determina
ningn parmetro, entonces el aumento es de un 5%. Cualquier
otro nmero tambin es considerado como un porcentaje, por lo
que no puede ser mayor a 100. Por lo que podramos tener
cualquiera de estos tres casos:
VolumeUp()
VolumeUp("50")
dadoporelusuario=35
VolumeUp("dadoporelusuario")
- VolumeDown()
Este comando tiene odo de tsico, por lo que sirve para bajarle
al volumen, en contraste con el comando anterior, ms an si la
msica que se reproduce no le gusta. Si no hay parmetros, la
disminucin es del 5%.
- FMODConfig(Parmetros)
Si usted, apreciable lector, abre el "Panel de Control" de
Windows, encontrar un icono que permite configurar los dispositivos de sonido de su computadora. Con este comando, MMB
232

Cmo hacer Cd's Multimedia


tambin ofrece acceso a dicha configuracin. Sin parmetros, se
abre una ventana donde podemos seleccionar el controlador y
el dispositivo de salida a utilizar.
Sin embargo, me parece que es una opcin que difcilmente
querr poner en manos de los usuarios de sus programas en
MMB, por lo que no abundaremos al respecto.
FMODConfig()

Sin parmetros, el comando


abre un cuadro de dilogo para
configurar la salida de audio.

- PlaySound(Ruta)
Cuando vimos el comando FileString() dimos una pequea
muestra del uso de PlaySound, el cual sirve para reproducir
archivos de sonido. Los formatos soportados por MMB son:
MP3, WAV, MID, MOD, OGG y WMA. El parmetro necesario es
indicar el archivo y la ruta pero, como vimos en aqul ejemplo,
podemos usar una Macro Ruta, por lo que todos estos ejemplos
son vlidos:
PlaySound(d:\sonidos\aplausos.wav)
PlaySound(<FILE>)
PlaySound(<CD>\mi programa\sonidos\entrada.mp3)

233

Cmo hacer Cd's Multimedia


- StopSound()
Detiene la reproduccin de sonido. Una gracia de MMB de la
que no hemos hablado, es que tiene la capacidad de utilizar
varios canales de salida simultneamente, esto es, que pueden
ejecutarse 2 archivos de sonido al mismo tiempo. Lo que significa, por ejemplo, que podra haber una msica como background en MID, al tiempo que otro archivo de sonido en WAV,
podra reproducirse con la voz de una persona haciendo una
explicacin. Como sea, StopSound() detiene la ejecucin de
todos los archivos de sonido, sin excepcin. No requiere
parmetros.
- AudioOpen(Ruta)
AudioOpen abre y reproduce el archivo indicado en la ruta,
lo cual no tendra ninguna ventaja sobre el comando PlaySound,
a no ser que, a falta de parmetros, abre el cuadro de dilogo
para abrir archivos, buscando los que tengan extensin MP3,
OGG, WMA y ASF. Las variantes que podemos usar para poner
la ruta son harto conocidas.
AudioOpen()

Si ms parmetros, el comando
abre el cuadro de dilogo para
buscar archivos de sonido con
determinados formatos.

234

Cmo hacer Cd's Multimedia


- AudioPlay()
Permite volver a ejecutar el archivo de sonido que haya sido
abierto con "AudioOpen".
- AudioStop()
Detiene la ejecucin de sonido derivada de los comandos
AudioOpen y AudioPlay, no requiere parmetros.
- AudioPause()
Hace una pausa, se detiene, se calma un rato, deja de sonar,
ya no quiere avanzar, se resiste a seguir, ya no avanza, no dice
nada, se calla la boca, todo se vuelve silencio, se congela,
etctera, etctera, aunque se refiere a la reproduccin de sonido
de los comandos AudioPlay y AudioOpen.
- AudioRewind("Segundo","RELATIVE")
Regresa la reproduccin del archivo de sonido en ejecucin
con AudioOpen o AudioPlay al segundo especificado en el
primer parmetro, siempre y cuando el segundo parmetro no
exista. Entendi? No? Yo tampoco. Va de nuevo.
Observe el siguiente ejemplo:
AudioRewind(310,)
Si la reproduccin del archivo iba en el segundo 410, se
regresa al segundo 310. En el siguiente caso, en cambio, se
regresa al segundo 100.
AudioRewind(310,RELATIVE)
Por qu? Pues porque con el parmetro RELATIVE se
regresa 310 segundos contados de su posicin actual, cual sea.
Recuerde que usted cuenta con varias constantes CBK que le
darn informacin sobre el archivo de sonido en ejecucin, de
235

Cmo hacer Cd's Multimedia


modo que puede crear cdigo que evale el tiempo total y pueda
manejarlo para sus programas multimedia.
- BackgroundPlay(Ruta,LOOP)
Me imagino que a estas alturas ya nada mas lee los comandos
y se imagina para qu son. BackgroundPlay ejecuta el archivo
especificado en la ruta como sonido de fondo. El parmetro
LOOP es para que esa reproduccin sea ininterrumpida. Este
comando, combinado con PlaySound u otro que tambin ejecute archivos de sonido, es el que permite tener ms de un archivo
en ejecucin.
- BackgroundPause()
Seguramente no est enterado, pero este comando hace una
pausa en la reproduccin de BackgroundPlay, slo le pido lo
difunda de manera discreta. .
- BackgroundStop()
Y este comando la detiene.
- WavePlay(Ruta,LOOP)
De modo similar a los comandos anteriores, este reproduce
los archivos ".WAV". Busque en su computadora, sobre todo en
la carpeta c:\windows\media, va a encontrar varios, tal vez ms
de los que conoca. El parmetro LOOP es opcional y genera
una reproduccin ininterrumpida.
Si no se especifica una ruta y nombre de archivo, igual que en
otros casos, se abre el cuadro de dilogo para abrir archivos con
esta extensin.
WaveStop()
Detiene la reproduccin del comando anterior y no requiere
parmetros.
236

Cmo hacer Cd's Multimedia


- MidiPlay(Ruta,LOOP)
Igualito, pero para los archivos .mid. Es necesario decir
ms?
-

MidiStop()

Mmmhhh Digo algo?


- ModOpen(Ruta)
Este comando slo abre los archivos de sonido con formato
.MOD. La accin viene con los comandos siguientes.
- ModPlay()
Ejecuta el archivo abierto. No usa parmetros, los odia, dice
que no quiere saber nada de ellos, que desde que naci le
hubiera gustado ser como SysCommand, pero no pudo. No
se deshace de los parntesis porque Roman Voska no lo deja,
que son como una pesada mochila en la que no puede echar
nada. Eso s, los archivos ".MOD" los ejecuta con un virtuosismo envidiable.
- ModStop()
Detiene la virtuossima ejecucin del comando anterior.
Siempre hay un aguafiestas en la vida. Bien me lo dice mi madre:
"Hasta Pooh tiene enemigos mortales".
- CDPlay()
Haba pensado alguna vez que sera muy sencillo crear un
reproductor de CDs de msica personalizado para su PC? Por
qu no lo intenta? Yo creo que la creatividad en la interfaz puede
significar toda la diferencia entre lo comn y lo extraordinario,
aunque los comandos internos para su funcionamiento sean muy
simples. Recuerde la enorme flexibilidad de MMB para crear
interfaces personalizadas. Ah se lo dejamos de tarea.
237

Cmo hacer Cd's Multimedia


El comando comienza la ejecucin del CD de msica que est
en la unidad de CD-ROM. Observe los siguientes comandos,
son relativos a este mismo tema. No olvide que, como tales,
puede aadirlos a los scripts de los botones de su interfaz para
que funcionen sin problemas.
- CDStop()
Detiene le ejecucin.
- CDPause()
Hace una pausa.
- CDTrack(nmero de track)
Ejecuta un track especfico, cuyo nmero est en los
parmetros como valor fijo o como variable numrica.
- CDForward()
Ejecuta el track siguiente al actual.
- CDBackward()
Ejecuta el track anterior.
- CDPlayPause()
Hace una pausa.
- CDSkipForward()
Avanza 10 segundos en la ejecucin.
- CDSkipBackward()
Se atrasa 10 segundos.
238

Cmo hacer Cd's Multimedia


- WhichCDTrack(Variable numrica)
Devuelve el nmero de track que est actualmente en ejecucin. El resultado queda en la variable numrica definida en el
parmetro.
AudioVisualizationType("Etiqueta del objeto","Tipo")
Los objetos para audio visualizacin vistos en el apartado 5.2
pueden modificarse interactivamente aadiendo ste y el siguiente comando en algn script de su aplicacin.
Los tipos de visualizaciones disponibles son los mismos que
podemos configurar en el cuadro de propiedades del objeto:
ANALYZER
OSCILLOSCOPE
Por lo que el comando podra quedar as, si el objeto de audio
visualizacin se llamara lineas:
AudioVisualizationType(lineas,OSCILLOSCOPE)
- AudioVisualizationColor("Etiqueta","Parmetros")
El comando anterior cambia el tipo de visualizacin del objeto,
este comando cambia los colores. Recuerde que vimos un
cuadro de dilogo para obtener un color de la paleta de colores,
el resultado queda en una variable de cadena que podemos usar
con este comando.
Los objetos del apartado 5.2 y cuyos comandos relativos
estudiamos aqu, tienen dos componentes de color: el fondo y
la lnea o barras segn el tipo de animacin seleccionado. El
comando permite cambiar ambos. Ya sabemos que el primer
parmetro es la etiqueta del objeto que vamos a afectar. La seccin
de parmetros determina si vamos a cambiar el fondo o la lnea a
un color especfico o a alguno seleccionado con el cuadro de
dilogo. Un ejemplo para cambiar el fondo se vera as:
AudioVisualizationColor("lineas","BACKGROUND=115,80,160")
239

Cmo hacer Cd's Multimedia


Ya sabemos que los valores se refieren a los niveles de rojo,
verde y azul del nuevo color, en este caso, del fondo.
El color del osciloscopio se cambiara con un comando como
este:
AudioVisualizationColor("lineas","RGB(60,50,110)")
La visualizacin de reas requiere de dos colores, por lo que
el comando cambia as:
AudioVisualizationColor("barras","RGB(60,50,110),
RGB(115, 45,193)")
No olvide que los valores especficos pueden cambiarse para
usar variables y que el color puede seleccionarlo el usuario del
cuadro de dilogo con el comando "ColorPicker()" (Ya lo haba
dicho? Creo que s... que repetitivo soy).

6.5.7 Comandos de imgenes


Estimado(a) lector(a), prefiero usar entre parntesis la a,
como se usaba antes, para no decirle: Chiquillos y chiquillas.
Claro que, aunque me costara ms trabajo, debera decirle
Estimada lectora, estimado lector. De todos modos, mi flojera
no detendr los avances de la sociedad en materia de igualdad
de gnero.
Pero no era esto lo que quera decirle, sino el hecho de que
si le pareci poco lo que podemos hacer con las imgenes con
MMB y que estudiamos en el apartado 4.3, entonces vamos a
aadir algunas cosas ms va comandos para Script. As sus
imgenes cobrarn an ms vida, pero sobre todo interactividad
con el usuario.
Pero chele primero un ojo a tres excelentes ejemplos que
vienen con el propio programa, el del reloj es extraordinario.
Bsquelos, en su disco duro, ah estan si ya instal el programa:
test_image.mbd, ImageDemo.mbd y clock_3.mbd
- ViewImage(Ruta,CENTER)
240

Cmo hacer Cd's Multimedia


Muestra en una ventana independiente una imagen externa
que tenga el formato JPG o BMP. El segundo parmetro, como
supone correctamente, centra la ventana de visualizacin en la
pantalla, aunque es opcional su uso.
Este comando, con la interfaz adecuada y los dems comandos disponibles, nos permitiran crear nuestro propio visualizador
de imgenes. Tal vez un programa para ver las fotos del lbum
familiar. As, puede sorprender a la familia cuando les muestre la
espectacular presentacin previa al lbum de fotos, con animaciones de las gracejadas del beb y, los ms audaces, con el
video de lo que ocurri la noche de bodas, el streeptease de la
novia y el azotn del novio por querer abrazarla sin quitarse bien
los pantalones.
Si no me cree, vea el archivo "foto-boda" del CD-ROM en
donde aadimos este comando a un botn.

No quisiera insistir, pero no olvide que las rutas deben ser absolutas
durante el diseo de las aplicaciones y relativas cuando vaya a compilarlas para finalizar sus programas. Recuerde tambin que puede hacer un
visualizador de imgenes en donde sea el usuario el que elija la imagen a
abrir, usando los cuadros de dilogo con los filtros adecuados y luegos las
constantes para obtener la ruta y el nombre del archivo.

- ReplaceImage(Etiqueta del objeto,Ruta)


Reemplaza la imagen de un objeto de mapa de bits referenciado
por su etiqueta, por otra.
Lo primero que se me ocurre comentar es que esta opcin
241

Cmo hacer Cd's Multimedia


sera muy til para crear una aplicacin de autoenseanza en
donde se requirieran muchas imgenes. De este modo no es
necesario que el programa las incluya todas.
Pero tambin estoy seguro que su creatividad e imaginacin
es muy superior a la ma y ya tiene ideas mejores.
- UseImageBkgColor(Etiqueta del objeto,1/0")
Activa o desactiva un fondo de color para los objetos de
imagen referenciados por la etiqueta. El parmetro 1 lo enciende, 0 lo apaga.
- SetImageBkgColor(Etiqueta del objeto,R,G,B)
Establece el color del fondo al que se refiere el comando
anterior. Los parmetros son los valores en la combinacin RGB
(Red, Green, Blue, Rojo, verde, azul). Recuerde que puede
darle la oportunidad al usuario de su proyecto de elegir un color
con el cuadro de dilogo correspondiente.
- SetImageOrigin(Etiqueta del objeto,X,Y)
Atencin con este comando, se trata de esas cosas que pasan
desapercibidas pero que suelen resultar sumamente tiles,
sobre todo si nuestro programa va a rotar o redimensionar algn
objeto de imagen. Si no va a realizar ninguna de estas tareas,
entonces este comando ya no resulta tan interesante y quin
sabe si volvamos a acordarnos de l, es ms para qu sirve?
Ah, s, ya me acord. Establece un punto determinado por las
coordenadas X, Y, respecto a la esquina superior izquierda del
objeto, que va a servir como centro de los comandos para rotar
o redimensionar el objeto.
Distancia Y
Nuevo punto para
rotacin o
redimensionamiento.
Distancia X
242

Cmo hacer Cd's Multimedia


- ResizeImage(Etiqueta del objeto,Ancho,Alto)
Los comandos aludidos en el prrafo anterior piden la
palabra para exponer lo que a su derecho conviene. Por eso
explicamos el que sirve para redimensionar la imagen referida
por su etiqueta.

En el CD-ROM va a encontrar un programa llamado "redimensionar


una imagen", en donde podr ver este comando en accin junto con
el anterior y de un modo bastante aburrido, por cierto. Lo que hacen
algunos comandos con tal de llamar la atencin. De cualquier
modo, le sugiero que revise el script del botn.

- RotateImageRel(Etiqueta del objeto,ngulo)


Este comando hace girar el objeto referenciado por su etiqueta
el ngulo especificado. Si establecemos un punto de origen,
entonces se ser el vrtice del ngulo. Ahora bien, a diferencia
del siguiente comando, el ngulo se cuenta a partir de la posicin
actual del objeto.
- RotateImageTo(Etiqueta del objeto,ngulo)
Este comando tambin marea al objeto de imagen, pues
tambin sirve para girarlo, pero a diferencia del comando anterior, el ngulo de giro no es acumulativo, sino que se cuenta
siempre a partir de la posicin original de la imagen.
243

Cmo hacer Cd's Multimedia


Obviamente, en el CD-ROM puede encontrar un programa
que gira un objeto de imagen, se llama "girar-imagen". Sin
embargo, la programacin del botn slo muestra el uso de uno
de estos dos comandos, le toca a usted sustituirlo por el otro para
probarlo.

Igual que en el caso del redimensionamiento, hemos usado el comando para girar mapas de bits en el contexto de un ciclo "For-Next", para
que ste gire paulatinamente. Pero ste, como todos los ejemplos,
estn hechos para que usted los haga pedazos, se los coma, los muela
hasta convertirlos en molculas y luego los vuela a armar, para crear
sus propios programas, reinventados y mejores.

- ScrollImageView(Etiqueta del objeto,X,Y)


Si el tamao de la imagen es mayor que su contenedor,
entonces vamos a tener una vista como sta.

Una imagen amplificada


en su contenedor.
244

Cmo hacer Cd's Multimedia


En estos casos, el comando sirve para explorar la imagen,
recorrindola dentro de su contenedor. Si usamos las coordenadas x=0, y=0, entonces la esquina superior izquierda de la
imagen corresponder con la esquina superior izquierda del
contenedor, como en el ejemplo:

La esquina superior izquierda


de la imagen coincide con la
dem del contenedor. Ah las
coordenadas son x=0, y=0

Para desplazar la imagen y ver la parte derecha e inferior,


debemos usar coordenadas negativas, pues la esquina superior
izquierda del contenedor puede considerarse como el punto de
origen. En otras palabras, el comando tendra parmetros como
estos:
ScrollImageView(Bitmap,-125,-140)

La lnea de cdigo la aadimos


al scrip de la propia imagen, de
modo que se desplaza a esas
coordenadas cuando hacemos
clic con el ratn.

245

Cmo hacer Cd's Multimedia


As, cualquier desplazamiento a la derecha o hacia abajo tendr
valores de coordenadas negativos, a la izquierda positivos.
- ZoomImageView(Etiqueta del objeto,Valor de Zoom)
Ya sabemos que una imagen puede ser mayor que su
contenedor cuando aplicamos "zoom" en su cuadro de propiedades, pero eso tambin puede ocurrir interactivamente con
el uso de este comando, tal como puede ver en el ejemplo
"test_image.mbd" que viene con MMB.
La primera pgina del programa
"Test_image" muestra el uso de
este comando, pero el resto de
las pginas tambin ilustra lo que
hemos visto en esta seccin:
comandos para rotar imgenes,
cambiar el color de fondo, crear
un slideshow, etctera.

Por definicin, el tamao original de la imagen es igual a 100%,


cualquier valor menor reduce la imagen, mayor, obvio, la agranda.
Por lo que un ejemplo obvio sera ste:
ZoomImageView(Bitmap,120)
- RestoreImage(Etiqueta del objeto)
Restaura la posicin y el tamao original de una imagen que
haya sido rotada o aplicado un comando de Zoom. El nico
parmetro requerido es la etiqueta del objeto de imagen.
Los comandos ZoomImageView y SrollImageView tendran
que ir de la mano en una aplicacin que, con cualquier pretexto,
manipulara imgenes. Y eso hacemos nosotros, aprovechar
cualquier pretexto para usarlos en un programa sobre las sorprendentes revelaciones que sobre Jesucristo hace Dan Brown
en el libro de moda: "El cdigo Da Vinci". El programa se llama
"DaVinci" y no requiere resolver ningn acertijo para verlo.
246

Cmo hacer Cd's Multimedia


6.5.8 Comandos para Gifs animados
De los gifs animados ya hemos hablado en el apartado 4.3.3,
por lo que slo aadiremos que en MMB tambin hay comandos
para controlar su animacin. Vemoslos.
- AGifPlay(Etiqueta del objeto)
Como recordar, es posible insertar un gif animado
desactivando en sus propiedades Auto Play. Por lo que, el
ejecutarse el programa, estara esttico. Este comando lo echa
a andar.
- AGifStop(Etiqueta del objeto)
Si vamos a tener un script en nuestro programa para controlar
algn gif animado, entonces debemos tener un comando para
poderlo detener. Eso es lo que hace este comando.
- AGifReset(Etiqueta del objeto)
Seguro que tambin ya sabe que los gifs animados se componen de varios cuadros, los cuales se suceden en la pantalla de
la computadora creando la animacin. Este comando regresa el
gif animado a su cuadro inicial. Tan, tan.

6.5.9 Comandos de impresin


Cmo explicarlo? Qu decir? Cmo evitar confundirlo con
lo evidente? Lo dir como es: Los comandos de impresin sirven
para imprimir No se ra, es cierto. Chquelos:
- PrintText(Etiqueta del objeto,Parmetro)
Imprime el texto contenido en un objeto de texto o de pargrafo. El parmetro es opcional y slo tiene que ver con el hecho de
que se imprima usando la misma fuente. Por tanto, suponiendo
que vamos a imprimir el contenido de un pargrafo llamado
historia, el comando podra tener cualquiera de las dos formas:
247

Cmo hacer Cd's Multimedia


PrintText(historia,)
PrintText(historia,FONT_FROM_OBJECT)
- PrintPage(Tamao)
Imprime la pgina actual del programa, el parmetro es
opcional, por lo que podra quedar simplemente as:
PrintPage()
Si incluimos como parmetro 100, entonces la impresin
ocupar toda la pgina, valores menores sern una proporcin
de dicho tamao.
PrintPage(80)
- PrintRect(Nombre del objeto,Zoom)
Podemos dibujar un rectngulo en la interfaz de la pantalla,
luego hacerlo invisible y dejarlo as de modo permanente. Dicho
rectngulo, con este comando, nos puede servir para imprimir
cualesquier objeto o grupo de objetos que est en su interior.
El valor de zoom es opcional. Si se omite o es igual a 100,
entonces la impresin ocupar toda la pgina. Cualquier valor
menor ser una proporcin de dicho tamao.

6.5.10 Comandos de video


En los apartados 4.4 y 5.1 mostramos que es posible crear un
reproductor personalizado de video sin necesidad de aadir una
sola lnea de cdigo. Sin embargo, tal vez desee crear algo tan
especial, que quiera tener un control total de los objetos de video,
por lo que necesitar de los comandos respectivos.
- VideoLoad(Etiqueta del objeto,Ruta)
Como su nombre lo indica, este comando carga un archivo de
video en el objeto especificado por su etiqueta. Sin embargo,
248

Cmo hacer Cd's Multimedia


dicho objeto debe existir antes del uso del comando. En otras
palabras, este comando sirve en una aplicacin que va a poner
a disposicin del usuario varios archivos de video, pero que ya
contiene uno predeterminado.
- VideoPlay(Etiqueta del objeto)
Una vez cargado el objeto de video con el comando anterior,
el siguiente comando lgico es aqul que inicia su reproduccin. Este comando, en el script de un botn cualquiera,
comenzara la accin. Aunque cabe recordar que los controles de video estn preprogramados en el botn Wizard de la
barra de herramientas.
- VideoPause(Etiqueta del objeto)
Este comando pone en pausa un video en reproduccin
especificado por la etiqueta. Si el video est en pausa, reinicia la
reproduccin.
- VideoStop(Etiqueta del objeto)
Detiene la reproduccin. Aadira aqu algn mal chiste sobre
lo obvio que suelen ser algunos comandos, pero he puesto
tantos que ya me da pena.
- VideoParam(Etiqueta del objeto,Parmetros)
He aqu un comando ms interesante. Uno por el que podemos decir otra vez ms de 3 lneas, lo cual nos satisface mucho
porque es nuestra especialidad.
"VideoParam" establece diversos parmetros de control sobre el objeto de video especificado por su etiqueta.
Para que quede ms claro que el agua de tamarindo, pongamos todos los parmetros disponibles y una explicacin de su
uso. Suponga que tenemos un objeto de video llamado mivideo
(Wow, qu original!):
VideoParam(mivideo,FULLSCREEN)
249

Cmo hacer Cd's Multimedia


Conmuta la reproduccin entre el tamao original y pantalla
completa.
VideoParam(mivideo,LOOP=ON)
Hace que el video se reproduzca indefinidamente, hasta que
un comando "VideoStop" lo detenga. La otra opcin del
parmetro, por supuesto, es LOOP=OFF, que har que no
vuelva a reproducirse despus de finalizar.
VideoParam(mivideo,MUTE=ON)
Apaga el sonido del video, MUTE=OFF, lo reactiva.
VideoParam(mivideo,MODE=FRAME)
Establece que la duracin del video se mide por la cantidad de
cuadros que lo componen. Esto es importante porque determina,
a su vez, los parmetros para usar controles para adelantar o
regresar el video, como veremos en el siguiente comando. La
alternativa es establecer la duracin del video por tiempo, del
siguiente modo:
VideoParam(mivideo,MODE=TIME)
- VideoRewind(Etiqueta del objeto,Parmetros)
Ubica el video en una posicin especfica, adelante o atrs de
la actual. El tipo de dato para ubicar el punto del video depende
de lo establecido por el comando anterior. Si fue por tiempo,
entonces podemos indicarlo en milisegundos:
VideoRewind(mivideo,120000)
Ubica el video a los dos minutos de su inicio. Cabe recordar
tres cosas, por si hace falta: 1) puede sustituir el valor del
parmetro por una variable numrica, eso le dar interactividad
al comando como ya hemos insistido antes; 2) Las constantes
CBK nos dan diversos datos sobre los objetos de video, de modo
250

Cmo hacer Cd's Multimedia


que con los comandos "If" correspondientes, no correremos el
riesgo de dar valores invlidos al comando "VideoRewind"; 3)
Ya me arrepent de poner un 3, as que con eso basta.
Una variante del parmetro anterior, es aadir la clusula
RELATIVE, que sirve para adelantar o atrasar el video determinados milisegundos contados a partir de la posicin actual, por
ejemplo:
VideoRewind(mivideo,10000,RELATIVE)
Esto adelanta el video 10 segundos. Y si queremos que
regrese? Simplemente usamos un valor de milisegundos
negativo:
VideoRewind(mivideo,-10000, RELATIVE)
El comando y la clusula RELATIVE funcionan igual se trate
de cuadros del video o de milisegundos, pero recuerde que eso
debe establecerse primero con "VideoParam".
- VideoSpeed(Etiqueta del objeto,Parmetros)
Modifica la velocidad de reproduccin del video segn el valor
del parmetro.
El rango vlido es 0-2000, donde 1000 es la velocidad normal.
Por tanto, valores menores ralentizan el video, mayores lo
aceleran. Un ejemplo simple que acelera el video:
VideoSpeed(Etiqueta del objeto,1500)
En este comando tambin es posible usar la clusula
RELATIVE, en donde el valor se sumar o restar a la velocidad actual, por ejemplo:
VideoSpeed(Etiqueta del objeto,250, RELATIVE)
Si la velocidad actual era igual a 1000, entonces el video se
ver algo ms acelerado.
VideoSpeed(Etiqueta del objeto,-250, RELATIVE)
251

Cmo hacer Cd's Multimedia


Esto dejar la velocidad en 750 si era normal.
- VideoScale(Etiqueta del objeto,Ancho,Alto)
Modifica la escala del objeto de video segn los valores de
Ancho, Alto, lo cual no requiere muchas explicaciones. Slo
considere que si va a usar este comando interactivamente con
valores dados por el usuario, debe aadir programacin que
evale los valores para que no se salgan de cierto rango y que
en su interfaz haya espacio para un aumento de la escala.

6.5.11 Comandos para cajas de listas


No se si le ha pasado a usted, pero cuando yo intento clasificar
algo (documentos, archivos de la PC, objetos en el escritorio,
etc.), siempre me quedo con algunas cosas que no tengo ms
remedio que ponerlas bajo la categora "Varios". O bien porque
no encajan especialmente con algn grupo de la clasificacin, o
bien porque comparten caractersticas de ms de un grupo, de
modo tal que hay que crearles una clasificacin genrica, indefinida, para resolver su ubicacin.
Ms o menos algo como eso me pas con los dos ltimos
apartados de esta obra. Aqu vamos a referirnos a un tipo de
objeto que no pudimos colocar junto a los dems sencillamente
porque su funcionamiento va estrechamente ligado con el desarrollo de cdigo. Es decir, pudimos haberlo explicado en el
captulo 4, pero de inmediato hubiramos tenido que mandarlo
a esta seccin.
Nos referimos a las cajas de listas y los comandos que las
hacen funcionar. En el siguiente apartado veremos algo que
parece una macro ruta, pero que tambin tiene que ver con las
listas de archivos. Vemos de qu estamos hablando antes de
que me ponga cara de "What?".
Las cajas de listas son un tipo especial de objeto cuya
insercin en la interfaz es idntica a la de los dems, por lo que
no es necesario insistir en dicho procedimiento. Consisten en un
rectngulo que contiene listas de elementos. Originalmente
estaban pensadas para contener listas de archivos de sonido,
como los que utiliza WinAmp, y en donde el usuario del programa
252

Cmo hacer Cd's Multimedia


puede hacer clic para desencadenar alguna accin, como la
reproduccin del propio archivo.
Ahora estas cajas pueden contener listas de archivos para su
reproduccin, desde los de audio y video, hasta archivos de
imgenes o simplemente listas de nombres asociadas a Scripts
para cualesquier fin.
El programa "Test_image" que viene con Multimedia Builder
tiene en una de sus pginas un extraordinario ejemplo de cmo
usar las cajas de listas para presentar archivos de imagen.
Caja de lista

En el programa, la caja de lista sirve para crear una dem de los


archivos de imagen. Hay un botn para escoger la carpeta donde se
buscarn los archivos y otro ms para presentar las imgenes en
secuencia. Adivine por ah quines son los de la fotografa.

253

Cmo hacer Cd's Multimedia


Antes de usar los comandos que sirven para darle vida a las
cajas de lista, insertamos el objeto y, como siempre, establecemos sus propiedades.
Botn de la barra de herramientas
para crear una caja de lista.
Por default, las cajas de lista
tienen la etiqueta "SongList",
"Lista de canciones", aunque
no lo sean realmente.
La seccin "Style" determina
la forma de la caja y la
multiseleccin o no de
elementos.
Propiedades de
funcionamiento.
Color de
fondo y texto

Entre las propiedades que podemos activar de las cajas de


listas, est la de "Drag&Drop", que significa que podemos
arrastrar y soltar los archivos desde una carpeta a la caja de lista
y su nombre ser parte de la misma.
Esta propiedad funciona en el programa que acabamos de
mencionar, pruebe arrastrando un archivo de imagen desde
cualquier carpeta a la lista y cuando la haya integrado, haga clic
en ella, aparecer la imagen en el contenedor de la izquierda.
Por otra parte, cuando vimos las etiquetas CBK, mencionamos
que los archivos MP3 (y tambin OGG) de msica, incluyen
etiquetas con diversos datos del archivo, entre ellos el tiempo de
duracin de la pieza. Con la casilla "Search for ID tags (MP3,
OGG files only)", la caja de lista obtiene el dato del tiempo y, de
no estar activada la casilla "Hide time", en la lista veremos no
slo el nombre de la cancin, sino adems su duracin. Finalmente "Hide numbers", activada, oculta la numeracin de
elementos de la lista.
254

Cmo hacer Cd's Multimedia


Los elementos de una lista pueden provenir de variables de
cadena, listas de MP3 como las que crea WinAmp o, como en el
ejemplo anterior, de archivos de imagen que se encuentren en
una carpeta seleccionada. Los comandos para aadir, eliminar
o seleccionar, entre otras acciones, los elementos de las cajas de
lista los veremos enseguida, junto con ejemplos de cdigo para
su uso.
- ListBoxAddItem(Etiqueta,Parmetros)
Como podr imaginar, este comando aade tems a una caja
de lista. La seccin "Parmetros" simplemente define el origen
de esos elementos, veamos cada parmetro posible. Suponga
que no cambiamos el nombre predeterminado de la caja, por lo
que su etiqueta es "SongList":
ListBoxAddItem("SongList","RESET")
Borra todo el contenido de la lista.
ListBoxAddItem("SongList","nombre$")
Aade el contenido de la variable de cadena a la caja de lista.
ListBoxAddItem("SongList","Luis Manuel Gonzlez Nava")
Aade directamente el texto del parmetro, en este caso, mi
nombre. Si incluyo esta lnea de comando en un botn, el
resultado sera simple, observe:

El botn incluye la lnea del


comando. Cada vez que se
pulsa, se aade el texto a
la caja de lista.

255

Cmo hacer Cd's Multimedia


ListBoxAddItem("SongList","Var$[4]")
Aade el contenido del ndice 4 de la variable de matriz Var$[].
Si usamos este comando en el contexto de un ciclo "For-Next",
podramos llenar la caja de lista con todo el contenido de una
variable de este tipo, por ejemplo:
For i=1 to N
ListBoxAddItem("SongList","Var$[i]")
Next i
Donde N es el nmero total de elementos de la matriz.
ListBoxAddItem("SongList","<ScrDir>\libros.txt")
Se acuerda del archivo de texto llamado "libros.txt" que
grabamos en el apartado 6.3.3? No? Bueno, luego se acuerda,
el caso es que de este modo se aade a la lista el contenido del
archivo de texto.
ListBoxAddItem("SongList","c:\mimusica\boleros.pls")
Los archivos ".pls" son listas de canciones ("playlist") generadas por WinAmp, que MMB tambin puede reconocer a travs
de este comando. Por lo que los nombres de las canciones
contenidas ah pasarn a la caja de lista.
Finalmente, observe el siguiente cdigo, que le permite al
usuario buscar en su disco duro este y otros archivos de listas de
canciones MP3 e integrarlos en la caja:
OpenFile("Listas(*.m3l;*.m3u;*.pls)|*.m3l;*.m3u;*.pls|
Todos los archivos|*.*||","*.m3l;*.m3u;*.pls")
ListBoxAddItem("SongList","RESET")
ListBoxAddItem("SongList","OpenFile$")
Recuerde lo siguiente: "OpenFile" puede tener un filtro para
presentar archivos con determinadas extensiones, en este caso,
listas de canciones. La variable "OpenFile$" contiene el archivo
seleccionado, por lo que su contenido se vaca en la caja gracias
a la tercera lnea de cdigo.
256

Cmo hacer Cd's Multimedia


- ListBoxDeleteItem("Etiqueta","Nmero de elemento")
Elimina de la lista el objeto determinado por el nmero, por
ejemplo:
ListboxDeleteItem("SongList","9")
Sin embargo, debera ser posible tener algn procedimiento
que nos permitiera elegir algn elemento (o elementos) de una
lista y borrarlos con la tecla "Supr". Podramos asimismo devanarnos los sesos buscando programar dicho efecto. A m en lo
particular me llevara a consumir los pocos gramos de cerebro
que me quedan, junto con las 3.5 neuronas que an sirven y que
uso para mis funciones vitales. Por lo que podemos tomar el
cdigo que proponen en el sistema de ayuda del programa y
usarlo para nuestros propios fines con todo el descaro del
mundo. De todos modos, no tiene sentido reinventar el agua tibia.
Se sugiere crear un objeto Script que se active con la pulsacin
de la tecla "Supr", su cdigo sera:
ListBoxGetSelectedItems("SongList", "elementos$,
indiceselementos$,#,Numelementos")
For i=Numelementos To 1
numelem$ = GetArrayItem(indiceselementos$,#,i)
numelem= VAL(numelem$)
ListBoxDeleteItem("SongList","numelem")
Next i
No hemos visto an el comando de la primera lnea, pero
podemos decir que sirve para obtener en dos variables de
cadena los elementos de la lista y sus respectivos nmeros
ndice. Si el usuario eligi ms de un elemento de la caja,
entonces el ciclo recuperar, uno por uno, los distintos ndices y
los ir poniendo en la variable numrica "numelem". La penltima lnea del ciclo "For-Next", entonces, borra dichos elementos.
Finalmente, el conteo es decreciente, porque si borramos, por
ejemplo, los ndices 3,4 y 5, al borrar el 3, el 4 tomar su lugar y
el 5 ser el 4. Al borrar el quinto, en realidad estaremos borrando
el 6, lo que es un error. Pinselo un poco, ver que tengo razn.
257

Cmo hacer Cd's Multimedia


- ListBoxSortItems(Etiqueta,Parmetros)
Quiere hacer una ordenacin alfabtica de la lista? Entonces
ste es el comando adecuado. Veamos los parmetros posibles:
ListBoxSelectItem("SongList","NAME")
Ordena los elementos en orden alfabtico.
ListBoxSelectItem("SongList","TIME")
Ordena la lista segn su duracin.
ListBoxSelectItem("SongList","REVERSE")
Pone en orden inverso la lista actual.
ListBoxSelectItem("SongList", "RANDOMIZE")
Pone los elementos en orden aleatorio. Los revuelve, pues.
- ListBoxSelectItem(Etiqueta,Nmero de elemento)
Selecciona el elemento especificado por su nmero. Para
seleccionar todos los elementos de la lista, entonces ponemos "-1" en el parmetro.
ListBoxSelectItem("SongList","5")
Selecciona el elemento nmero 5.
ListBoxSelectItem("SongList","-1")
Selecciona todos los elementos.
- ListBoxDeselectItem(Etiqueta,Nmero de elemento)
Tiene la funcin contraria al comando anterior: deselecciona
el elemento especificado por su nmero. Para deseleccionar
todo, usamos "-1" como parmetro.
258

Cmo hacer Cd's Multimedia


ListBoxMoveItem("Etiqueta","Nmero")
Mueve un elemento seleccionado a la posicin especificada
por el nmero. El siguiente cdigo movera un elemento seleccionado a una nueva posicin arriba de los dems elementos.
ListBoxGetSelectedItems("SongList","Selecs$,SelNum$,#,
TodosNum")
For j=1 To TodosNum
Selec$ = GetArrayItem(Selecs$,#,j)
SelN$ = GetArrayItem(SelNum$,#,j)
SelNum = VAL(SelN$)
Next j
If (SelNum>1) Then
ListBoxMoveItem("SongList","SelNum-1")
End
De modo similar, el siguiente cdigo mueve el elemento
seleccionado hacia abajo.
ListBoxGetItems("SongList","ElemSel$,NumElemSel$,#,
TotaldeElementos")
ListBoxGetSelectedItems("SongList","Selecs$,SelNum$,#,
TodosNum")
For j=1 To TodosNum
Selec$ = GetArrayItem(Selecs$,#,j)
SelN$ = GetArrayItem(SelNum$,#,j)
SelNum = VAL(SelN$)
Next j
If (SelNum<TotaldeElementos) Then
ListBoxMoveItem("SongList","SelNum+1")
End
Vuelva a estos cdigos despus de revisar los siguientes
comandos.
ListBoxGetItems(Etiqueta,Parmetro)
Devuelve todos los elementos de una caja de lista, sus ndices
y el nmero total de los mismos. Veamos sus parmetros.
259

Cmo hacer Cd's Multimedia


En el ejemplo anterior, usamos este comando para saber
cuntos elementos componen la lista. Pongmoslo de nuevo y
definamos cada uno de sus elementos:
ListBoxGetItems("SongList","ElemSel$,NumElemSel$,#,
TotaldeElem")
SongList
ElemSel$
NumElemSel$

#
TotaldeElem

Es la etiqueta de la caja de lista.


Es una variable que contendr todos los
elementos de la lista separados por un
delimitador, definido en el mismo comando.
Otra variable de cadena, pero sta tiene
todos los nmeros ndice de los elementos
de la lista, tambin separados por el mismo
delimitador
Delimitador para los elementos de las
variables de cadena. El usuario puede usar
otro signo como delimitador.
Variable numrica que contiene el nmero
del total de elementos de la lista.

Como podr ver, este comando nos permite, por tanto, manipular al total de elementos de la lista. Vemos los que nos faltan.
- ListBoxGetSelectedItems(Etiqueta,Parmetros)
Devuelve los elementos seleccionados de la lista. Los
parmetros son iguales a los del comando anterior. Usemos la
lnea del ejemplo que ya habamos expuesto:
ListBoxGetSelectedItems("SongList","Selecs$,SelNum$,#,
TodosNum")
SongList
Selecs$
SelNum$

Etiqueta del objeto.


Variable de cadena con los elementos
seleccionados, separados por el
delimitador.
Variable de cadena con los ndices de los
elementos seleccionados, tambin
separados por el mismo delimitador.
260

Cmo hacer Cd's Multimedia


#
TodosNum

Delimitador que separa los elementos de las


variables de cadena.
Variable numrica con el nmero de
elementos seleccionados.

Recuerde que en el cuadro de propiedades de las cajas de


listas podemos activar la multiseleccin de elementos, la cual
puede ser de dos tipos: seleccin de elementos contiguos y
discontinuos.
Los elementos contiguos se seleccionan haciendo clic en el
primero y el ltimo mientras se pulsa la tecla "SHIFT". Su
apariencia queda as:
Los elementos seleccionados quedan
resaltados. En una multiseleccin como
la siguiente, los nombres de los
elementos quedan en la primer variable
de cadena del comando, los ndices en
la segunda. En este ejemplo, los ndices
seran del 14 al 18.

Una multiseleccin discontinua se consigue haciendo clic en


los elementos mientras se pulsa la tecla "CTRL".

La segunda variable de cadena


contendr los ndices 13, 16, 17 y
19, separados por el delimitador.

261

Cmo hacer Cd's Multimedia


- ListBoxParam(Etiqueta,Parmetros)
Permite modificar, durante la ejecucin de un programa,
algunas de las propiedades de una caja de lista establecidas
durante el diseo.
Vemos los parmetros correspondientes:
DRAG&DROP=ON/OFF

Activa o desactiva "arrastrar y


soltar". Ejemplo:

ListBoxParam("SongList","DRAG&DROP = ON")
NUMBERS=ON/OFF

Muestra u oculta los nmeros


de la lista.

ListBoxParam("SongList","NUMBERS = OFF")
TIMES=ON/OFF

Muestra u oculta el tiempo de


duracin de los archivos de
audio.

ListBoxParam("SongList","TIMES = ON")
BACKGROUND=R,G,B

Establece el color de fondo de


la lista a travs de los valores
de rojo, verde y azul.

ListBoxParam("SongList","BACKGROUND=203,111,0")
TEXT=R,G,B

Establece el color del texto, a


travs de los valores de rojo,
verde y azul.

ListBoxParam("SongList","TEXT = 128,0,0")
IDTAGS=ON/OFF

Busca las etiquetas de los MP3


y OGG cuando est activada.

ListBoxParam("ListBox","IDTAGS = OFF")
262

Cmo hacer Cd's Multimedia


6.5.12 Lista de canciones
Por su forma, parece una macro ruta y en la ayuda dice que
es una constante, a pesar de que su contenido puede variar de
manera muy dinmica.
Como podr darse cuenta, las listas de canciones ("songlist")
no tienen sus gustos muy bien definidos. Es como los usuarios. A algunos les gustarn los boleros romnticos, habr a
quin no lo saquen del Heavy Metal y no faltar el amante de
la msica clsica.
El caso es que una "Lista de Canciones" es una lista interna de
archivos que puede servir para llenar una caja de lista, como las
del apartado anterior. Su contenido se encuentra en la constante? Macro Ruta? que identificamos asi:
<List>
Como puede ver, tiene toda la fachada de una Macro Ruta,
pero bueno, de algn modo tenan que ponerle para poder
usarla.
Cabe decir que aunque originalmente fue pensada para alojar
listas de archivos de sonido, estas listas internas pueden referirse a archivos de cualquier formato.
Por otra parte, de modo similar a las cajas de lista, hay
comandos para aadirle elementos, sacarlos, borrar la lista
completa, etctera. Vemos los comandos relacionados.
SongListReset()
Como la lista de canciones es una sola lista interna y no un
objeto, no hay una etiqueta o identificador que le haga alusin.
Siempre hablamos del contenido de <List>. Por lo que el
comando anterior borra su contenido.
SongListAdd(Ruta)
Dada ya su experiencia en los comandos de MMB, puede
apostar a que este sirve para lo que parece: Aade el archivo
especificado en la ruta a la lista interna <List>. Ejemplos:
263

Cmo hacer Cd's Multimedia


SongListAdd(c:\misdocumentos\mimsica\adios.mp3)
SongListAdd(<ScrDir>\citaconangeles.mp3)
El siguiente cdigo aade a la lista el archivo seleccionado del
cuadro de dilogo "OpenFile":
OpenFile("Archivos MP3 (*.mpg;*.mp1;*.mp2;*.mp3)|
*.mpg;*.mp1;*.mp2;*.mp3|Archivos OggVorbis
(*.ogg)|*.ogg| Archivos Win Media (*.wma)|*.wma| Archivos ASF (*.asf)|*.asf|Listas WinAmp (*.m3l;*.m3u;*.pls)|
*.m3l;*.m3u;*.pls|All Files|*.*||","*.mp3")
If (OpenFile$ <> "") Then
SongListAdd("OpenFile$")
End
- SongListDel(Nmero)
Este comando borrar el elemento de la lista interna especificado por su ndice. Vea el siguiente ejemplo:
SongListDel("3")
El siguiente cdigo elimina los primeros 10 elementos:
For i=10 to 1
SonListDel("i")
Next i
- SongListPlay(Nmero)
Comienza la ejecucin del elemento de la lista interna especificado por su ndice, siempre y cuando sea un archivo de audio.
Si no indicamos un nmero, entonces comenzar la reproduccin del primer elemento, por ejemplo:
SongListPlay("9")
O bien:
SongListPlay("")
264

Cmo hacer Cd's Multimedia


El siguiente cdigo inicia la reproduccin del elemento seleccionado de una caja de lista, el cual, como sabemos, comparte
su nmero ndice con el contenido en <List> si se copi de una
a otra:
ListBoxGetSelectedItems("SongList",
"Elem$,Numel$,#,Nums")
num$ = GetArrayItem(Numel$,#,1)
SongListPlay("VAL(num$)")
- SongListNext()
Comienza la reproduccin del siguiente elemento de <List>
siempre y cuando sea un archivo de audio.
- SongListPrev()
Comienza la reproduccin del elemento previo de la lista.
SongListLoad(Ruta)
Llena la lista interna <List> con elementos contenidos en una
lista externa, archivo de listas generados por programas como
WinAmp. Los formatos reconocidos son: *.m3l, *.m3u, *.pls,
*.txt. Por ejemplo:
SongListLoad("c:\mimusica\trova.m3u")
En el siguiente ejemplo, se usa el cuadro de dilogo para abrir
archivos con estos formatos predeterminados. Al abrir un archivo
de lista de canciones se pasa a <List> y de ah a un objeto de caja
de lista.
OpenFile("Listas (*.m3l;*.m3u;*.pls;*.txt)| *.m3l;*.m3u;
*.pls;*.txt|Todos los archivos|*.*||,*.m3l;*.m3u; *.pls;*.txt")
If (OpenFile$ <> "") Then
SongListReset()
ListBoxAddItem("SongList","RESET")
SongListLoad("OpenFile$")
ListBoxAddItem("SongList","<List>")
End
265

Cmo hacer Cd's Multimedia


- SongListRND()
Pone los elementos de la lista interna en orden aleatorio. Tan, tan.
- SongListEdit()
Para que vea que las listas internas no son tan etreas como
parecen, este comando abre un cuadro de dilogo donde podr
ver el contenido de <List>, podr aadirle elementos arrastrndolos desde carpetas del explorador de Windows, remover
elementos seleccionados e incluso salvar la lista con formato
"*.m3l", o bien leer una lista existente. En otras palabras, el
cuadro de dilogo permite editar la lista, como su nombre lo
indica:

El comando abre este cuadro de dilogo que muestra el contenido de <List>,


permite aadir elementos arrastrndolos de ventanas de carpeta y eliminarlos
con los dos primeros botones. Tambin permite salvar y leer listas *.m3l"
266

Cmo hacer Cd's Multimedia


- SongListSave(<List>/Etiqueta de caja de lista,Ruta)
Graba el contenido de una lista interna o de un objeto de caja
de lista en la ruta especificada. Combinado con el cuadro de
dilogo para grabar archivos, permite elegir la carpeta y el
nombre donde se va a grabar el archivo, estudie el siguiente
cdigo:
SaveAsFile("Lista de canciones (*.m3l;*.m3u;*.pls;*.txt)|
*.m3l;*.m3u;*.pls;*.txt|Todos|*.*||","*.m3l;*.m3u;*.pls;*.txt")
If (OpenFile$ <> ) Then
SongListSave("<List>","OpenFile$")
End
- SongListTime()
Calcula el tiempo total de los archivos de audio listados y
coloca el resultado en la constante "CBK_TotalList". El comando no requiere parmetros.

267

Cmo hacer Cd's Multimedia

7
Qu Falta?
Ante semejante pregunta, tal vez usted, a su vez, diga: "Falta
algo? Hay todava ms? Ya parenle No?!"
Pues s, lamento decirle que an le falta conocer ms cosas
relacionadas con Multimedia Builder, aunque el bagaje con el
que ya cuenta le da para crear cosas muy interesantes. Sin
embargo, MMB tiene an poder para rato. Aqu le menciono slo
algunas de las cosas que no vimos en este libro, para que, de
estar interesado, pueda buscar informacin en la red de redes,
Internet y en, por supuesto, la ayuda del programa.
En primer lugar, debe saber que los siguientes tipos de objetos
no fueron estudiados, aunque con lo que ya conoce, su uso no
debe ofrecerle problemas:
- Macromedia Flash.
- Binding Object
- Image Matrix
- Plugins
As como los "Botones Alpha", que son un tipo especial de
botn que se hacen con otro programa de Romn Voska llamado
"Real Draw Pro".
Tambin es importante decir que en Internet podr encontrar
recursos para MMB: Programas de ejemplo, Plugins, Foros de
discusin y ayuda entre usuarios de este programa, empresas
que ofrecen sus servicios en MMB, as como tutoriales y hasta
cursos. El apndice C contiene una relacin de los sitios ms
importantes sobre el tema.
Cabe mencionar tambin que en el CD no slo encontrar el
programa y los archivos de ejemplo que hicimos para este libro,
los cuales slo ilustran los distintos temas y no son ejemplos de
proyectos profesionales, sino adems mltiples ejemplos desarrollados por terceros, los cuales se presentan tal cual los
crearon sus autores. Por lo que le sugiero que se sumerja a las
268

Cmo hacer Cd's Multimedia


distintas carpetas del CD-ROM y rasque en ellas, a ver qu
encuentra.
Finalmente, aunque los usamos marginalmente, no puedo
dejar de insistir en que abra y estudie los distintos archivos de
ejemplo que vienen con el programa mismo, en la carpeta
"Samples", donde est instalado MMB en su computadora; vea
su cdigo, seguramente encontrar ah muchas de las cosas que
necesita, sin necesidad de tener que desarrollarlas de nuevo.
Y, bueno, qu falta? Pues que usted se empiece a arremangar la camisa para comenzar a crear fabulosos CD's Multimedia,
darlos a conocer y desarrollar a todo lo que de su imaginacin y
creatividad. No deje de platicarme al respecto.

269

Cmo hacer Cd's Multimedia

APENDICES
Apndice A
Contenido del CD
En el CD-ROM que acompaa a este libro encontrar lo
siguiente:
- Multimedia Builder.
La ltima versin, lista para instalarse.
- Los programas de ejemplo que ilustran este libro
Si los us a la par que lea el libro, entonces ya los conoce.
- Aplicaciones de ejemplo adicionales
Hemos desarrollado algunos ejemplos adicionales que tal vez
le sean de inters. Los proyectos son:
1.- Discografa de Beethoven.
2.- Un instalador de WinZip y Acrobat Reader
3.- Un men.
4.- Un reproductor personalizado de pelculas VCD
- Materiales para aplicaciones
Los materiales que podr encontrar son:
- Gif's animados
- Sonidos
- Contornos blanco y negro
- Cursores
- Plugins
- Herramientas de Software
- Otras aplicaciones como ejemplo
270

Cmo hacer Cd's Multimedia

Apndice B
Recursos adicionales en Internet
Como sabe, los sitios de Internet aparecen y desaparecen
constantemente, por lo que esta lista, necesariamente esttica,
dificilmente coincidir con lo que usted pueda encontrar en la red.
Sin embargo, le ofrecemos diversos sitios donde podr obtener
informacin y recursos adicionales para usuarios de MMB.
www.mediachance.com
El sitio oficial del creador del programa. Ah podr comprarlo
y registrarse como usuario. Adems, incluye algunos archivos de
ejemplo muy atractivos y mayor informacin.
www.mmbforums.com
Foro de discusin para usuarios del programa con salas en
varios idiomas, entre ellos el espaol, tambin incluye ligas a
otros sitios con recursos y una seccin de noticias.
http://proletsoft.freeservers.com/
Qu tal? Se ve, se siente, el proletariado est presente!
http://mcbsite.webpark.pl/
Cmo anda en polaco?
http://perso.wanadoo.fr/pnx/
Y su francs?
http://www.advanced-microtechnologies.com/
Sitio profesional que ofrece desarrollo de aplicaciones y muchos, muchos recursos gratis.
271

Cmo hacer Cd's Multimedia


http://www.kissoftware.co.uk/kiss/index.php
Sitio con recursos de programacin en varias plataformas, no
solamente de MMB.
http://www.extremesenses.com/engnew/
Joven empresa de software orientada a la multimedia.
http://www.iespana.es/destroymp3/
Creadores de reproductores de MP3
http://www.antwanmedia.uni.cc/news.php
Pgina de un autor de programas en MMB, con foro de
discusin.
http://www.softweigh.com/mmb/project.html
Programas en MMB para aprender
http://12.22.230.41/MicroTech/mmb/RL-Video.html
Toneladas de ejemplos para reproduccin de audio y video
http://www.dolphinwork.com/demodir/demos.htm
Ejemplos para principiantes. "Nice", dira Doa Chonita.
http://www.bokzy.com/
Impresionante pgina con PlugIns, manuales y otros recursos
para MMB, de Bokzy, uno de los autores de la ayuda del
programa.
http://netmex.net/guiasinmediatas/mmb/index.htm
Es la pgina de este libro, dgame usted qu le agregamos.
272

Cmo hacer Cd's Multimedia

Apndice C
La increble y triste historia de los MP3 y de sus
desalmados creadores
Como ya vimos a lo largo de este libro, la reproduccin de
archivos de msica en MP3 con MMB no tiene realmente muchas
complicaciones. Sin embargo, aunque parezca increble, el
formato MP3 est protegido por las leyes de derecho de autor y
no cualquiera puede utilizarlo.
Es paradjico que el formato que mas a servido para la difusin
ilegal de msica, tenga restricciones en su uso, pero as es.
En otras palabras, lo que queremos decir, es que si usted
quiere utilizar este formato en sus archivos de sonido, para crear
sus programas en MMB, deber pagar una licencia adicional al
momento de comprar el programa.
En el sitio de Mediachance estn a la venta dos versiones de
Multimedia Builder, una con soporte a MP3 y otro sin soporte a
MP3. La diferencia entre uno y otro es de 15 dlares. Obviamente, la versin sin soporte no le permitir aadir ese formato a sus
proyectos, pues los programas compilados no lo podrn reproducir. De hecho, si observa con cuidado, en el CD-ROM de este
libro no hay archivos MP3, pues compramos la licencia sin
soporte de este programa.
Sin embargo, esto no significa que debamos resignarnos a
crear programas mudos. Como podr corroborar en el CD-ROM
mismo, un formato alternativo al MP3, libre de regalas e incluso
superior en algunos aspectos es el "OGG", de OGG Foundation.
A partir del cambio de polticas de uso de los detentadores de
la patente de MP3, MMB di nfasis en su programa al soporte
a archivos de sonido en OGG, por lo que sus creaciones
multimedia podrn contar con msica, como debe ser.
Como la mayora de los usuarios, tal vez usted cuente con
muchos archivos MP3 que ya haba pensado usar en sus
proyectos. Por lo que el problema ahora sera convertir de MP3
a OGG. Eso no es ningn problema. En cualquier motor de
bsqueda de Internet ("Yahoo", "Google", "Altavista", "HotBot",
etctera), puede intentar con algo tan sencillo como esto:
273

Cmo hacer Cd's Multimedia


MP3 to OGG
Con lo que saldrn cientos de sitios con programas que sirven
para convertir de un formato a otro. Como siempre, algunos de
estos programas son gratuitos, otros son de paga, pero pueden
descargarse y usarse con un nmero limitado de conversiones.
Otros ms ofrecen muchas prestaciones adicionales y hay que
comprarlos. Algunos tienen costos tan bajos como 2.5 dlares.
As que no se desanime. En el CD-ROM, en "Herramientas de
Software", encontrar programas para hacer estas conversiones. Adems, as podr desconcertar a sus competidores cuando haga sus primeras discografas.

274

Cmo hacer Cd's Multimedia

Indice:
Importantsima nota Inicial
1.- Qu vamos a utilizar?
2.- La interfaz de pantalla de Multimedia Builder
3.- Cmo funciona?
3.1 Parmetros iniciales
3.1.1 Iniciar con un templete
3.2 Pginas
3.2.1 Agregar, Insertar y eliminar pginas
3.2.2 Organizar pginas
3.2.3 Propiedades de pginas
3.2.4 Pgina Maestra
3.3 Uso de objetos
3.3.1 Organizacin de objetos
3.3.2 Ayudas al diseo
3.4 Acciones
3.5 Generacin de CD-ROMs autoejecutables
3.5.1 Convertir texto a mapa de bits
3.5.2 Rutas relativas
3.5.3 Integracin de archivos
3.5.4 Reduccin de tamao
3.5.5 Compilacin
4.- Objetos
4.1 Texto y objetos de prrafo
4.2 Botones de texto
4.3 Objetos grficos
4.3.1 Primitivas
4.3.2 Mapas de bits
4.3.3 Gifs animados
4.3.4 Botones de mapas de bits
4.3.5 Archivos Windows Metafile
4.3.6 reas sensibles (Hot-Spots)
4.3.7 Efectos Especiales Dinmicos
4.3.8 Clones de Bitmap
4.4 Video
5.- Otros Objetos
5.1 Objetos Preprogramados
275

5
8
14
21
22
33
34
34
36
37
42
44
47
52
54
68
68
70
71
75
76
84
85
92
93
94
95
113
116
119
120
122
123
125
133
133

Cmo hacer Cd's Multimedia


5.2 Audiovisualizacin
5.3 Objetos HTML
5.4 Objetos de Script
6.- El lenguaje de MMB
6.1 Conceptos bsicos
6.2 Valores Constantes
6.2.1 Valores CBK
6.2.2 Constantes del Sistema
6.2.3 Constantes de Publicacin
6.2.4 Macro Rutas
6.3 Valores variables
6.3.1 Variables numricas
6.3.2 Variables de cadena
6.3.3 Variables de matriz
6.4 Funciones de flujo
6.4.1 Ciclos For-Next
6.4.2 Sentencia If
6.5 Comandos
6.5.1 Comandos de proyecto
6.5.2 Comandos de objeto
6.5.3 Temporizadores y ejecucin de scripts
6.5.4 Cuadros de dilogo
6.5.5 Comandos del sistema
6.5.6 Comandos de sonido
6.5.7 Comandos de imgenes
6.5.8 Comandos para Gifs animados
6.5.9 Comandos de Impresin
6.5.10 De video
6.5.11 Cajas de Listas
6.5.12 Listas de canciones

138
139
140
144
145
149
152
160
164
169
173
174
179
192
195
196
198
204
204
208
212
215
226
232
240
247
247
248
252
263

Apndice A: Contenido del CD


Apndice B: Recursos adicionales en Internet
Apndice C: La increble y triste historia de los MP3
y sus desalmados creadores
Indice

270
271

276

273
275

You might also like