• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MC

ajuda flash (menu com sub menu)

9 mensagens neste tópico

boas algue mme pode dizer como fazer um sub menu em flash ??

tipo ao mouse passar por cima aparecer um sub menu  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

vou explicar assim por alto como costumo fazer. A ideia é teres um botao que ao fazeres rollover manda avançar o movieclip com o sub menu em que tem á volta do proprio sub menu um botao transparente em que ao fazeres rollover manda sair esse mesmo movieclip com o sub menu.

Não sei os teus conhecimentos a nivel de codigo. Se tiveres alguma dúvida avisa. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a nivel de codigo sou muito fraco aindsa não sei quase nada mas vou tentar fazer  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá MC!

ora bem, por acaso registei-me agora mesmo no fórum e vim direitinho para este tema sobre o actionscript ;)

também começei a dar os primeiros passos recentemente, e olha ando a ganhar-lhe o gostinho!

de boa vontade aqui mando-te um código meu que podes colar num novo documento do flash...é um menu diferente do que pretendes, mas dentro do pouco que sei está minimamente funcional. não ficou terminado, pois foi era apenas um exercício meu à uns tempos atrás, mas no entanto acho que tem noções básicas necessárias para começar a programar algo.

experimenta então entender o que fazem os movieclips, textfields, ciclos, textformat, beginGradientFill, etc... sempre que tiveres dúvidas utiliza o help - f1 é do melhor!!

qualquer dúvida dispõe :D abraço

// implementaçao de variaveis a utilizar para o filtro glow (opccional)
// ver no help como este filtro sintetiza o gradiente

import flash.filters.GlowFilter;
var labelGlow:GlowFilter = new GlowFilter(0xFFFFFF, 0.9, 10, 10, 11, 15, false, true);
var labelFilters:Array = [labelGlow];
var fillType:String = "linear";
var colors:Array = [0xFFFFFF, 0x999999, 0x666666, 0xFFFF00];
var alphas:Array = [100, 100, 100, 95];
var ratios:Array = [0, 126, 127, 255];
var matrix:Object = {matrixType:"box", x:0, y:0, w:100, h:20, r:90/180*Math.PI};

// MovieClip - Limite à direita	( dps de carregar num link, por exemplo "biografia", criei um movieclip com 0 de opacidade (alpha), assim quando o rato sai do menu e toca nesse movieclip as barras de navegação fecham.

_root.createEmptyMovieClip("mc_fundoDir", -2);
mc_fundoDir.beginFill(0x666666);
mc_fundoDir.moveTo(360, 0);
mc_fundoDir.lineTo(800, 0);
mc_fundoDir.lineTo(800, 600);
mc_fundoDir.lineTo(360, 600);
mc_fundoDir.lineTo(360, 0);
mc_fundoDir.endFill();
mc_fundoDir._alpha = 0;

// MovieClip - Limite ao centro (o mesmo raciocinio)
_root.createEmptyMovieClip("mc_fundoCentro", -1);
mc_fundoCentro.beginFill(0xFFFFFF);
mc_fundoCentro.moveTo(195, 0);
mc_fundoCentro.lineTo(800, 0);
mc_fundoCentro.lineTo(800, 600);
mc_fundoCentro.lineTo(195, 600);
mc_fundoCentro.lineTo(195, 0);
mc_fundoCentro.endFill();
mc_fundoCentro._alpha = 0;

// MovieClip - Barra de Biografia ( a barra central do menu de navegação, pronta para começar a introduzir textos, gráficos, etc.)
createEmptyMovieClip("mc_BarraDeBio", 0);
mc_BarraDeBio.lineStyle(1, 0x000000, 50, false, "none", "square", "round", 8);
mc_BarraDeBio.beginGradientFill(fillType, colors, alphas, ratios, matrix);
mc_BarraDeBio.moveTo(150, 0);
mc_BarraDeBio.lineTo(300, 0);
mc_BarraDeBio.lineTo(300, 600);
mc_BarraDeBio.lineTo(150, 600);
mc_BarraDeBio.lineTo(150, 0);
mc_BarraDeBio.endFill();
mc_BarraDeBio._visible = false;

// MovieClip - Barra de hiperligações ( é a que surge quando se carrega no menu )
createEmptyMovieClip("mc_BarraDeLinks", 1);
mc_BarraDeLinks.lineStyle(1, 0x000000, 50, false, "none", "square", "round", 8);
mc_BarraDeLinks.beginGradientFill(fillType, colors, alphas, ratios, matrix);
mc_BarraDeLinks.lineTo(150, 0);
mc_BarraDeLinks.lineTo(150, 600);
mc_BarraDeLinks.lineTo(0, 600);
mc_BarraDeLinks.lineTo(0, 0);
mc_BarraDeLinks.endFill();
mc_BarraDeLinks._visible = false;

// MovieClip - barra de menu ( é a 1º barra que surge )
createEmptyMovieClip("mc_BarraDeMenu", -3);
mc_BarraDeMenu.lineStyle(1, 0x000000, 50, false, "none", "square", "round", 8);
mc_BarraDeMenu.beginGradientFill(fillType, colors, alphas, ratios, matrix);
mc_BarraDeMenu.lineTo(35, 0);
mc_BarraDeMenu.lineTo(35, 600);
mc_BarraDeMenu.lineTo(0, 600);
mc_BarraDeMenu.lineTo(0, 0);
mc_BarraDeMenu.endFill();

//formatação para as caixas de texto
var formatoTexto:TextFormat = new TextFormat();
formatoTexto.align = "left";
formatoTexto.font = "impact";
formatoTexto.size = 25;
formatoTexto.color = 0x000000;

// TextField "MENU"
createTextField("txt_menu", getNextHighestDepth(), 5, 50, 25, 120);
txt_menu.text = "MENU";
txt_menu.wordWrap = true;
txt_menu.multiline = true;
txt_menu.autoSize = true;
txt_menu.selectable = false;
txt_menu.antiAliasType = "advanced";
txt_menu.setTextFormat(formatoTexto);

// MovieClip "biografia"
createEmptyMovieClip("mc_txt_bio", getNextHighestDepth());
mc_txt_bio.createTextField("txt_bio", getNextHighestDepth(), 20, 50, 70, 50);
mc_txt_bio.txt_bio.text = "bio";
mc_txt_bio.txt_bio._visible = false;
mc_txt_bio.txt_bio.selectable = false;
mc_txt_bio.txt_bio.antiAliasType = "advanced";
mc_txt_bio.txt_bio.setTextFormat(formatoTexto); 

// TextField "txt_gallery"
createTextField("txt_gallery", getNextHighestDepth(), 20, 90, 100, 50);
txt_gallery.text = "gallery";
txt_gallery._visible = false;
txt_gallery.selectable = false;
txt_gallery.antiAliasType = "advanced";
txt_gallery.setTextFormat(formatoTexto);

// TextField "txt_work
createTextField("txt_work", getNextHighestDepth(), 20, 130, 100, 50);
txt_work.text = "work";
txt_work._visible = false;
txt_work.selectable = false;
txt_work.antiAliasType = "advanced";
txt_work.setTextFormat(formatoTexto);

// TextField "txt_downloads"
createTextField("txt_downloads", getNextHighestDepth(), 20, 170, 120, 50);
txt_downloads.text = "download";
txt_downloads._visible = false;
txt_downloads.selectable = false;
txt_downloads.antiAliasType = "advanced";
txt_downloads.setTextFormat(formatoTexto);

// TextField "txt_blog"
createTextField("txt_blog", getNextHighestDepth(), 20, 210, 100, 50);
txt_blog.text = "blog";
txt_blog._visible = false;
txt_blog.selectable = false;
txt_blog.antiAliasType = "advanced";
txt_blog.setTextFormat(formatoTexto);

// TextField "txt_links"
createTextField("txt_links", getNextHighestDepth(), 20, 250, 100, 50);
txt_links.text = "links";
txt_links._visible = false;
txt_links.selectable = false;
txt_links.antiAliasType = "advanced";
txt_links.setTextFormat(formatoTexto);

// TextField "txt_writeme"
createTextField("txt_writeme", getNextHighestDepth(), 20, 290, 150, 50);
txt_writeme.text = "write me";
txt_writeme._visible = false;
txt_writeme.selectable = false;
txt_writeme.antiAliasType = "advanced";
txt_writeme.setTextFormat(formatoTexto);

// Função - Barra de menu
mc_BarraDeMenu.onRelease = function() {
mc_fundoCentro._x = -10;
mc_BarraDeLinks._visible = true;
mc_BarraDeMenu._x = 150;
txt_menu._x = 158;
txt_gallery._visible = true;
txt_work._visible = true;
txt_downloads._visible = true;
txt_blog._visible = true;
txt_links._visible = true;
txt_writeme._visible = true;
mc_txt_bio.txt_bio._visible = true;
mc_BarraDeBio._visible = false;

// Função - Barra de menu
mc_BarraDeMenu.onRollOut = function() {
	mc_fundoCentro.onRollOver = function() {
		mc_eu.txt_eu._visible = false;
		mc_BarraDeLinks._visible = false;
		mc_BarraDeMenu._x = 0;
		txt_menu._x = 8;
		txt_gallery._visible = false;
		txt_work._visible = false;
		txt_downloads._visible = false;
		txt_blog._visible = false;
		txt_links._visible = false;
		txt_writeme._visible = false;
		mc_txt_bio.txt_bio._visible = false;
		mc_BarraDeBio._visible = false;
	};
};
};

// Função - MovieClip Bio
mc_txt_bio.onPress = function() {
Bio_Information.border = true;
mc_BarraDeMenu._x = 300;
mc_fundoCentro._x = 140;
txt_menu._x = 308;
mc_BarraDeBio._visible = true;
Bio_Information._visible = false;
mc_eu.txt_eu._visible = true;
mc_txt_bio.onPress = function() {
	mc_BarraDeMenu._x = 300;
	mc_fundoCentro._x = 140;
	txt_menu._x = 308;
	mc_BarraDeBio._visible = true;
	mc_eu.txt_eu._visible = true;
};
};

// Função - MovieClip Barra de Menu
mc_BarraDeMenu.onRollOut = function() {
mc_fundoDir.onRollOver = function() {
	mc_BarraDeLinks._visible = false;
	mc_BarraDeMenu._x = 0;
	txt_menu._x = 8;
	txt_gallery._visible = false;
	txt_work._visible = false;
	txt_downloads._visible = false;
	txt_blog._visible = false;
	txt_links._visible = false;
	txt_writeme._visible = false;
	mc_txt_bio.txt_bio._visible = false;
	mc_BarraDeBio._visible = false;
};
};

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Isso para um iniciante não é uma beca hardcore? lol

Eu que já tenho alguma experiência em AS 2 e 3 fiquei um bocado pasmado com esse código. Eu ia por outro caminho mais fácil, pelo menos a criação do menu a nivel grafico.

Já agora bem vindo ao fórum  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois...tá  muito mastigado mas foi feito de rajada e não tive para refazer :D

Já agora, como farias o mesmo menu? Há muita coisa que ainda me escapa, gostava de ouvir alguém com experiência na coisa...

abraço e fica bem  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu fizeste da maneira mais hardcore que é fazer tudo em código. Já vi que sabes Java e para ti é normal fazer assim. A maneira que digo mais fácil tem de se usar o Flash IDE. Sem o IDE tem de ser mesmo assim, além de poderes reduzir o código que ai tens com ciclos FOR.

No flash podes tornar a parte gráfica mais fácil criando os menus com ferramentas gráficas, em que depois de converteres para movieclips é só dar as acções.

Do código que tens ai basta as ultimas 4 funções e mais algumas linhas.

Acho que não te ensinei nada  :D apenas o método mais preguiçoso de fazer isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hum...ok obrigado pela rápida resposta :P

Eu fiz tudo por código porque me dá mais prazer, apesar de saber criar os simbolos no palco e timeline.

Mas olha, o que é isso do Flash IDE não sei o que é :P

Aproveito a oportunidade para te perguntar se costumas usar o Swift 3D para exportar para o Flash?! Tenho-o, mas ainda não tive tempo para brincar com ele, apesar de ter boas bases de 3d Studio Max...Apesar de não ser muito famoso, é muito bom. Possui uma tecnologia de render que o 3D Studio Max ainda não conseguiu desvendar ou não lhes interessa, que é exportar animações em vectorial para o formato .fla.

Outra pergunta :) usas algum programa para exportar as layers do photoshop para o flash? E resulta bem? Arranjei um mas não fica grande coisa...

E a última questão :) costumas utilizar o Eclipse SDK para criar classes em Actionscript?!

Fica bem :P abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Acredito que te dê prazer fazer tudo por código! ultimamente tb o faço quando há tempo para isso.

O Flash IDE é o programa Flash em si. Nesta altura já existe muitas maneiras de fazer flash sem o seu IDE, portanto lhe chamei Flash IDE.

Quanto ao swift 3d cheguei a exprimentar mas nunca mais peguei nele. Mas acho que há um plugin para o 3ds studio max para exportar como vector, pelo menos já vi para o lightwave. É uma boa opção quando se quer poupar espaço no swf, mas hoje em dia com as ligações que há e recorrendo a flvs começa a fazer menos sentido, a não ser que se queira mesmo o efeito vectorial.

O flash cs3 já importa psd com tudo separado em layers e podes até definir tudo ao promenor como se queres os estilos em layers separados em movieclips, dar logo instance names e mesmo definir os pontos de referencia entre outras opções.

O eclipse SDK mesmo nunca exprimentei, tenho usado o flex 2 builder mas quando tiver tempo irei exprimentar certamente.

;) hastas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora