Después de estar dando muchas vueltas no logro solución al siguiente problema. Que seguramente resulte muy sencillo aunque a mí me parezca desdesperante al ser mis primeros pasos con AS3.
Bien, planteo el problema:
Tengo escrita una clase tal que así:
Código :
package {
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.events.*;
public class cargadorSonidos extends Sprite {
var channel:SoundChannel;
var trans:SoundTransform;
public function cargadorSonidos() {
var snd:Sound = new Sound();
snd.load(new URLRequest("song.mp3"));
channel = new SoundChannel();
channel = snd.play();
trans = new SoundTransform();
this.addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);
}
private function onLoop(evt:Event):void {
trans.volume = 1 - mouseY/stage.stageHeight;
trans.pan = mouseX/(stage.stageWidth/2) - 1
channel.soundTransform = trans;
}
}
}Seguidamente en el archivo fla la instancio de la siguiente manera:
En el panel propiedades, en document class pongo el siguiente nombre: cargadorSonidos y todo funciona de maravilla.
Pero el problema que se me presenta es el siguiente: Si quiero usar varias clases en el mismo archivo fla ya no puedo instanciar la clase de esa manera.
Por lo que en el primer fotograma en el panel acciones escribo lo siguiente:
Código :
import cargadorSonidos; var crgSonidos:cargadorSonidos = new cargadorSonidos;
y me sale el siguiente error:
escribió:
at cargadorSonidos/::onLoop()
En resumen que creo que no tengo ni idea de instanciar las clases, ya que por ejemplo otra que tengo escrita para cargar imágenes funciona perfectamente al escribir en el panel de propiedades su nombre pero si la trato de importar escribiendo codigo en el fla, tarariquetevi!!
Muchas gracias, a ver si alguien me puede echar una mano.
Iván
