Comunidad de diseño web y desarrollo en internet online

tomar valor de variable sonido en _root

Citar            
MensajeEscrito el 24 May 2016 08:06 pm
Hola:
Pelicula con acciones de carga de sonido dentro de un onLoad()

Código ActionScript :

_root.onLoad = function(){
   sonido  = new Sound();
   sonido.loadSound("sonido.mp3",false); 
………….
}
Pongo un Clip en escena con acciones  dentro de un onClipEvent(load)
onClipEvent (load)
 {
  var activo:Number = 0;
  var parar:Number = 0;
  soundFinished = true;   // establece estado sonido en parado
  Admiracion_MC.stop();  // clip en parada
  AnuncioTXT_MC.stop();
  function acabomusic()
   {
   soundFinished = true;
   parar = 0;
   activo = 0;
   Admiracion_MC.gotoAndStop(1);
   AnuncioTXT_MC.gotoAndStop(1);
   gotoAndStop(1);
   }
   this.onRollOver = function()
    {
    gotoAndStop(2);
    }
   this.onRollOut = function()
    {
     if(activo==1)   // esta sonando
      {
      gotoAndStop(2);
     }
     else
     {   // no suena
      gotoAndStop(1);
     }
    }
   this.onPress = function()
    {
     if (activo == 0)   // no esta sonando 
     {
       _root.sonido.start(parar/1000);
       Admiracion_MC.play();
      AnuncioTXT_MC.play();
       gotoAndStop(2);
       activo = 1;
      _root.sonido.onSoundComplete = acabomusic;  // cuando acaba de sonar
      }
     else
     {
       _root.sonido.stop();
      activo = 0;
      parar = 0;
      gotoAndStop(1);
      Admiracion_MC.gotoAndStop(1);
      AnuncioTXT_MC.gotoAndStop(1);
     }
    }
 }

Como en las acciones de la línea principal cargo varios archivos de *.mp3 y quiero poner varias instancias de otros clips con el listado que mas o menos expongo aquí, necesito declarar una variable en cada clip que pueda sustituir
_root.sonido….
por
variable=_root.sonido;
es decir como puedo declarar una variable dentro de onClipEvent(load) para que me tome el valor del archivo de sonido almacenado en _root.sonido que se declara en las acciones de la línea de tiempo de la escena principal dentro de _root.onLoad = function(){}
Necesito esto porque asi cada vez que instancio un clip y le aplico estas mismas acciones no tengo que sustitur mas que una vez la variable que toma el valor de _root.sonido1,….,2,….n
Mientras que si lo pongo tal cual tengo que sustituirlo al menos 3 veces.

intento declarar una variable nueva dentro de onClipEvent(load)
mimusic = _root.sonido
pero no me funciona

Espero haberme explicado

Por mcamo

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 May 2016 02:32 pm
La variable la tienes declarada

sonido = new Sound();

Y la accedes desde un clip de esta forma

_root.sonido

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 May 2016 01:09 pm
Vaya
Pues no he debido de explicarme bien.....
Si Jorge, accedo de esa forma

_root.sonido

eso lo tengo claro..

pero queria declarar una nueva variable dentro del script que coloco en el clip

y asi me quedaria mas o menos el listado.
Pongo entre //........... como quedarian las lineas modificadas con el nuevo valor.


Código ActionScript :

onClipEvent (load)
 {

//......................................
  nuevavariable = _root.sonido;
//......................................



  var activo:Number = 0;
  var parar:Number = 0;
  soundFinished = true;   // establece estado sonido en parado
  Admiracion_MC.stop();  // clip en parada
  AnuncioTXT_MC.stop();

  function acabomusic()
   {
   soundFinished = true;
   parar = 0;
   activo = 0;
   Admiracion_MC.gotoAndStop(1);
   AnuncioTXT_MC.gotoAndStop(1);
   gotoAndStop(1);
   }
   this.onRollOver = function()
    {
    gotoAndStop(2);
    }
   this.onRollOut = function()
    {
     if(activo==1)   // esta sonando
      {
      gotoAndStop(2);
     }
     else
     {   // no suena
      gotoAndStop(1);
     }
    }
   this.onPress = function()
    {
     if (activo == 0)   // no esta sonando
     {

//........................................

       nuevavariable.start(parar/1000);

//........................................

       Admiracion_MC.play();
       AnuncioTXT_MC.play();
       gotoAndStop(2);
       activo = 1;

//...................................................

      nuevavariable.onSoundComplete = acabomusic;  // cuando acaba de sonar

//..............................................................

      }
     else
     {
//.......................................

      nuevavariable.sonido.stop();

//.........................................

      activo = 0;
      parar = 0;
      gotoAndStop(1);
      Admiracion_MC.gotoAndStop(1);
      AnuncioTXT_MC.gotoAndStop(1);
     }
    }
 }



espero haberme explicado bien ahora.
Es decir necesito que nuevavariable tome el valor de _root.sonido
¿Es posible?
Yo no se como hacerlo....
Me explico mas

var1 = 12;
var2 = var1;

entonces var2 vale 12

pues esto mismo pero aplicado a _root.sonido
donde nuevavariable = _root.sonido;
y cuando quiera hacer sonar nuevavariable me suene lo que habia almacenado en _root.sonido

Uffff espero no haberlo liado mas
Saludos y gracias por perder el tiempo conmigo

Por mcamo

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 May 2016 01:40 pm
Haces una copia, no una referencia, prueba el siguiente código

Código ActionScript :

var a =1
var b=a
trace("b es una copia de a y vale "+b)
a = 5
trace("Cambio a pero b no se actualiza "+b)


Por eso uso _root.sonido si es que intento mantenerme sincronizado con su valor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 May 2016 02:34 pm
Vamos a ver
sonido1 siempre va a tener el valor que almacena desde su declaracion.
Despues declaro otras variables de sonido en root que se llaman sonido2, sonido3, etc....
Desde el clip yo accedo a ellas mediante _roo.sonido1 , etc...
Esto es lo de menos.
La pregunta es clara.
Puedo hacer que una variable me tome el valor actual de _root.sonido1???
por ejemplo
Nuevavariable = _root.sonido??????
Que cuando ponga a sonar nuevavariable me suene lo que habia almacenado en _root.sonido1 ????
Es lo que necesito
No se si se puede.

Por mcamo

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 May 2016 12:28 pm
No se puede porque AS1/2 COPIA no hace REFERENCIA, es lo que quise que veas en el código que puse anteriormente, Si te preocupa la eficiencia, escribir menos código y mas performante, usar encapsulación, scope bien definidos, etc, considera usar AS3 y una estructura de clases,

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.