Ir para conteúdo
  • Cadastre-se

Menu avançado em flash


AiroN

Posts recomendados

Hoje vou mostrar como criar um menu avançado em Flash. Ele pode ser usado em qualquer site web. Com ele você também irá aprender:

 

 

1. Fazer o design do menu;

2. Importar qualquer imagem em um estágio (palco) flash;

3. Converter qualquer ícone ou imagem em um Movie Clip;

4. Criar nome de instância;

5. Como animar ícone e texto;

6. Como criar botão invisível.

7. Como aplicar blur em qualquer ícone.

 

 

Para esta lição, você usará código action script. Vamos começar!

 

Exemplo:

 

http://www.revistaminha.com.br/flash/swf/menubrilho.swf

 

 

Etapa 1:

 

 

Primeiro, baixe os ícones que usaremos para esta lição.

 

 

Etapa 2:

 

 

Crie um novo documento Flash. Pressione Ctrl + J tecla no teclado (Document Properties) e defina a largura do documento para 420 pixels e a altura para 160 pixels. Selecione # FDFDFC como cor de fundo. Defina taxa de seu filme flash frame para 48 e clique em OK.

 

 

tuto7501.gif

 

 

Etapa 3:

 

 

Mude o nome da camada 1 ou (Layer 1) para ícone menu. Para isso basta que você dê um clique duplo emcima de "Layer 1", digite o nome ícone menu e aperte Enter.

 

 

Etapa 4:

 

 

Escolha Arquivo (File)> Importar (Import)> Importar para biblioteca (Import to Library). na janela de explorador de arquivo de aparece, Procure os três ícones, segure o botão "Shift" e clique para selecionar todos eles. Em seguida, clique em Abrir. Agora, se você abrir sua biblioteca flash (Ctrl + L), você verá três ícones que você acabou de importado. Veja a imagem abaixo!

 

 

tuto7502.gif

 

 

Etapa 5:

 

 

Selecione a ferramenta Line (Linha)(N) e vá para o Painel de Propriedades (Ctrl + F3) abaixo do palco. Em seguida, faça os ajustes como segue:

 

 

tuto7503.gif

 

 

Etapa 6:

 

 

Desenhe duas linhas verticais, como é mostrado na imagem abaixo!

 

 

tuto7504.gif

 

 

Etapa 7:

 

 

Usando a ferramenta Selection (V), mova os ícones da biblioteca do flash para o palco (estágio) e coloque na posição, como é mostrado na imagem abaixo!

 

 

tuto7505.gif

 

 

Etapa 8:

 

 

Selecione a ferramenta Texto (A) e vá para o Painel de Propriedades (Ctrl + F3) abaixo do palco. Em seguida, escolha as seguintes opções:

 

1. Selecione um campo de texto estático,

2. Selecione Zurique BdEx BT como fonte.

3. Escolha 12 como o tamanho da fonte

4. Selecione preto como a cor,

5. Como a opção de renderização(rendering option), selecione Usar Anti-alias para facilitar a leitura.

 

 

tuto7506.gif

 

 

Digite os textos abaixo dos links, como é mostrado na imagem abaixo!

 

 

tuto7507.gif

 

 

Etapa 9:

 

 

é hora de animação. Selecione a ferramenta Selection (V) e selecione o primeiro botão no menu. Veja a imagem abaixo!

 

 

tuto7508.gif

 

 

Em seguida, aperte a tecla F8 (Converter em símbolo) para converter este ícone e o texto em um Movie Clip.

 

 

tuto7509.gif

 

 

Etapa 10:

 

 

Com o novo Movie Clip ainda selecionado, vá ao painel das propriedades abaixo do palco. No lado esquerdo, você encontrará o campo de entrada de nome de Instância. Chame esse Movie Clip de "About_Us". Veja a imagem abaixo!

 

 

tuto75010.gif

 

 

Etapa 11:

 

 

Dê um duplo clique no movieclip no palco com a ferramenta Selection (V). Agora você deve estar dentro do Movie Clip.

 

 

tuto75011.gif

 

 

Etapa 12:

 

 

Agora que você está dentro do Movie Clip. Mude o nome da camada 1 (Layer 1) para texto. Para isso, dê um clique duplo sobre ela e coloque o novo nome.

 

 

Etapa 13:

 

 

Selecione a ferramenta Selection (V) e selecione apenas o ícone. Após isso, pressione Ctrl + X (Cortar). Crie uma nova camada acima da camada "texto" e nomeie para "ícone". Selecione a camada ícone e pressione Ctrl + Shift + V (Paste in Place).

 

 

Etapa 14:

 

 

Com o ícone ainda selecionado, pressione a tecla F8 (Converter em símbolo) para convertê-la em um Movie Clip Symbol.

 

 

tuto75012.gif

 

 

Etapa 15:

 

Clique agora no frame 15 e tecle F6. Depois disso, mova o ícone pouco para baixo. Em seguida, selecione novamente a ferramenta de seleção (V) e clique uma vez sobre o ícone. Vá para o Painel de Propriedades (Ctrl + F3) abaixo do palco. À direita, você verá o menu de cores. Selecione Avançado (Advanced), clique no botão Configurações e faça os ajustes como segue:

 

tuto75014.gif

 

 

Etapa 16:

 

 

Clique com o botão direito do mouse em qualquer lugar na área cinzenta entre a frame 1 e 10 e depois entre os frames 10 e 15 na linha do tempo (timeline) e escolha Create Motion Tween no menu que aparece.

 

 

tuto75015.gif

 

 

Etapa 17:

 

 

Volte na camada "texto" e aperte a tecla F8 (Converter em símbolo) para converter o texto em um Movie Clip.

 

 

tuto75016.gif

 

 

Etapa 18:

 

 

Clique agora no frame 10 e 15 e pressione F6. Com frame 15, selecione a ferramenta Selection (V) e clique uma vez sobre o texto para selecioná-lo. Então, vá para o Painel de Propriedades (Ctrl + F3) abaixo do palco. À direita, você verá o menu de cores. Selecione a opção "Tint" faça os ajustes a seguir:

 

 

tuto75017.gif

 

 

Etapa 19:

 

 

Volte no frame 10 e mova o texto um pouco para baixo.

 

 

tuto75018.gif

 

 

Etapa 20:

 

 

Ainda no frame 10, selecione a ferramenta Selection (V) e clique uma vez sobre o texto para selecioná-lo. Então, vá para o Painel de Propriedades (Ctrl + F3) abaixo do palco. À esquerda, você verá o botão Filtros (Filters). Clique uma vez sobre esse botão. Depois disso, clique no ícone do plus, selecione Blur nele e faça os ajustes como segue:

 

 

tuto75019.gif

 

 

Etapa 21:

 

 

Clique com o botão direito do mouse em qualquer lugar na área cinzenta entre a frame 1 e 10 e depois entre os frames 10 e 15 na linha do tempo (timeline) e escolha Create Motion Tween no menu que aparece.

 

 

Etapa 22:

 

 

Volte À cena principal (Scene 1).

 

 

Etapa 23:

 

 

Crie uma nova camada acima da camada ícone menu e nomeie como botão invisível.

 

 

Etapa 24:

 

 

Selecione agora o a camada "botão invisível" e logo após a Rectangle Tool ®. Na parte Cores do painel Ferramentas, bloqueie a borda, clicando no ícone do lápis e depois na parte que tem a linha vermelha na diagonal. Para a cor de preenchimento você poderá escolher qualquer cor. Para finalizar, desenhe um retângulo sobre o primeiro botão. Veja a imagem abaixo!

 

 

tuto75020.gif

 

 

Etapa 25:

 

 

Com a forma de retângulo ainda selecionado, pressione a tecla F8 (Converter em símbolo) para converter este retângulo em botão.

 

 

tuto75021.gif

 

 

Etapa 26:

 

 

Dê um duplo clique sobre o botão invisível para ir em seu interior. Então, usando o arrastar. Clique no botão Up do botão e arraste até o quadro Hit.

 

 

tuto75022.gif

 

 

Etapa 27:

 

 

Volte À cena principal (Scene 1).

 

 

Etapa 28:

 

 

Selecione agora a ferramenta de seleção (V) e clique uma vez sobre o botão invisível para selecioná-lo. Após isso, abra o Painel de Action Script (F9) e digite o seguinte Action Script código, dentro do painel Ações:

 

 

on (rollOver) {
_root.mouse_over_About_Us = true;
}

on (rollOut) {
_root.mouse_over_About_Us = fstartlse;
}

on (release){
getURL("http://www.flashfridge.com/");
}

 

 

Etapa 29:

 

 

Crie uma nova camada acima da camada de botão invisível e de nome de action script. Em seguida, clique no primeiro frame da e digite o seguinte código Action Script no interior do painel Ações:

 

 

_root.About_Us.onEnterFrame = function() {
if (mouse_over_About_Us) {
_root.About_Us.nextFrame();
} else {
_root.About_Us.prevFrame();
}
};

 

 

Terminamos o primeiro botão. Repita esse processo também para todos os outros botões no menu!

Divirta-se!

 

 

Fontes: http://www.tutoriais...1-hoje-vou.html http://www.tutoriais...l-etapa-16.html

 

Download: Download do Arquivo FLA

"O tamanho dos teus sonhos deve sempre exceder a tua capacidade atual para alcançá-los.
Se os teus sonhos não te assustam, eles não são grandes o suficiente." - Ellen Johnson

Link para o comentário
Compartilhar em outros sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





  • Patrocinadores

  • Quem Está Navegando

    • Nenhum usuário registrado visualizando esta página.
  • Posts

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • Criar Novo...

Important Information

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.