Foros del Web » Creando para Internet » Flash y Actionscript »

AS3 Error #2037: (necesito ayuda)

Estas en el tema de AS3 Error #2037: (necesito ayuda) en el foro de Flash y Actionscript en Foros del Web. Hola. Necesito ayuda. sucede que estoy 'tratando' de hacer un 'Reproductor MP3' en Flash CS3 y AS3. el problema es con AS3. Entre un sin ...
  #1 (permalink)  
Antiguo 30/07/2008, 11:33
Avatar de rockear  
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación AS3 Error #2037: (necesito ayuda)

Hola. Necesito ayuda. sucede que estoy 'tratando' de hacer un 'Reproductor MP3' en Flash CS3 y AS3. el problema es con AS3. Entre un sin fin de codigos, el que me causa problema es este:

function Rep1(event:MouseEvent):void
{
SoundMixer.stopAll();
try{
musica.close();
} catch(e:Error){
//
};
var yo1:String = new String();
yo1 = myXML.cancion[1].attribute("url");
var urlcancion1:URLRequest = new URLRequest(yo1);
var con:SoundLoaderContext = new SoundLoaderContext(8000, true);
musica.load(urlcancion1, con);
musica.play();
}


Esta funcion 'sucede' cuando hago 'clic' en un boton, pero me manda este error:

Error: Error #2037: Se llamó a las funciones en una secuencia incorrecta o la llamada anterior no se produjo correctamente.
at flash.media::Sound/flash.media:Sound::_load()
at flash.media::Sound/load()
at Duplicar_Escena1_fla::contenedor_botones_3/Rep1()


Si alguien sabe por qué ocurre eso, que me explique porque no sé mucho sobre AS3. Gracias.
  #2 (permalink)  
Antiguo 30/07/2008, 16:05
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: AS3 Error #2037: (necesito ayuda)

Hola Rockear !

El error muestra la pila de llamadas hasta donde se originó el error.
Primero llamaste al método Rep1 del botón luego este llamo al método load de sound y finálmente sound llamó a un método privado _load dentro de el, que es el que te tiro el error.

El problema se encuentra en la parte donde llamas al método load de Sound, ve si le pasaste los parámetros correctos.

Saludos !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 31/07/2008, 08:59
Avatar de rockear  
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación Respuesta: AS3 Error #2037: (necesito ayuda)

Cita:
Iniciado por jahepi Ver Mensaje
Hola Rockear !

El error muestra la pila de llamadas hasta donde se originó el error.
Primero llamaste al método Rep1 del botón luego este llamo al método load de sound y finálmente sound llamó a un método privado _load dentro de el, que es el que te tiro el error.

El problema se encuentra en la parte donde llamas al método load de Sound, ve si le pasaste los parámetros correctos.

Saludos !
Si, el problema es al cargar un nuevo archivo. Solucioné momentaneamente el problema, creando una nueva variable Sound, pero eso me genera mas problemas. Es decir cada ves que hago clic en un boton se crea una nueva variable Sound, por ejemplo: mi primera variable Sound es

var musica:Sound = new Sound();

Y al hacer clic se crea otra

var musica1:Sound = new Sound();

Y asi todas las veces que haga clic se creará una nueva variable pero con nombre distinto para no crear conflictos. Lo que quiero es que mi variable musica sea global, es decir que cada ves que haga clic en un boton se utilice musica para cargar el archivo seleccionado y ya no se cree otra variable Sound. Si alguien me entiende, que me ayude por favor.
Estuve viendo en la ayuda de flash, y dice que tengo que usar el metodo browse() para cargar correctamente el nuevo archivo pero no especifica la sintaxis... En fin este asunto me tiene 'loquito'
Ya no sé que hacer, a quién recurrir
Por ahora me dedico a programar el boton Play y Stop. Lo malo es que al hacer clic en el boton Play tengo que 'buscar' qué archivo es el que se esta reproduciendo para poder pausar (el boton Play reproduce y pausa la musica, asi lo quise) Lo que si mi variable musica fuese global, usaria sólo esta variable para controlar todo, pero ahora tengo que usar todas las variables que se crean al momento de hacer clic y buscar cual fue el ultimo usado para recien pausar. En fin, en AS2 es más facil, pero como yo quiero trabajar con AS3 tengo que solucionar el problemita. No pienso desistir...
Ayudenme...

Última edición por rockear; 31/07/2008 a las 09:13
  #4 (permalink)  
Antiguo 31/07/2008, 13:25
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: AS3 Error #2037: (necesito ayuda)

Hola Rockaer !

Puedes hacer lo siguiente para tener acceso global a tu instancia sound, puedes extender la clase sound y implementar un singleton, crea un archivo .as en donde esta tu archivo .fla y pegas lo siguiente:

Código PHP:
package {
    
    
import flash.media.Sound;
    
    public class 
GlobalSound extends Sound {
        
        
        private static var 
_self:GlobalSound;
        
        
        public function 
GlobalSound(locker:SingletonLocker) {
            
super(false);
        }
        
        public static function 
getInstance():GlobalSound {
            if(
_self == null) {
                
_self = new GlobalSound(new SingletonLocker());
            }
            return 
_self;
        }
    }
}

class 
SingletonLocker {

Ahora dentro de tu .fla puedes obtener tu instancia GlobalSound desde cualquier punto de esta manera:

Código PHP:
var sound:GlobalSound GlobalSound.getInstance();
//Puedes invocar cualquier método de la clase sound
sound.play();
sound.stop(); 
Cualquier duda aqui andamos.

Saludos !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:30.