Ir para conteúdo

POWERED BY:

Arquivado

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

Bruna Diniz

Programação no botão

Recommended Posts

Oi pessoal, como vão?

 

Eu tenho um botão, com efeito programado dentro dele, em AS2.

O problema... É que preciso usar o mesmo efeito em AS3 e não importa o que eu faça ele não entende a programação que reescrevi para AS3.

O botão é o do menu deste site: www.frontplan.com.br

 

A programação dele é bem facinha, over/out, if e timeline.

 

Alguém sabe como consigo resolver isso dentro do próprio botão? Ou eu preciso programar na layer de actions? :/

 

Beijinhos e obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

HGB7 creio que o que ela quer é um botao inteligente..

 

 

Bruna poste seu as2 para mim entender os efeitos que usou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Hgb7 e Inx, tudo bom?

 

Hgb7, obrigada pela ajuda... Mas é o que o Inx falou. x)

 

Eu tentei novamente e meio que saiu... Vou te mostrar em AS2, AS3 e o erro atual.

 

AS2:

 

on (rollOver) {gotoAndPlay(2);
}
on (rollOut) {gotoAndPlay(8);
}
on (release) {gotoAndStop(16);

if (_root.bt_home._currentFrame == "16") {
	_root.bt_home.gotoAndPlay(8);
}
if (_root.bt_servicos._currentFrame == "16") {
	_root.bt_servicos.gotoAndPlay(8);
}
if (_root.bt_blog._currentFrame == "16") {
	_root.bt_blog.gotoAndPlay(8);
}
}

AS3:

hint.addEventListener(MouseEvent.MOUSE_OVER, over)
hint.addEventListener(MouseEvent.MOUSE_OUT, out)
hint.addEventListener(MouseEvent.CLICK, clic)

function over 	(e:MouseEvent) 	{ gotoAndPlay(2) }
function out 	(e:MouseEvent) 	{ gotoAndPlay(8) }
function clic 	(e:MouseEvent) 	{
	//if (currentFrame == 16) 	gotoAndPlay(8)
}

Ele isolado, no palco em um fla em branco, funciona bonitinho.

Quando reproduzi ele dentro de um projeto, ele acusa erro:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at index_fla::MainTimeline/frame2()

at flash.display::Sprite/constructChildren()

at flash.display::Sprite()

at flash.display::MovieClip()

at flash.display::Sprite/constructChildren()

at flash.display::Sprite()

at flash.display::MovieClip()

at flash.display::MovieClip/gotoAndStop()

at index_fla::MainTimeline/loop()

 

Se eu tento colocar "root." antes dos gotoAndPlay, o erro passa a ser esse:

1061: Call to a possibly undefined method gotoAndPlay through a reference with static type flash.display:DisplayObject.

 

 

Eu usei muito pouco o root, então estou um pouco perdida. :/

 

Agradeço a atenção desde já! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruna no caso os links estao dentro de um mc e você quer carregar na root? isso?

 

MCONDEOMENUESTA.hint.addEventListener(MouseEvent.MOUSE_OVER, over);
MCONDEOMENUESTA.hint.addEventListener(MouseEvent.MOUSE_OUT, out);
MCONDEOMENUESTA.hint.addEventListener(MouseEvent.CLICK, clic);

function over(e:MouseEvent) {
	gotoAndPlay(2);//aqui ele manda executa a ação na root...
}
function out(e:MouseEvent) {
	gotoAndPlay(8);//aqui ele manda executa a ação na root...
}
function clic(e:MouseEvent) {
	//if (currentFrame == 16)       gotoAndPlay(8)
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Inx!

 

Então, eu tentei colocar o endereço antes do "hint", mas ele dá erro:

1120: Access of undefined property cont_trabalhos.

O gotoAndPlay() é referente a timeline do botão em si.

Tem diferença se esse hint estiver dentro do botão e a programação estiver dentro do hint ao invés da layer de actions?

Compartilhar este post


Link para o post
Compartilhar em outros sites

áh.. referente ao botao..

hint.addEventListener(MouseEvent.MOUSE_OVER, over);
function over(e:MouseEvent) {
        hint.gotoAndPlay(2);//aqui ele manda executa a ação na root...testei agora
}
Tente usar os códigos na index mesmo...

 

Mas olha só..

Tem certeza que esta tudo instanciado certinho?

Fikei 5 dias me matando pra descobri q o erro estava em um campo de texto que aparecia só no frame 20..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhh, eu vou ficar doidona. hahaha

 

Tentei colocar na layer de actions e ele insiste em dizer que não tem...

Ainda confirmei as instâncias e usei aquele alvo, para garantir...

 

Se eu coloco com root, acontece isso:

1119: Access of possibly undefined property cont_trabalhos through a reference with static type flash.display:DisplayObject.

 

Se eu coloco com this ou sem nada, acontece isso:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at index_fla::MainTimeline/frame2()

at flash.display::Sprite/constructChildren()

at flash.display::Sprite()

at flash.display::MovieClip()

at flash.display::Sprite/constructChildren()

at flash.display::Sprite()

at flash.display::MovieClip()

at flash.display::MovieClip/gotoAndStop()

at index_fla::MainTimeline/loop()

 

 

Eu fico confusa com esse code, porque o gotoAndPlay anda dentro do botão, mas mesmo eu setando o endereço no goto não está funcionando. :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não enviei porque estava igualzinho antes, mas olha:

cont_trabalhos.menu_web.m01.web04.hint.addEventListener(MouseEvent.MOUSE_OVER, over)
cont_trabalhos.menu_web.m01.web04.hint.addEventListener(MouseEvent.MOUSE_OUT, out)
cont_trabalhos.menu_web.m01.web04.hint.addEventListener(MouseEvent.CLICK, clic)

function over 	(e:MouseEvent) 	{ cont_trabalhos.menu_web.m01.web04.gotoAndPlay(2) }
function out 	(e:MouseEvent) 	{ cont_trabalhos.menu_web.m01.web04.gotoAndPlay(8) }
function clic 	(e:MouseEvent) 	{
	//if (currentFrame == 16) 	gotoAndPlay(8)
}

"web04" é o botão que tem o efeito na timeline. =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Inx, como vai?

Obrigada pelo fla!

Era e não era a instância... :/

Ele não estava identificando meu mc como objeto clicado e sim o hit que tinha dentro dele. Instanciei cada hit com o mesmo nome do botão, aí funcionou perfeitinho!

Muito obrigada pela ajuda e atenção. :)

 

Aproveitando que estou aqui... Deixa eu tirar uma dúvida, se você souber me ajudar.

Nesse mesmo botão, no over ele vai para o frame 2. Quando há click eu quero que ele vá para o frame 16.

Porém... Eu clico, ele vai. Mas como o mouse ainda está no botão, ele volta pro 2. :/ Logo... Ele nunca fica no 16, mesmo depois do click.

Sabe como posso arrumar isso? :(

 

Obrigadinha desde já e desculpe a demora em responder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando mandar clicar desativer o over.. mais reative-o assim que sair... com um OUT.. entendeu?

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.