c
Controlar sons mitjançant ActionScript | ||
El lletguatge de programació del Flash
(ActionScript) us permetrà fer moltes aplicacions educatives. En aquesta pràctica fareu la mateixa aplicació però de tres maneres diferents. Com que sempre pensem que tota aplicació ha d'estar penjada de internet, la millor manera de fer-la serà la tercera. El resultat visual serà el mateix però no el seu pes. |
||
Objectius | ||
|
||
|
||
|
||
Mostra de l'aplicació un cop acabada | ||
Cliqueu damunt la fruita i veureu el resultat |
||
![]() |
||
Estructura de l'aplicació | ||
Obriu l'arxiu fruites_jpg.fla que
es trova dins la carpeta d105m4/mat_m4p3 del material de formació. A la seva biblioteca hi trovareu les
imatges i els sons que fan falta per treballar. Coloqueu les imatges a l'escenari dins la capa imatges. Transformeu aquestes imatges en botons fent Modificar|Convertir en símbolo... .A la capa text inseriu un quadre de text dinàmic. Seleccioneu el quadre de text i al pannell Propiedades poseu com a nom de variable: nom. |
||
![]() |
||
Fixeu-vos que heu de
posar un nom d'instància a cadascun dels sis botons tan com està
a la figura. |
||
Entreu dins del botó pera_btn fent
doble clic. Observeu la seva línia de temps amb els quatre estats
reposo, sobre, presionado i zona activa. Poseu-vos damunt el fotograma
sobre i, amb el botó dret del ratolí cliqueu insertar fotograma
clave. Feu el mateix amb la resta de fotogrames (presionado i zona activa). Feu el mateix amb la resta de botons. |
||
pera_btn / platan_btn / tomaquet_btn / poma_btn / taronja_btn / raim_btn | ||
So dins la linia de temps d'un botó. Sincronització modo Evento | ||
Entreu dins del botó pera_btn.
Dins la seva línia
de temps hi trovareu els tres estats del botó: Reposo
| Sobre | Presionado | Zona activa. A l'estat Presionado seleccioneu a pannell Propiedades el so pera.mp3. La sincronització ha de ser Evento si voleu que funcioni. Teniu en compte que els sons 'de evento' es carreguen completament abans de reproduir-se i que els sons 'de flujo' es reprodueixen mentre es descarrèguen i mentre és llegeix la linia de temps. Els botons, encara que ho sembli, no tenen linia de temp, per tant, la sincronització dels sons han de ser de 'evento'. |
||
![]() |
||
Feu el mateix a la resta de botons. |
||
Codi de l'aplicació
per que surti el nom de la fruita al quadre de text dinàmic |
||
![]() |
||
Si proveu l'aplicació comprovareu
que funciona però volem que surti el nom de la fruita al quadre de text
dinàmic.
|
||
En clicar al botó pera_btn el valor de la variable nom serà: pera. Com que volem que en el camp de text dinàmic aparegui la paraula, la escriurem com una cadena de text i, per tant, entre cometes. Feu el mateix a la resta de botons. Al primer fotograma de la linia de temps un quedarà la següent programació: |
||
pera_btn.onPress=function(){ nom = "pera"; } platan_btn.onPress=function(){ nom ="plàtan"; } tomaquet_btn.onPress=function(){ nom ="tomàquet"; } poma_btn.onPress=function(){ nom ="poma"; } taronja_btn.onPress=function(){ nom ="taronja"; } raim_btn.onPress=function(){ nom ="raïm"; } |
||
Enregistreu l'aplicació i publiqueu per veure el resustat. | ||
Finalment, si voleu aconseguir l' efecte
alpha del botó clicat, podeu afegir a la programació del
primer fotograma de la linia de temps el codi que teneu en negreta |
||
Resum de tota la programació de
l'aplicació que
serà al primer fotograma de la linia de temps |
||
pera_btn.onPress = function() { nom = "pera"; pera_btn._alpha = 50; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; platan_btn.onPress = function() { nom = "plàtan"; pera_btn._alpha = 100; platan_btn._alpha = 50; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; tomaquet_btn.onPress = function() { nom = "tomàquet"; pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 50; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; poma_btn.onPress = function() { nom = "poma"; pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 50; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; taronja_btn.onPress = function() { nom = "taronja"; pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 50; raim_btn._alpha = 100; }; raim_btn.onPress = function() { nom = "raïm"; pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 50; }; |
||
Associar un so de la biblioteca a l'objecte Sound | ||
Imagineu-vos que teniu una
aplicació amb sons i voleu canviar la qualitat d'aquest sons. En
l'aplicació anterior, hauríeu d' entrar en tots els botons i, un per un
posar el nou so. Per evitar això, farem l' aplicació una altre vegada agafant els son de la biblioteca de l'arxiu fla. Obriu la biblioteca, seleccioneu el so pera.mp3 i i cliqueu a l' extrem superior dret de la biblioteca. S'obrirà una llista d'opcions. Escolliu vinculacion i quan surti el pannell de propiedades de vinculación cliqueu Exportar para ActionScript i Exportar en primer fotograma tal com teniu a la figura següent. AI quadre de text Identificador deixeu el nom pera.mp3 que apareixerà per defecte. |
||
Poseu el següent codi al primer fotograma de la línia de temps. Fixeu-vos que de la programació anterior l'únic que canvia és que s'han d'afegir tres línies de codi més. | ||
Us quedarà de la següent manera: | ||
pera_btn.onPress = function()
{ nom = "pera"; //Es crea una instància de l'objecte Sound so = new Sound(); /*Exporta el so de la biblioteca amb el nom pera.mp3 que hem deixat al vircular-lo*/ so.attachSound("pera.mp3"); //es reproduirà el so des del començament i una sola vegada so.start(0, 1); /*el botó pera_btn canviarà la seva transparència al 50 %. La resta de botons no tindràn transparència*/ pera_btn._alpha = 50; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; ////////////////////////////////////////////////// platan_btn.onPress = function() { nom = "plàtan"; //Es crea una instància de l'objecte Sound so = new Sound(); /*Exporta el so de la biblioteca amb el nom plàtan.mp3 que hem deixat al vircular-lo*/ so.attachSound("plàtan.mp3"); //es reproduirà el so des del començament i una sola vegada so.start(0, 1); /*el botó pera_btn canviarà la seva transparència al 50 %. La resta de botons no tindràn transparència*/ pera_btn._alpha = 100; platan_btn._alpha = 50; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; |
||
Afegiu el codi corresponent als altres botons de l'aplicació i proveu el resultat. | ||
Carregar sons mp3 dinàmicament | ||
Flash permet crear pel.lícules que tenen els sons en arxius externs que es poden anar carregant en funció de les necessitats. Això allibera el pes final de la pel.lícula i permet canviar els sons sense editar el fla. També farem servir les funcions que sempre simplifiquen molt la programació d'una aplicació. Les funcions són scripts de programació que contenen accions que es produeixen quan des d'algún punt de la pel.lícula se les crida. Per fer-ne un símil sería com si poguessim donar ordres orals a una rentadora. Nosaltres diriem per exemple "rentat curt", carrega, i la màquina reaccionaría. La rentadora conté les funcions, i nosaltres les cridem. |
||
El resum de tota la programació de l'aplicació
estaría al primer fotograma de la linia de temps i sería |
||
/* Funció que
en cridar-la quan cliquem al botó de cada fruita agafarà el
so corresponent i el reproduirà.
Tots els son estan a una carpeta anomenada sons*/ function posa_so() { //Es crea una instància que anomenem "so" de l'objecte Sound so = new Sound(); /*En clicar el botó pera_btn, nom="pera" i per tant, la variable nomso = pera.mp3 que està dins la carpeta sons. En clicar el botó platan_btn, nom="plàtan" i per tant, la variable nomso = plàtan.mp3 que està dins la carpeta sons. El mateix passarà per la resta de botons. */ nomso = "sons/"+nom+".mp3"; /*El mètode loadSound carrega un arxiu MP3 en el objecte Sound. En aquest cas l'objecte Sound l'hem anomenat so. Si el so és un 'flujo' de so, posarem un 1 (true). Si el so és 'de evento' posarem un 0 (false).*/ so.loadSound(nomso, 1); //Es reproduirà el so des del començament i una sola vegada so.start(0, 1); } pera_btn.onPress = function() { //Al ser la variable nom una variable de text, haurà d'anar entre cometes. nom = "pera"; //Cridem a la funció que agafarà el so de la carpeta 'sons' i el reproduirà posa_so(); /*Jugarem amb la propietat _alpha del botons per donar més qualitat a l'aplicació. Qualsevol instància, sigui clip, sigui botò o quadre de text tindrà aquesta propietat i unes quantes més*/ pera_btn._alpha = 50; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; platan_btn.onPress = function() { nom = "plàtan"; posa_so(); pera_btn._alpha = 100; platan_btn._alpha = 50; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; tomaquet_btn.onPress = function() { nom = "tomàquet"; posa_so(); pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 50; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; poma_btn.onPress = function() { nom = "poma"; posa_so(); pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 50; taronja_btn._alpha = 100; raim_btn._alpha = 100; }; taronja_btn.onPress = function() { nom = "taronja"; posa_so(); pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 50; raim_btn._alpha = 100; }; raim_btn.onPress = function() { nom = "raïm"; posa_so(); pera_btn._alpha = 100; platan_btn._alpha = 100; tomaquet_btn._alpha = 100; poma_btn._alpha = 100; taronja_btn._alpha = 100; raim_btn._alpha = 50; }; |
||
Comentari important | ||
El sons 'de evento' es carreguen completament abans de reproduir-se. Els sons 'de flujo' es reprodueixen mentre es descarrèguen. La reproducció comença al moment en que s'han rebut suficients dades per iniciar el descompresor. Tots els arxius MP3 (de evento o flujo) carregats mitjançant aquest mètode s'amagatzamen a la 'caché' del navegador del sistema de l'usuari. |
||