Jump to content
Sign in to follow this  
Mac135

AS3 - Mudar cor de botão

Recommended Posts

Mac135

Boas

estou a tentar implementar um opção de escolha, em que no momento que o utilizador escolhe a opção pretendida, esta mude de cor.

Já procurei na net e não está fácil resolver esta questão.

Neste momento tenho criado um movieClip da opção que quero mostrar, com 2 keyframes, a 1ª com um circulo branco, a 2ª com um circulo vermelho, este para quando for seleccionado.

Preciso das vossas dicas.

Share this post


Link to post
Share on other sites
jccg

assim de rajada.

quando ao clicares e mandas para a keyframe em questão não consegues usar o gotoandstop?

Share this post


Link to post
Share on other sites
Mac135

stop();

var clicado:Boolean;

clicado = false;

circulo_mc.addEventListener(MouseEvent.CLICK, escolha);
function escolha(evt:MouseEvent){
clicado = true;
trace ("clicado "+clicado);
}

fiz este código agora (esta colocado na 1ª frame), mas esta-me a dar erro em circulo_mc, mas é o nome do meu objecto, ainda não consigo chegar ao gotoAndStop, mas a ideia é por ai.

Share this post


Link to post
Share on other sites
jccg

não vejo o problema neste codigo

fiz um projecto com 2 keyframes

circulo com instance name circulo_mc (para já na 1 keyframe).

clico no circulo, trace -> clicado true (sempre obviamente)

Share this post


Link to post
Share on other sites
Mac135

o erro é na linha

circulo_mc.addEventListener(MouseEvent.CLICK, escolha);

no nome circulo_mc

só precisava de um exemplo de como alterar a imagem de um objecto quando é seleccionado

Share this post


Link to post
Share on other sites
coxosclassic

Boas,

Certifica-te que o "circulo_mc" é exactamente o mesmo nome que deste ao simbolo no stage do flash.

O teu codigo está todo certo, se estas com um erro nessa linha, so pode ser esse o problema.

Cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
clera

assim de repente só se o movieClip não estiver na mesma frame que o codigo..

podes ter escolhido um documento as2 em vez de as3...

o circulo_mc pode estar dentro de outro objecto..

não estou a ver outras hipotese... 🤔

Share this post


Link to post
Share on other sites
Mac135

em relação às últimas respostas esta td conforme, e é mesmo em AS3 :)

o erro continua, isto de ser novo em AS3 tem sempre os seus problemas ;)

já agora, outra questão, sabem como é que em AS3 se consegue fazer com que um objecto faça movimentos aleatórios na stage?

Share this post


Link to post
Share on other sites
clera

var tempo:Timer = new Timer(1000);
var posX:uint;
var posY:uint;

tempo.addEventListener(TimerEvent.TIMER, novaPos);

tempo.start();

function novaPos(evt:TimerEvent) {

posX=Math.random()*stage.stageWidth;
posY=Math.random()*stage.stageHeight;

trace(posX);
trace(posY);
}

bem basta criar 2 variaveis (x,y) e utilizares uma função timer  que te vá dando valores aleatórios..

o "Math.random" dá-t valores entre 0 e 1, por isso basta multiplicar pelo valor que te interessa para obteres valores entre 0 e esse número.

o tempo para o timer é dado em milisegundos, dai o valor 1000==1 segundo.

depois se quiseres é só adicionar uma tween para ir do ponto em que se encontra ao novo ponto.

lembrei-me de outra coisa para a tua primeira dúvida. é que quando chamas um objecto por script não utilizas o nome do objecto em si, mas sim o "instance name".

clica sobre o objecto e na janela das propriedades vai aparecer a zona onde se dá o instance name.

boa sorte  ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.