Galera, sou meio que novo no mundo flash, tenho familiaridade com desenvolvimento, não em as, mais sim em java.
Porém tenho um trabalho a ser feito.
Preciso fazer uma animação em um mapa. eh simples. mais como sou novato. n tenho nem noção de como fazer.
O mapa ja esta tudo dividido certinho, soh tenho duvida no evento.
Preciso fazer com que quando o usuario clicar em uma "divisao" do mapa, a mesma ou se desloque ou de tipo um "zoom" para o usuario ver as informações sobre aquela divisão.
Este esta sendo meu grande problema.
Como vou fazer a divisão voltar a sua posição original qnd o usuario clicar novamente na mesma??
Alguem poderia me ajudar?
Obrigadoo galera.
Publicidade
|
|
Page 1 of 1
Mapa interativo AS3 [RESOLVIDO] Duvida sobre animação
#2
Posted 11 October 2011 - 11:10 AM
Fala fera!
Acho que isso lhe ajudará, transforme as partes do mapa dividido em MovieCllip, (clique sobre a imagem e precione F8).
Feito isso, de um "duplo clique", sobre a imagem, abrirá assim a cena de tal MovieClip, você irá criar duas 2 Layer, 1 vc pode chamar de Zoom, outra de botao.
Na Zoom, vc irá dar um F6 no Frame 10, e lá criará o Zoom, (só aumentar a imagem), e entre o frame 1 e o 10, vc criará uma Interpolação de Movimento.
Volte novamente no frame 1 da layer Zoom, clique sobre a imagem e em propriedades, nos efeitos de cores, selecione Alfa 0%. (assim vc não confudira as 2 imagens, e terá um efeito mais "bacana" ao dar o Zoom).
Na Layer Botão, vc vai no primeiro frame, copia e cola o mapa do tamanho original, e o deixa na mesma posiçaão incial...
Clique sobre ele e transfor o mesmo em botão (pressione F8 para issso), assim feito, na layer botão ainda, vc vai até o frame 10 e pressione F5,
agora vamos as ações:
Clique no 1º Frame da layer Zoom, e precione F9 irá abrir o palco das Actions (AS), lá você colocará:
Clique no 10º Frame da layer Zoom, e precione F9 irá abrir o palco das Actions (AS), lá você colocará:
Agora você irá a layer Botao, clica no primeiro frame, e depois em cima do mapa q esta selecionado, pressione F9 e insira o seguinte código:
volte a cena inicial, pressione Ctrl+Enter e veja se esta da maneira que deseja.
Qualquer dúvida estamos por aqui....
Acho que isso lhe ajudará, transforme as partes do mapa dividido em MovieCllip, (clique sobre a imagem e precione F8).
Feito isso, de um "duplo clique", sobre a imagem, abrirá assim a cena de tal MovieClip, você irá criar duas 2 Layer, 1 vc pode chamar de Zoom, outra de botao.
Na Zoom, vc irá dar um F6 no Frame 10, e lá criará o Zoom, (só aumentar a imagem), e entre o frame 1 e o 10, vc criará uma Interpolação de Movimento.
Volte novamente no frame 1 da layer Zoom, clique sobre a imagem e em propriedades, nos efeitos de cores, selecione Alfa 0%. (assim vc não confudira as 2 imagens, e terá um efeito mais "bacana" ao dar o Zoom).
Na Layer Botão, vc vai no primeiro frame, copia e cola o mapa do tamanho original, e o deixa na mesma posiçaão incial...
Clique sobre ele e transfor o mesmo em botão (pressione F8 para issso), assim feito, na layer botão ainda, vc vai até o frame 10 e pressione F5,
agora vamos as ações:
Clique no 1º Frame da layer Zoom, e precione F9 irá abrir o palco das Actions (AS), lá você colocará:
Stop();
Clique no 10º Frame da layer Zoom, e precione F9 irá abrir o palco das Actions (AS), lá você colocará:
Stop();
Agora você irá a layer Botao, clica no primeiro frame, e depois em cima do mapa q esta selecionado, pressione F9 e insira o seguinte código:
on (press){
play();
}
volte a cena inicial, pressione Ctrl+Enter e veja se esta da maneira que deseja.
Qualquer dúvida estamos por aqui....
#3
Posted 11 October 2011 - 12:44 PM
Eu havia tentando fazer desta forma, porém , não obtive muito exito.
Pesquisei algumas outras forma de fazer, descobri que da pra fazer por AS3..
Vc tem algum exemplo que eu possa me basear??
Mais vlww ae pela resposta.
Pesquisei algumas outras forma de fazer, descobri que da pra fazer por AS3..
Vc tem algum exemplo que eu possa me basear??
Mais vlww ae pela resposta.
#4
Posted 11 October 2011 - 01:09 PM
Segue um exemplo que montei em AS3:
No 1º frame da timeline principal criei 6 movieclips que seriam os suposto mapas, com nomes de instâncias: mapa1, mapa2,...até mapa6
Obs: cada movieclip tem o registration point no centro, assim a escala funciona corretamente no movieclip.
Registration point no centro, funciona como o eixo do objeto:
http://www.free-webmaster-resource.com/tutorials/flash/basics/tutorial006/pic1.gif
Utilizei a classe TweenMax, pra fazer animação via código. No site ensina como utilizar.
http://www.greensock.com
Inseri o código no 1º frame:
Arquivo CS4:
http://www.mediafire...pp6ed85gnq3jpkt
Abraço.
No 1º frame da timeline principal criei 6 movieclips que seriam os suposto mapas, com nomes de instâncias: mapa1, mapa2,...até mapa6
Obs: cada movieclip tem o registration point no centro, assim a escala funciona corretamente no movieclip.
Registration point no centro, funciona como o eixo do objeto:
http://www.free-webmaster-resource.com/tutorials/flash/basics/tutorial006/pic1.gif
Utilizei a classe TweenMax, pra fazer animação via código. No site ensina como utilizar.
http://www.greensock.com
Inseri o código no 1º frame:
//importa as classes de tween
import com.greensock.*;
import com.greensock.easing.*;
/**/
/***********************
* VARIABLES - configura aqui
**********************/
var isCliked:Boolean = false; //vai gerenciar cliques ligado/desligado
var container:Sprite; //vai receber todos os mapas pra poder mover todos de uma vez caso precisar
var totalMap:uint = 6; //quantidade de mapas
var mapList:Array = []; //lista de movieclips
var posList:Array = []; //lista de posições originais de cada mc
var nameMap:String = "mapa"; //name instance
var meioStageW:Number = stage.stageWidth/2; //destino no eixo X do mapa ao ser clicado
var meioStageH:Number = stage.stageHeight/2; //destino no eixo Y do mapa ao ser clicado
var valorEscala:Number = 3; //valor 1 = 100%, 3 = 300% de escala
init(); //inicia aqui!
/***********************
* FUNCTION
**********************/
//começa aqui
function init():void
{
container = new Sprite();
addChild(container);
configuraMapas();
}
function configuraMapas():void
{
//pego todos os mc no stage de acordo com a quantidade e configuro
for(var i:uint=1; i<=totalMap; ++i)
{
var mc:MovieClip = MovieClip(this[nameMap+i]); //pega a instancia de cada mc no stage
mc.addEventListener(MouseEvent.CLICK, onClickMap); //add evento de clique
mc.buttonMode = true; //mostra a mão do cursor
mc.posX = mc.x; //posição original eixo x
mc.posY = mc.y; //posição original eixo y
mc.id = i-1; //passa um id pra recupermos depois
container.addChild(mc); //add em um container pra pode mover todos de uma vez se precisar
posList.push(new Point(mc.x, mc.y)); //pega a posição original de cada mc e armazena num array pr arecuperar depois
mapList.push(mc); //add mapa no array pra recuperar depois
trace(nameMap+i, " - ", "x:"+mc.posX, "y:"+mc.posY, "id:"+mc.id) //output
}
trace("\n* MC mapas cadastrados na lista e configurado!"); //output
trace("\n* Posição de origem de cada mc map cadastrados!"); //output
}
//função de evento MouseEvent.CLICK - aqui vai gerenciar toda mecanica de clique e tweens
function onClickMap(e:MouseEvent):void
{
isCliked = !isCliked; //inverte valor, liga e desliga, liga e desliga,...etc
var mcAtivo:MovieClip = MovieClip(e.currentTarget); //casting pegando o mc clicado
mcAtivo.isCliked = isCliked; //armazeno o valor de clique numa variavel dinamica de cada movieclip ter o seu
trace("\n*", mcAtivo.name, "Está ligado?", mcAtivo.isCliked); //output
//recupero a lista de mapas e aplico o tween adequado
for each(var map:MovieClip in mapList)
{
//se o mc ativo for igual da lista
if(mcAtivo == map)
{
//e estiver ligado
if(mcAtivo.isCliked)
{
//aplica a escala e posiciona no meio do stage
moveMap(mcAtivo, valorEscala, valorEscala, meioStageW, meioStageH);
container.addChild(mcAtivo); //add novamente pra ficar visivel na frente de todos
}
else
moveMap(mcAtivo, 1, 1, posList[mcAtivo.id].x, posList[mcAtivo.id].y); ///volta escala e posição normal se clicado nele mesmo
}
else
{
//desativa/desliga todos os outros mapas da lista voltando ao tamanho e posição original
map.isCliked = false;
moveMap(map, 1, 1, posList[map.id].x, posList[map.id].y);
}
}
}
//aplica tween no objeto, dando escala e posição
function moveMap(mc:MovieClip, escalaX:Number, escalaY:Number, posX:Number, posY:Number):void
{
TweenLite.to(mc, .7, {scaleX:escalaX, scaleY:escalaY, x:posX, y:posY, ease:Expo.easeInOut});
}Arquivo CS4:
http://www.mediafire...pp6ed85gnq3jpkt
Abraço.
#5
Posted 11 October 2011 - 01:26 PM
Cara,
Era examente o que eu estava procurando.
Muito obrigado msm.
Me salvo. kkkk
Vlwwww
Era examente o que eu estava procurando.
Muito obrigado msm.
Me salvo. kkkk
Vlwwww
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Tablet Microsoft Surface mostra vantagens sobre iPad; design e velocidade impressionam
|
Notícias |
Notícias
|
|
|
|
Autores e editores dos EUA discutem com Google sobre livros eletrônicos
|
Notícias |
Notícias
|
|
|
|
E-mails falsos sobre a dengue infectam PC de usuário, diz ministério
|
Notícias |
Notícias
|
|
|
|
tabela de preços
tenho dúvida quanto a cobrança.... |
Freelancers |
andinhomelo
|
|
|
|
Folha promove debate sobre computação em nuvem na quinta; inscreva-se
|
Notícias |
Notícias
|
|
|
|
[Duvida]Filter Gallery e formatos
Tosco ao extremo... |
Photoshop & Image Ready |
isis
|
|
|
|
Não sei por onde começar!!
Adoro animação mas ainda estou começando |
Animação 3D e Modelagem |
braga_lima
|
|
|
|
Dúvida sobre blog..
Como criar o código html para meu template? |
Dreamweaver |
sccabia
|
|
Publicidade
|
|

Help













