Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fernando_Almeida

[Resolvido] Salvar a informação da Cena anterior

Recommended Posts

Fala aí galera!!

Preciso de ajuda no seguinte lance:

Tenho duas Cenas (scene) e nas duas existem um quadro que é pintado por quatro botões. até aí tudo bem, o código funciona legal. Mas, o que eu preciso é que ao voltar a cena 1 ou 2 (tanto faz) o quadro esteja na mesma cor que eu o deixei. Acho que tá fácil de entender, de qualquer forma abaixo segue o código de como está a animação até agorae o link para visualizar a animação.

 

http://www.halfblackman.xpg.com.br/

 



stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
var color_quadro:ColorTransform = new ColorTransform(mc_quadro);
var trans_quadro:Transform = new Transform (mc_quadro);
btn_preto.onRelease = function() {
color_quadro.rgb = 0x000000; // Quadro Preto
trans_quadro.colorTransform = color_quadro;
};
btn_azul.onRelease = function() {
color_quadro.rgb = 0x0000FF; // Quadro Azul
trans_quadro.colorTransform = color_quadro;
};
btn_verde.onRelease = function() {
color_quadro.rgb = 0x006600// Quadro Verde
trans_quadro.colorTransform = color_quadro;
};
btn_vermelho.onRelease = function() {
color_quadro.rgb = 0xFF0000; // Quadro Vermelho
trans_quadro.colorTransform = color_quadro;
};
Cena2.onRelease = function() {
       nextScene ();
};

\\Cena 2

stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
var color_quadro:ColorTransform = new ColorTransform(mc_quadro);
var trans_quadro:Transform = new Transform (mc_quadro);
btn_preto.onRelease = function() {
color_quadro.rgb = 0x000000; // Quadro Preto
trans_quadro.colorTransform = color_quadro;
};
btn_azul.onRelease = function() {
color_quadro.rgb = 0x0000FF; // Quadro Azul
trans_quadro.colorTransform = color_quadro;
};
btn_verde.onRelease = function() {
color_quadro.rgb = 0x006600// Quadro Verde
trans_quadro.colorTransform = color_quadro;
};
btn_vermelho.onRelease = function() {
color_quadro.rgb = 0xFF0000; // Quadro Vermelho
trans_quadro.colorTransform = color_quadro;
};
Cena1.onRelease = function() {
       prevScene ();
};

 

 

 

è isso aí! Espero que possam me ajudar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma variavel global que contenha o valor que foi pintado... e pergunte sempre se aquela variavel tem algum valor..

Se tiver use ela como default para a cor do quadrado. Se não ele vai para a cor default branca ou qualquer outra cor pré selecionada por você.

 

global.variavel = "X"

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma variavel global que contenha o valor que foi pintado... e pergunte sempre se aquela variavel tem algum valor..

Se tiver use ela como default para a cor do quadrado. Se não ele vai para a cor default branca ou qualquer outra cor pré selecionada por você.

 

global.variavel = "X"

 

Abraços

 

Cara, perdoe a minha bisonhice, mas eu não saquei :huh: ...Só para ir um pouco mais fundo no lance, eu pensei em usar um LoadVars, que você acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

loadVars????

 

Isso você usa apenas quando vai carregar arquivos do HTML/PHP/ASP ou de algum txt da vida... mas eu não usaria para guardar um dado temporário.

 

O que eu falei para você usar uma variavel global, é porque no flash a variavel que está em um frame se esse frame de código não for extendido só é valido para aquele frame... quando uma variavel global vai ser valida para todos os frames de um arquivo em flash.

 

Logo se você tem 2 cenas e quer guardar alguma informação de uma cena para a outra, você deveria usar a variavel global, pois ela vai continuar sendo valida não importa onde você esteja no script flash.

 

Você pode usar cookies tbm se quiser entre outras milhares de maneiras que existem pra fazer isso que você quer.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então....Tentei o que você disse, usando variaveis globais...funciona e o código fica menor, mas ainda assim, não consigo manter a cena anterior, dá uma olhada no código e veja o que eu estou fazendo de errado e se eu tenho que acrescentar mais alguma coisa, valeu!!

 

Action da Scene 1:

 

stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
_global.color_quadro = new ColorTransform(mc_quadro);
_global.trans_quadro = new Transform (mc_quadro);
btn_preto.onRelease = function() {
color_quadro.rgb = 0x000000; // Quadro Preto
trans_quadro.colorTransform = color_quadro;
};
btn_azul.onRelease = function() {
color_quadro.rgb = 0x0000FF; // Quadro Azul
trans_quadro.colorTransform = color_quadro;
};
btn_verde.onRelease = function() {
color_quadro.rgb = 0x006600// Quadro Verde
trans_quadro.colorTransform = color_quadro;
};
btn_vermelho.onRelease = function() {
color_quadro.rgb = 0xFF0000; // Quadro Vermelho
trans_quadro.colorTransform = color_quadro;
};

Cena2.onRelease = function() {
nextScene ();
};

 

Action da Scene 2:

 

stop();

btn_preto.onRelease = function() {
color_quadro.rgb = 0x000000; // Quadro Preto
trans_quadro.colorTransform = color_quadro;
};
btn_azul.onRelease = function() {
color_quadro.rgb = 0x0000FF; // Quadro Azul
trans_quadro.colorTransform = color_quadro;
};
btn_verde.onRelease = function() {
color_quadro.rgb = 0x006600// Quadro Verde
trans_quadro.colorTransform = color_quadro;
};
btn_vermelho.onRelease = function() {
color_quadro.rgb = 0xFF0000; // Quadro Vermelho
trans_quadro.colorTransform = color_quadro;
};
cena1.onRelease = function() {
prevScene ();
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me apresentaram uma solução que é a seguinte:

 

Esqueço as cenas (na verdade, no site da Adobe eles te desmotivam a fazer isso) e uso frames.

1º- Crio três frames;

 

2º - No primeiro frame vazio adiciono a action:

//variáveis iniciam com valor negativo e servirão para guardar a última cor utilizada em cada "cena" (frame) do seu filme.
var corCena1 = -1;
var corCena2 = -1;

3º - No segundo frame a action correspondente:

stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
var color_quadro:ColorTransform = new ColorTransform(mc_quadro1);
var trans_quadro:Transform = new Transform(mc_quadro1);
btn_preto1.onRelease = function() {
       color_quadro.rgb = 0x000000;// Quadro Preto
       trans_quadro.colorTransform = color_quadro;
       corCena1 = 0x000000;
};
btn_azul1.onRelease = function() {
       color_quadro.rgb = 0x0000FF;// Quadro Azul
       trans_quadro.colorTransform = color_quadro;
       corCena1 = 0x0000FF;
};
btn_verde1.onRelease = function() {
       color_quadro.rgb = 0x006600;// Quadro Verde
       trans_quadro.colorTransform = color_quadro;
       corCena1 = 0x006600;
};
btn_vermelho1.onRelease = function() {
       color_quadro.rgb = 0xFF0000;// Quadro Vermelho
       trans_quadro.colorTransform = color_quadro;
       corCena1 = 0xFF0000;
};

if (corCena1 != -1) {
       color_quadro.rgb = corCena1;// Quadro Preto
       trans_quadro.colorTransform = color_quadro;
}

Cena2.onRelease = function() {
       nextFrame();
};

 

 

 

E finalmente no 3º frame:

stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
var color_quadro:ColorTransform = new ColorTransform(mc_quadro2);
var trans_quadro:Transform = new Transform(mc_quadro2);
btn_preto2.onRelease = function() {
       color_quadro.rgb = 0x000000;// Quadro Preto
       trans_quadro.colorTransform = color_quadro;
       corCena2 = 0x000000;
};
btn_azul2.onRelease = function() {
       color_quadro.rgb = 0x0000FF;// Quadro Azul
       trans_quadro.colorTransform = color_quadro;
       corCena2 = 0x0000FF;
};
btn_verde2.onRelease = function() {
       color_quadro.rgb = 0x006600;// Quadro Verde
       trans_quadro.colorTransform = color_quadro;
       corCena2 = 0x006600;
};
btn_vermelho2.onRelease = function() {
       color_quadro.rgb = 0xFF0000;// Quadro Vermelho
       trans_quadro.colorTransform = color_quadro;
       corCena2 = 0xFF0000;
};

if (corCena2 != -1) {
       color_quadro.rgb = corCena2;// Quadro Preto
       trans_quadro.colorTransform = color_quadro;
}

Cena1.onRelease = function() {
       prevFrame();
};

 

E é isso aí!!

Valeu Thiago pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.