Comunidad de diseño web y desarrollo en internet online

Problemas para cargar los valores de una variable desde un swf a otro.

Citar            
MensajeEscrito el 22 Jul 2014 02:26 pm
Hl a tod@s soy nueva en esto, estoy haciendo un juego con flash cs6 y necesito cargar los valores de una variable desde un swf a otro para la puntuación. Hay alguna manera de hacerlo desde el mismo panel de acciones? ya que con el tema de las clases estoy un poco perdida todavía.

Digamos que tengo una variable, vMonedas, y cada nivel del juego lo tengo en un swf diferente, todo esta programado desde su fotograma. necesito que cada nivel guarde el contenido de la variable vMonedas y cargue su valor al fotograma siguiente. Hay alguna manera de hacerlo desde AS3?

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Jul 2014 06:54 pm
Antes habia un espacio _global, con AS3 es bastante mas complicado hace lo que dices, porque el compilador te tira error ya que automaticamente convierte los MC en clases. De todas formas puedes usar root como contenedor, siempre que no cargues las pelis en nivel 0, es decir reemplaces la peli principal

root["vMonedas"] = 5

Usando esa notación de Array evitarás errores en tiempo de compilación, y root es accesible desde cualquier parte

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 12:58 am
pero lo puedo cargar en el fotograma, o necesito una clase??? perdona pero estoy un poco verde en el tema. me puedes dar un ejemplo xf

Yo lo he programado así, en el primer nivel, en el fotograma uno, tengo el cargador y en el dos tengo programadas las variables y el resto del juego. Lo que necesito es que me guarde el contenido de las variables y me las cargue en el swf siguiente. como puedo hacerlo?

import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;

/////////variables//////////////
var vCorrecto = new Number();
var vMonedas = new Number();
var vEstrella = new Number();
var vEstrella1 = new Number();
var vEstrella2 = new Number();


//Inicializaciones//////////////
vMonedas = 0;
vCorrecto = 0;
vEstrella = 20;
vEstrella1 = 20;
vEstrella2 = 20;
caja_estrella.text = vEstrella;
caja_estrella1.text = vEstrella1;
caja_estrella2.text = vEstrella2;
bSiguiente.mouseEnabled = false;

/////////Estrellas//////////////////////

if (vEstrella<20)
{
removeChild(b_Estrella);
}
if (vEstrella1<20)
{
removeChild(b_Estrella1);
}
if (vEstrella2<20)
{
removeChild(b_Estrella2);
}

function fdinero(MouseEvent)
{
caja_marcador.text = vMonedas;
}

addEventListener(Event.ENTER_FRAME,fdinero);

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 01:07 am
lo que necesito es que si el jugador en el primer nivel consigue 100 monedas, y use una estrella, en el nivel siguiente me cargue esos datos. en el marcador me ponga que tiene 100 monedas y me inhabilite la estrella que ha usado en el nivel anterior. El motivo por el cual uso un swf para cada nivel es porque tarda mucho en cargar el juego y según avanza tarda mas en cargar y se queda bloqueado.

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 11:59 am
Supongamos que en la línea principal pones

vMonedas =100

En cualquier peli que cargas, pones

var monedas:Number = root["vMonedas"] as Number;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 01:54 pm
ok, ya entiendo. Y en la caja de texto que me recibe la variable? es que me da error. Dice: Conversión implícita de un valor de tipo Number a un tipo String no relacionado.



function fdinero(MouseEvent)
{
caja_marcador.text = vMonedas;
}

addEventListener(Event.ENTER_FRAME,fdinero);


muchas gracias por todo

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 02:13 pm
Sería

caja_marcador.text = String(vMonedas);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 04:04 pm
Si, eso ya lo he probado, pero me dice que la variable vMonedas no esta definida y la declaro como nueva, no me guarda la puntuación del nivel anterior.

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 04:24 pm
Ok, si esa caja de texto esta en una peli que cargas, entonces lo tienes que ir a buscar a root, con lo cual seria

caja_marcador.text = root["vMonedas"];

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 04:43 pm
Tampoco funciona, ahora no me da error, pero no me marca nada en la caja de texto. Lo mas seguro es que me estoy equivocando en una tontería.

Yo en el primer swf tengo esto:

stop();


import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.URLVariables;

/////////variables//////////////
var vMonedas = new Number();

//Inicializaciones//////////////
vMonedas = 0;

bSiguiente.mouseEnabled = false;

////////////////////////////////////////////////////////
function fdinero(MouseEvent)
{
caja_marcador.text = vMonedas;
}

addEventListener(Event.ENTER_FRAME,fdinero);


_______________________________________________________

Y en el segundo tengo esto:


import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.URLLoader;

/////////variables//////////////

var monedas:Number = root["vMonedas"] as Number;

bSiguiente.mouseEnabled = false;

/////////////////////////////////////////////////
function fdinero1(MouseEvent)
{
caja_marcador.text = root["vMonedas"];
}
addEventListener(Event.ENTER_FRAME,fdinero1);

Y este es el botón que me suma la puntuación:

///////////////////////////////////////////////////////////////

function R_n1correctaA0($event: MouseEvent):void
{
//FUNCIONALIDAD DEL BOTÓN correcto
b_Estrella.mouseEnabled = false;
b_Estrella2.mouseEnabled = false;
b_Estrella1.mouseEnabled = false;
b_C.mouseEnabled = false;
b_B.mouseEnabled = false;
removeChild(b_A);
Clip_A.gotoAndPlay("verde");
monedas = monedas + 300;
vCorrecto1 = vCorrecto1 + 20;
}
b_A.addEventListener(MouseEvent.CLICK,R_n1correctaA0);


Perdona que sea tan pesada, pero es que le estoy dando muchas vueltas y no doy con el error

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 04:56 pm
El primer swf es el principal? (root)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 05:50 pm
si, es el principal

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 06:29 pm
para sumar usas la variable monedas , pero para mostrar usas vMonedas, que no es lo mismo, debería ser

vMonedas = vMonedas + 300;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2014 06:56 pm
Si lo pongo asi, me dice que vMonedas no esta definida.

Por tmrgarc

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 07:09 pm

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.