Comunidad de diseño web y desarrollo en internet online

pasar variables entre escenas de una misma pelicula

Citar            
MensajeEscrito el 12 Ene 2006 04:21 pm
Hola, es la primera vez que pongo un mensaje, y keria decir que me encanta esta pagina, asique enhorabuena. :)

Mi problema :crap: es que tengo varias escenas en un documento de flash, y necesito guardar el valor de unas variables comunes a todas ellas. La idea es para poner unas barras de estado y poder modificarlas desde cualquiera de las escenas del proyecto.

He provado con _root, _parent, y haciendo llamadas a funciones, pero cuando pruebo la pelicula siempre me da undefined para dichas variables. :?
Es que hay una escena principal? o es que cada escena tiene su root?

Seguramente sera una toneria pero agradeceria ayuda urgente.
Muchas gracias

Por ayalo

4 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 12 Ene 2006 04:45 pm
si me imagino bien n, tu quieres hacer ma o menos una presentacion de typo "powerpoint";


si es asi , pues para poder trabajar "scenes",

tienes que utilisar actionscript 2


http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00000143.html

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 12 Ene 2006 05:24 pm
No kiero hacer una presentación de power point, lo que kiero hacer es compartir datos entre varias escenas para un jueguecillo.
Stamos usando ActionScript2 :P

Por ayalo

4 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 13 Ene 2006 09:38 am
lo que puedes hacer es crear una classe principal ,digamos para guardar una referencia al _root de tu documento principal, por ejemplo :

Código :




class Jueguecillo extends MovieClip
{
   // variable para referenciar _root
   public var __target:MovieClip;
   // variabels del juego
   public var nivel:Number;
   public var score:Number;
   public var energia:Number;
   //function constructor de la classe
   function Jueguecillo (_mc:MovieClip)
   {
      __target = _mc;
      // este trace da como resultado  : 
                //level0 + el nobre de tu escena pricipal 
      // en general si trabajas en "Form"  
                //la escena pricipal se        llama "application"
      trace ("el root es : " + _mc);
   }
   // funcion para iniciar la classe
   public static function init (_mc:MovieClip):Void
   {
      trace ("el root es : " + _mc);
      var temp:Jueguecillo = new Jueguecillo (_mc);
   }
}


depues creas una classe para cada escena, por ejemplo :

Código :


class niveles.Nivel_1
{
   //constructor
   function Nivel_1 ()
   {
      
   }
   //function init 
   public function init ()
   {
   }
}



visto que tienes una classe para cada escena, despues lo unico que tienes ques hacer es crear una nueva instacia de cada classe de escena en la classe principal Jueguecillo;
por ejemplo :

Código :


<............
// importante hacer el import de cada classe
import niveles.Nivel_1

class Jueguecillo extends MovieClip
{
   // variable para referenciar _root
   public var __target:MovieClip;
   // variabels del juego
   public var nivel:Number;
   public var score:Number;
   public var energia:Number;
        //variables para referenciar las escenas de cada nivel
        private var _nivel_1:Nivel_1
.............................>


y en la funcion constructor de la classe principal tendras que inicializar las classses para cada escena ,ejemplo



Código :

<......
 //variables para referenciar las escenas de cada nivel
        private var _nivel_1:Nivel_1

 function Jueguecillo (_mc:MovieClip)
   {
      __target = _mc;
     
     
     //inicialisacion de las classes de las escenas
      _nivel_1=new Nivel_1(this)
      _nivel_1.init()
    //el this que pasas como parametro te servira en cada classe 
   // para poder guardar  una referencia de _root 
..............................>

   } 


al final, en la funcion constructor de cada classe escena tendras que agregar un nueva variable ,

Código :

class niveles.Nivel_1
{
   //variable de referencia a root
   private var nivel_1_ref:MovieClip;
   //constructor
   function Nivel_1 (__t:MovieClip)
   {
      nivel_1_ref = __t.nivel_1;
      trace (" Nivel_1 = " + nivel_1_ref);
   }
   //function init 
   public function init ()
   {
   }
}


// y asi podras utilisar todas las variables desde cualquier escena;

pero bueno si te parece dificil en este link podras cargar mi ejemplo;

http://www.premiumwanadoo.com/doprr//personal/jueguecillo/

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 13 Ene 2006 11:18 am
me parece mejor que carges el ejemplo; porque lo que escribi arriba no es muy claro

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 13 Ene 2006 02:56 pm
Muchas gracias, esto si que me vale.
Tampoco te lo tenias que haber currado tanto pero esta muy bien explicado.
gracias y hasta otra ;)

Por ayalo

4 de clabLevel



Genero:Femenino  

msie

 

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