Estoy aqui porque necesito vuestra ayuda. Estoy tratando de crear una pequeña aplicacion para un trabajo de la universidad y no tengo ni idea!... soy novata (y bastante torpe) con el AS.
Lo que quiero es crear mensajes musicales: tengo un fla y dos clases AS3. El funcionamiento es el siguiente: el usuario escribe un mensaje en un campo de texto y pulsa un botón que "musicaliza" el mensaje mediante la captura letra por letra del mensaje y por cada letra hace un llamado URL a un mp3 externo.
Además de escuchar el mensaje escrito, mi intención es que se pueda visualizar una animación del propio texto y he pensado en usar una clase opensource llamanda Textanim (http://flupie.net/textanim/docs/flupie/textanim/TextAnim.html) junto con el Tweener , peeeeero hasta aquí llegué...no sé cómo integrarlo en mi código pues (aqui esta el problema principal), no sé cómo hacer para que el campo de texto animado, obtenga el string desde el otro campo de texto input...
Esto está muy enredado y espero que alguien logre entenderme... lo siento, no sé cómo explicarlo mejor.
Os dejo mis clases (perdón por el código tan sucio, es que de verdad soy bastante "jojota" como dicen en Venezuela)
Muchas gracias!!
CODIGOS:
Clase Main:
Código ActionScript :
package
{
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import LetraSonido;
import flash.text.*;
import flash.events.TextEvent;
public class PresentacionMusical extends MovieClip
{
var textoPresentacion:String;
var temporizador:Timer = new Timer(500);
var posicion:int = 0;
var arraySonidos:Array = new Array ;
var cajaTexto:TextField = new TextField ;
var textoAnimado:TextField = new TextField ;
public function PresentacionMusical()
{
capturarTexto();
animarTexto();
btn_musical.addEventListener(MouseEvent.CLICK,capturarTexto);
btn_musical.addEventListener(MouseEvent.CLICK,reproducirTexto);
btn_musical.addEventListener(MouseEvent.CLICK,animarTexto);
var sonido:LetraSonido = new LetraSonido ;
addChild(sonido);
}
public function capturarTexto():void
{
var formatoTexto:TextFormat=new TextFormat();
formatoTexto.color = 0xFFFFFF;
formatoTexto.size = 16;
formatoTexto.align = 'left';
formatoTexto.font = 'verdana';
formatoTexto.leftMargin = 20;
//arguments;
cajaTexto.type = TextFieldType.INPUT;
cajaTexto.x = 20;
cajaTexto.y = 40;
cajaTexto.width = 800;
cajaTexto.height = 30;
cajaTexto.background = true;
cajaTexto.backgroundColor = 0x252525;
cajaTexto.border = true;
cajaTexto.borderColor = 0x00FFFF;
cajaTexto.defaultTextFormat = formatoTexto;
cajaTexto.text = "Escribe el mesaje que quieras musicalizar";
addChild(cajaTexto);
}
public function animarTexto():void
{
var formatoTextoAnimado:TextFormat=new TextFormat();
formatoTextoAnimado.color = 0xFFFFFF;
formatoTextoAnimado.size = 60;
formatoTextoAnimado.align = 'left';
formatoTextoAnimado.font = 'verdana';
formatoTextoAnimado.leftMargin = 20;
arguments;
textoAnimado.text = cajaTexto.text;
textoAnimado.x = 100;
textoAnimado.y = 200;
textoAnimado.width = 800;
textoAnimado.height = 400;
textoAnimado.defaultTextFormat = formatoTextoAnimado;
textoAnimado.wordWrap = true;
textoAnimado.visible=true;
addChild(textoAnimado);
}
public function reproducirTexto(e:MouseEvent):void
{
textoPresentacion = cajaTexto.text;
for (var i:int = 0; i < textoPresentacion.length; i++)
{
var sonido:LetraSonido = new LetraSonido ;
sonido.asignarLetra(textoPresentacion.charAt(i));
arraySonidos.push(sonido);
}
temporizador.start();
temporizador.addEventListener(TimerEvent.TIMER,detectorIntervalo);
}
public function detectorIntervalo(e:TimerEvent):void
{
arraySonidos[posicion++].iniciarSonido();
if (posicion == textoPresentacion.length)
{
//posicion = 0;
temporizador.stop();
}
}
}
}Clase Hija:
Código ActionScript :
package
{
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;
import flash.text.TextField;
public class LetraSonido extends MovieClip
{
var sonido:Sound;
var canal:SoundChannel;
var letraDefinida:String;
public function LetraSonido()
{
}
public function asignarLetra(letra:String):void
{
letraDefinida = letra;
sonido=new Sound();
var peticion:URLRequest = new URLRequest("letra_" + letraDefinida + ".mp3");
sonido.load(peticion);
trace(letraDefinida);
trace("letra_" + letraDefinida + ".mp3");
}
public function iniciarSonido():void
{
sonido.play();
}
}
}En el fla lo unico que tengo es el boton (btn_musical) que me activa los sonidos y al cual tambien quiero asociar la visualizacion.
Gracias compañeros. Espero ansiosa vuestra respuesta.
Un saludo.
