Publicidade
|
|
Tsunamis - Ajuda da análise do código PARA TODOS: 2 exemplos ótimos! FLAs disponíveis
#1
Posted 13 February 2008 - 05:11 PM
Foram os melhores que já achei, tanto em funcionamento, quanto na praticidade do código.
Porém, eu preciso de ajuda para compreender algumas coisas no código e executar alterações e possíveis melhoras.
Portanto, aos feras do actionscript: Dêem suas instruções sobre o que é o que neste código.
Sei a maioria do funcionamento, mas me falta alguns detalhes imprescindíveis.
Ademais, creio que será bom para todos como aprendizado também.
Abaixo os links dos SWFs e FLAs:
http://www.idcult.com/estudos/dockmenu.fla
...
http://www.idcult.com/estudos/Tsunami2.fla
...
#2
Posted 13 February 2008 - 06:31 PM
Assim a gente não precisa ficar analisando o código para entende-lo, e depois explica-lo todo detalhadamente.
Faremos isso somente com as partes mais importantes, o que acho mais fácil e rápido.
Abração !
#3
Posted 13 February 2008 - 06:49 PM
Eu pensei nisso, mas achei melhor postar assim por dois motivos:
1 - ao menos 1/3 do código do exemplo dockmenu eu fiquei meio na dúvida, e do exemplo Tsunami eu me perdi mais ainda... Portanto teria que postar o código inteiro. Mais fácil para analisar no Flash, creio... Mesmo para quem entende muito de AS.
2 - para todos terem acesso ao aprendizado e assim evitar a prolongação de perguntas redundantes.
Por exemplo, eu sei que "Array" serve para guardar as informações em strings. No cabeçalho do primeiro exemplo é feita a indicação dos MCs para que o Flash os reconheça:
var clipArray:Array = new Array("clip1", "clip2", "clip3", "clip4", "clip5", "clip6");
Mas, fica difícil eu perguntar de forma "quebrada", pois são várias dúvidas...
Outro exemplo, em um exemplo usa-se Math.abs (absoluto) e em outro usa-se Math.sqrt... Porque? Sim, eu sei, são maneiras diferentes, mas ainda não compreendi... Creio que muitos tem dúvidas assim...
Vou fazer o seguinte. Abaixo segue os códigos de cada FLA. Se puder indicar o que serve, e para que serve, creio que todos ficarão agradecidos.
Ao menos seria legal saber a lógica que, sem saber todas funções fica difícil. Se puder dar uma explanada ao menos sobre o arquivo DOCKMENU que tem o código com menos de 40 linhas seria legal... Existem coisas tipo var xm = Math.sqrt(xxm*xxm+yym*yym); que não dá para entender...
Primeiro código - Tsunami2
function tsunami(target:MovieClip):Void
{
trace(target);
target.onEnterFrame = function()
{
var distanceMin:Number = 60; // benötigter x Abstand der Maus zum Clip für eine Animation
var minScale:Number = 25; // kleinstmöglich Scalierung (hier 25%)
var minAlpha:Number = 10; // kleinstmöglicher alpha Wert (hier 10)
var speed:Number = 0.2; // Geschwindigkeit (kleinerer Wert = langsamere Animation)
var distanceX:Number = Math.abs(target._x - _root._xmouse);
var activeTopY:Number = target._y - 150; // Grenze oberhalb der Clipmitte (hier 150 vom Mittelpunkt der Clips)
var activeBottomY:Number = target._y + 150; // Grenze unterhalb der Clipmitte (hier 150 vom Mittelpunkt der Clips)
if (_root._ymouse > activeTopY && _root._ymouse < activeBottomY)
{
if(distanceX < distanceMin)
{
targetScale = 100 - distanceX;
targetAlpha = 100 - distanceX;
}
else
{
targetScale = minScale;
targetAlpha = minAlpha;
}
}
else
{
targetScale = minScale;
targetAlpha = minAlpha;
if(target._yscale <= minScale+1)
{
delete target.onEnterFrame;
target._yscale = target._xscale = 25
}
}
var addScale:Number = (targetScale - target._yscale);
var addAlpha:Number = (targetAlpha - target._alpha);
target._yscale += addScale * speed;
target._xscale = target._yscale;
target._alpha += addAlpha * speed;
clipPosition();
};
}
function clipPosition():Void
{
for (p = 0; p < clipArray.length; p++)
{
var dis:Number = 5;
this[clipArray[p]]._x = this[clipArray[p - 1]]._x + (this[clipArray[p-1]]._width/2) + (this[clipArray[p]]._width/2) + dis;
}
}
activator_mc.onRollOver = function ()
{
for (i = 0; i < clipArray.length; i++)
{
tsunami(_root[clipArray[i]]);
}
}
for (i = 0; i < clipArray.length; i++)
{
this[clipArray[i]]._xscale = this[clipArray[i]]._yscale = 25;
this[clipArray[i]]._alpha = 10;
clipPosition()
this[clipArray[i]].onRollOver = function ()
{
var colorRollOver:Color = new Color(this);
colorRollOver.setRGB(0x000000);
}
this[clipArray[i]].onRollOut = function ()
{
var colorRollOut:Color = new Color(this);
colorRollOut.setRGB(0xFF0030);
}
}
[/color]
Segundo código - Dockmenu
centerx = Stage.width/2;
centery = Stage.height/2;
menuholder = createEmptyMovieClip("menuholder", -1);
menuholder._y = centery;
menucount = 10;
menuitems = [];
miwidth = 20;
miborder = 1;
startx = centerx-((menucount-1)*(miwidth+miborder))/2;
trace(startx);
for (var i = 0; i<menucount; i++) {
var menuitem = menuholder.attachMovie("menuitem", "menu"+i, i);
menuitem._x = startx+i*(miwidth+miborder);
menuitem.id = i;
menuitem.onRollOver = function() {
_root.selected = this;
};
menuitems.push(menuitem);
}
onEnterFrame = function () {
var width = 0;
for (var i = 0; i<menucount; i++) {
var xxm = menuitems[i]._xmouse;
var yym = menuitems[i]._ymouse;
var xm = Math.sqrt(xxm*xxm+yym*yym);
if (xm<50) {
menuitems[i]._xscale = menuitems[i]._yscale += ((200-xm)-menuitems[i]._yscale)/3;
} else {
menuitems[i]._xscale = menuitems[i]._yscale += (100-menuitems[i]._yscale)/3;
}
width += menuitems[i]._width;
}
width += (menucount-1)*miborder;
var xpos = Math.round(centerx-width/2);
for (var i = 0; i<menucount; i++) {
xpos += menuitems[i-1]._width/2+miborder+menuitems[i]._width/2;
menuitems[i]._x = xpos;
}
};
[/color]
#4
Posted 14 February 2008 - 12:12 AM
Resolvi comentar o código, quem descordar ou não entender por favor me avise. São 24:10 e eu trabalhei o dia todo, então posso ter esquecido ou errado algum detalhezinho ok ?
Mas vamos lá
align = bottom;
centerx = Stage.width/2;
centery = Stage.height/2;
menuholder = createEmptyMovieClip("menuholder", -1);
menuholder._y = centery;
menucount = 10;
menuitems = [];
miwidth = 20;
miborder = 10;
startx = centerx-((menucount-1)*(miwidth+miborder))/2;
trace(startx);
// Enquanto i for menor que o valor da variavel menucount continua repetindo a função e acrescentando +1 ao valor de i
for (var i = 0; i<menucount; i++) {
// Aqui ele cria uma nova variavel chamada "menuitem" que cria um MovieClip chamado "menuholder"
// Dentro desse MovieClip "menuholder" é criado adicionado o seu MovieClip que está na library.
// E ele é renomeado para o nome dele + o valor do i.
var menuitem = menuholder.attachMovie("menuitem", "menu"+i, i);
// Aqui a gente estabelece sua posição no eixo X baseada no valor de i e das outras duas variáveis
menuitem._x = startx+i*(miwidth+miborder);
// Estabelece uma ID para cada MovieClip inserido para que o mesmo seja acessado posteriormente
menuitem.id = i;
// Mudei essa parte para que vocês vejam ao colocarmos o mouse sobre cada um deles
menuitem.onRollOver = function() {
trace (this.id);
};
// Finaliza a inserção do "menuintem" no array.
menuitems.push(menuitem);
}
// Cria uma função em loop ao carregar o frame
onEnterFrame = function () {
// Cria uma variavel chamada "width" com valor zero
var width = 0;
// Enquanto i for menor que o valor da variavel menucount continua repetindo a função e acrescentando +1 ao valor de i
for (var i = 0; i<menucount; i++) {
// Cria a variável xxm baseada na posição do mouse em X em relaçao ao MovieClipinserido
var xxm = menuitems[i]._xmouse;
// Cria a variável yym baseada na posição do mouse em Y em relaçao ao MovieClipinserido
var yym = menuitems[i]._ymouse;
// Cria uma variável que tem o valor da raiz quadrada da soma dos quadrados de xxm e yym
var xm = Math.sqrt(xxm*xxm+yym*yym);
// Se o valor de xm for menor que 50 é porque o mouse está perto do MovieCLip
if (xm<50) {
// A escala em X vai ser igual a escala em Y
// Executa o cálculo para gerenciar a escala, aqui cada um pode alterar e deixar ao seu gosto
menuitems[i]._xscale = menuitems[i]._yscale += ((200-xm)-menuitems[i]._yscale)/3;
} else {
// Caso o valor de xm seja maior que 50 permanece com a escala de 100%.
menuitems[i]._xscale = menuitems[i]._yscale += (100-menuitems[i]._yscale)/3;
}
// Essa parte não tem funcionalidade, pode remover.
width += menuitems[i]._width;
}
// Define o valor da variavel "width" baseado na quantidade de MovieClips - 1 * a variável miborder
width += (menucount-1)*miborder;
// Cria uma variável xpos que tem o valor do calculo da variável centerx - a variável width/2
var xpos = Math.round(centerx-width/2);
// Enquanto i for menor que o valor da variavel menucount continua repetindo a função e acrescentando +1 ao valor de i
for (var i = 0; i<menucount; i++) {
// Aumenta o valor da variável xpos para cada novo MovieClip criado, baseado nas coordenadas do MovieClip criado anteriormente e nas // variáveis criadas no começo da programação
xpos += menuitems[i-1]._width/2+miborder+menuitems[i]._width/2;
// Estabelece a posição em X de cada MovieClip como sendo o valor de xpos
menuitems[i]._x = xpos;
}
};
Bom galera, se alguem ai quiser perguntar sobre alguma explicação sintam-se a vontade.
Abraço
#5
Posted 14 February 2008 - 01:06 AM
Vou descansar agora tmb., pois já estou a muitas horas acordado.
Mas, já copiei e amanhã vou ficar estudando este código com as explicações.
Espero que a galera aproveite, pois é uma excelente oportunidade de aprendizado.
Muito obrigado!
Louzada
#6
Posted 14 February 2008 - 08:21 AM
Bom trabalho Rafael
#8
Posted 15 February 2008 - 07:30 AM
acho que ficaria um topico bem completo...pois tem gente que não sabe como faze isso...
valewww
#9
Posted 15 February 2008 - 01:34 PM
Não entendi... Como assim colocar texto em cada botão e actions para carregar alguma coisa?
Ainda estou estudando o código "DOCKMENU", mas este código funciona assim: Você o coloca no primeiro frame do arquivo Flash e o Action cria o menu e suas funções. Não existe objeto no Stage, somente 1 na biblioteca.
Para carregar um swf ou imagem vc. usa loadMovie neste mesmo código, basta acrescentar.
Mas, este não é o foco deste tópico... E sim aprendermos como funciona um menu Tsunami com estes códigos disponíveis.
Aliás, encontrei estes códigos em sites alemães e ingleses e são códigos muito bons. Por isso os coloquei aqui para a análise dos experts em ActionScript, como o Rafael, por exemplo.
Fique à vontade para comentar o código ou definir melhor sua questão. (ainda não entendi *rs)
Abraços,
Louzada
acho que ficaria um topico bem completo...pois tem gente que não sabe como faze isso...
valewww
#10
Posted 15 February 2008 - 06:41 PM
Mas por enquanto acho que devíamos manter o foco e ir tirando as dúvidas que venho recebendo também por MP. O ideal seria mesmo o pessoal todo que ta me mandando colocar aqui para que outros usuário possam compartilhar também já que é este o propósito do tópico.
Agradelo imensamente o elogio, mas estou MUITO longe de ser expert em ActionScript hehehehe.
Tem gente muito melhor do que eu aqui no forum, o que torna esse ambiente de Flash e ActionScript extremamente rico.
Acho que o corpo de profissionais veteranos do MX dão uma ótima oportunidade de aprendizado para todos os membros que estão procurando aprender e tirar dúvidas, assim como eu faço, sugiro que aproveitem ao máximo e sulguem as coisas que aprenderam, porque é uma oportunidade única.
Mas o que eu sei e consigo compartilhar com o resto de vocês já é bem satisfatório pra mim e espero que pra vocês tambpem !
Abraço gente !
#11
Posted 19 February 2008 - 09:09 PM
Oi amigos, eu estudei o código do arquivo dockmenu.fla, comentado pelo Rafael, mas não consegui entender como poderia ser útil então desisti dele (rs). Explico. O código cria um mesmo botão duplicado (que é um mesmo MC da biblioteca). Mesmo que eu tenha vários MCs na biblioteca eu não os consegui encaixar de forma completa no arquivo... Então... Como não consegui fazer um código que o flash compreendesse passei a estudar o outro arquivo.
Mas, seria legal uma explicação, pois é o código mais enxuto e funcional que já vi para Tsunamis.
Rafael, só uma referência ao código comentado:
width += menuitems[i]._width;
}
Essa parte é a que determina o ponto central do menu tsunami. Ex: Se o menu tem 6 botões o ponto central fica entre o botão 3 e 4.
................................................................................
...............................................................................
Bem, vamos ao código do outro Tsunami.
Abaixo é o código do arquivo Tsunami2.fla que foi postado na abertura do tópico e continua lá para download.
Eu comentei o que compreendi. Quem puder completar, seria ótimo. Principalmente sobre o ponto central desse tsunami, porque eu não consegui mudá-lo...
function tsunami(target:MovieClip):Void
{
trace(target);
target.onEnterFrame = function()
{
var distanceMin:Number = 100; // Distância X exigida do cursor do mouse entre os MCs p/ a animação
var minScale:Number = 70; // escala mínima (aqui 70%)
var minAlpha:Number = 15; // valor mínimo para o alfa (aqui 15%)
var speed:Number = 0.2; // Velocidade, valor menor = animação mais lenta e vice-versa (obs: só vai até 0.9)
var distanceX:Number = Math.abs(target._x - _root._xmouse);
//var distanceX:Number = Math.sqrt(target._x - _root._width);
var activeTopY:Number = target._y - 150; // Borda sobre o meio de clipe (aqui 150% dos MCs)
var activeBottomY:Number = target._y + 150; // Borda debaixo do meio de clipe (aqui 150% dos MCs)
if (_root._ymouse > activeTopY && _root._ymouse < activeBottomY)
{
if(distanceX < distanceMin)
{
targetScale = 200 - distanceX; // Tamanho máximo do ZOOM / Scale
targetAlpha = 100 - distanceX; // Máximo de alfa
}
else
{
targetScale = minScale; // Volta a escala de origem
targetAlpha = minAlpha; // Volta ao alfa de origem
}
}
else
{
targetScale = minScale;
targetAlpha = minAlpha;
if(target._yscale <= minScale+1)
{
delete target.onEnterFrame;
target._yscale = target._xscale = 50 // Não entendi esse valor...
}
}
var addScale:Number = (targetScale - target._yscale);
var addAlpha:Number = (targetAlpha - target._alpha);
target._yscale += addScale * speed;
target._xscale = target._yscale;
target._alpha += addAlpha * speed;
clipPosition();
};
}
// Função que determina a posição do Movie Clip (obs: não entendi completamente...)
function clipPosition():Void
{
for (p = 0; p < clipArray.length; p++)
{
var dis:Number = 5;
this[clipArray[p]]._x = this[clipArray[p - 1]]._x + (this[clipArray[p-1]]._width/2) + (this[clipArray[p]]._width/2) + dis;
}
}
// Função que ativa o Tsunami
activator_mc.onRollOver = function ()
{
for (i = 0; i < clipArray.length; i++)
{
tsunami(_root[clipArray[i]]);
}
}
// No geral as funções abaixo determinam o valor inicial do menu e algumas cores posteriores etc
for (i = 0; i < clipArray.length; i++)
{
this[clipArray[i]]._xscale = this[clipArray[i]]._yscale = 70; // Função que determina o valor inicial da escala do menu
this[clipArray[i]]._alpha = 10; // Função que determina o valor inicial da escala do alfa
clipPosition()
this[clipArray[i]].onRollOver = function () // Função para determinar as cores
{
var colorRollOver:Color = new Color(this);
colorRollOver.setRGB(0xF04A22);
}
this[clipArray[i]].onRollOut = function ()
{
var colorRollOut:Color = new Color(this);
colorRollOut.setRGB(0xF8A48F);
}
}
Bem, é isso. Vamos continuar aprendendo?
Abraços,
Louzada
#12
Posted 20 February 2008 - 05:57 PM
Erro meu mesmo, como falei, fiz isso meio tarde e avisei que poderiam existir erros !!!
Foi ótimo você ter visto e alertado todo mundo...
Erro meu hehehe...
Abraço !
#13
Posted 21 February 2008 - 01:23 AM
Mas, em relação aos códigos, sabe como fazer o posicionamento do registro do menu Tsunami2.fla? Ou, conseguir colocar botões adicionais no menu Dockmenu.fla? (dá para entender nas respostas anteriores).
Eu não descobri mais nada... Ou melhor, não compreendi.
Abraço!
Edu
Erro meu mesmo, como falei, fiz isso meio tarde e avisei que poderiam existir erros !!!
Foi ótimo você ter visto e alertado todo mundo...
Erro meu hehehe...
Abraço !
#14
Posted 21 February 2008 - 01:59 AM
a variável no caso menucount que controla a quantidade de cópias que serão feitas do MovieClip que está na library.
O que você deve estar se perguntando é o que que adianta fazer cópias se o que desejamos são botões diferente não é ?
Nessa parte ele chama o MovieClip da library, coloca no Stage e muda seu nome:
O que podemos fazer é bem simples: Basta criarmos 10 itens para nosso mennu.
E na library, alterarmos a propriedade de cada um, colocando nomes diferentes para que possam ser chamados para o Stage alterando o código acima para este:
Dessa forma, ele vai começar chamando o ítem menuitem0 e terminará chamando o ítem menuitem9 pois segundo a variável menucount só existirão 10 ítens no menu.
Para entender melhor de uma olhada nesse arquivo que eu fiz esta alteração:
http://rapidshare.com/files/93585716/Dock.rar.html
Abração !
#15
Posted 21 February 2008 - 02:37 AM
E bem feitos também...
Abraços!
#16
Posted 22 February 2008 - 02:19 PM
Eu fiz esses dois menus com base nos menus do tópico.
Qual vocês acham que ficou melhor? Me dão sua opinião? (obs: estou disponibilizando os links, pois não iriam aparecer aqui devido ao texto dinâmico dentro dos menus que carrega o texto de uma biblioteca).
http://idcult.com/estudos/dockmenu_new.swf
http://idcult.com/estudos/Tsunami2_new.swf
Agora, vamos falar sobre os bugs ainda existentes...
No menu "dockmenu_new" quando eu aumento o midborder de 1 para 5 vejam o que acontece... Do botão vFX para o botão Making Of o espaço fica maior... Porquê? Eu refiz o botão, dei umas fuçadas, mas não descobri ainda...
Também existe um dilema que, ainda não fucei, mas já me atormenta (*rs). Como eu determino o ponto exato em que o menu deve ser carregado? Mistério... rsrsrs (obs: para não dizer que não fiz nada eu mudei o "align = botton;" para "align = 500;" e em _y tmb. mudei o valor para pixels... Parece que essa é a solução...)
No menu "Tsunami2_new" não existe nenhum bug digno de nota. A única coisa que gostaria de fazer é que o ponto de registro deste menu fosse igual ao do "dockmenu_new"... No dockmenu o registro é no centro do menu; No Tsunami2 o registro é na esquerda (0 do primeiro botão do menu)... Não é possível arrumar isso? Foi a única coisa que ainda não descobri como fazer neste menu (creio).
Bom, os menus estão quase no ponto! Logo todos terão aprendido e poderão adaptar à gosto pra seus sites.
Agradecimento especial ao Rafael. valeu a dica anterior sobre o menucount (que controla a quantidade de clips etc).
#17
Posted 24 February 2008 - 02:55 AM
Alguém sabe como resolver o ponto de registro do menu "Tsunami2"?
Ainda não consegui localizar o registro no actionscript sozinho...
Ps: Os códigos estão no tópico, assim como os *Flas.
Abraços,
Louzada
#18
Posted 25 February 2008 - 07:30 PM
Alguém saberia me dizer como fazer o que perguntei anteriormente?
Sabe, o trabalho que eu estava utilizando este tipo de menu já foi aprovado e está sendo finalizado, mas eu gostaria muito de saber... Pois, deve ser algo simples.
Geralmente as coisas mais difíceis de resolver são simples...
Abraços e fico no aguardo e algum retorno...
Louzada
#19
Posted 25 February 2008 - 08:03 PM
Repare que no Menu Tsunami2 eles já estão no palco, diferente do que ocorre com o Dockmenu.
Pelo que vi eles não precisam ser alinhados no Stage dinamicamente, quem faz isso é você no momento que coloca-los lá.
Se você mudar todos eles de posição eles ficarão na posição que você os colocou, o que mudará será somente a escala, que é aleterada dinamicamente.
Abraços !
#20
Posted 25 February 2008 - 08:35 PM
Sim, você tem razão. Porém, repare em dockmenu que, quando um botão aumenta de tamanho no mouseover, os outros se deslocam para ambos os lados. Isto é, esquerda e direita. Já no menu Tsunami2 isso não ocorre.
Veja...
No dockmenu o registro dos botões é controlado com este código:
width += menuitems[i]._width;
}
Em Tsunami2 o centro é controlado com este código:
// Função que determina a posição do Movie Clip
function clipPosition():Void
{
for (p = 0; p < clipArray.length; p++)
{
var dis:Number = 5;
this[clipArray[p]]._x = this[clipArray[p - 1]]._x + (this[clipArray[p-1]]._width/2) + (this[clipArray[p]]._width/2) + dis;
}
}
Ambos os códigos funcionam a seu modo. E, o que eu gostaria, é que os botões parecessem estar dentro de um MC que está com o registro no centro... Daí, os botões à esquerda do registro, quando o mouse estiver sobre os da direita, se deslocariam...
Como eu faço para que o deslocamento seja tanto para esquerda quanto para direita?
Se souber como fazer me diz?
Abraço,
Louzada
#21
Posted 25 February 2008 - 08:57 PM
Sim, você tem razão. Porém, repare em dockmenu que, quando um botão aumenta de tamanho no mouseover, os outros se deslocam para ambos os lados. Isto é, esquerda e direita. Já no menu Tsunami2 isso não ocorre.
Veja...
No dockmenu o registro dos botões é controlado com este código:
width += menuitems[i]._width;
}
Em Tsunami2 o centro é controlado com este código:
// Função que determina a posição do Movie Clip
function clipPosition():Void
{
for (p = 0; p < clipArray.length; p++)
{
var dis:Number = 5;
this[clipArray[p]]._x = this[clipArray[p - 1]]._x + (this[clipArray[p-1]]._width/2) + (this[clipArray[p]]._width/2) + dis;
}
}
Ambos os códigos funcionam a seu modo. E, o que eu gostaria, é que os botões parecessem estar dentro de um MC que está com o registro no centro... Daí, os botões à esquerda do registro, quando o mouse estiver sobre os da direita, se deslocariam...
Como eu faço para que o deslocamento seja tanto para esquerda quanto para direita?
Se souber como fazer me diz?
Abraço,
Louzada
#22
Posted 29 February 2008 - 06:46 AM
Construí o menu certinho e funcional, porém quando eu coloco a função onPress ou onRelease uma das funções do Tsunami fica anulada. A a função que faz com que um box apareça em volta do texto no mouseOver.
Abaixo segue os códigos, mas vou resumir... O código do tsunami está no primeiro frame da cena principal. O código do release do botão também. Mas, o código que faz com que o box apareça está dentro do botão. Isto é... É um MC dentro de outro MC. Talvez dê para resolver com level, mas não sei como fazer...
Se puderam ajudar... Já está quase pronto, só falta resolver esse pepino...
Vejam o código do Tsunami:
function tsunami(target:MovieClip):Void
{
trace(target);
target.onEnterFrame = function()
{
var distanceMin:Number = 80;
var minScale:Number = 100;
var minAlpha:Number = 30;
var speed:Number = 0.2;
var distanceX:Number = Math.abs(target._x - _root._xmouse);
var activeTopY:Number = target._y - 80;
var activeBottomY:Number = target._y + 80;
if (_root._ymouse > activeTopY && _root._ymouse < activeBottomY)
{
if(distanceX < distanceMin)
{
targetScale = 200 - distanceX;
targetAlpha = 100 - distanceX;
}
else
{
targetScale = minScale;
targetAlpha = minAlpha;
}
}
else
{
targetScale = minScale;
targetAlpha = minAlpha;
if(target._yscale <= minScale+1)
{
delete target.onEnterFrame;
target._yscale = target._xscale = 100
}
}
var addScale:Number = (targetScale - target._yscale);
var addAlpha:Number = (targetAlpha - target._alpha);
target._yscale += addScale * speed;
target._xscale = target._yscale;
target._alpha += addAlpha * speed;
clipPosition();
};
}
function clipPosition():Void
{
for (p = 0; p < clipArray.length; p++)
{
var dis:Number = 5;
this[clipArray[p]]._x = this[clipArray[p - 1]]._x + (this[clipArray[p-1]]._width/2) + (this[clipArray[p]]._width/2) + dis;
}
}
activator_mc.onRollOver = function ()
{
for (i = 0; i < clipArray.length; i++)
{
tsunami(_root[clipArray[i]]);
}
}
E o código que faz o box ativo:
m1 = new mx.transitions.Tween(home_quad, "_alpha", Regular.easeOut, home_quad._alpha, 100, .3, true);
};
home_quad.onRollOut = function(Void):Void
{
ResetAll();
};
function ResetAll():Void
{
m1 = new mx.transitions.Tween(home_quad, "_alpha", Regular.easeOut, home_quad._alpha, 0, .3, true);
};
E a função do Release colocada no primeiro frame da timeline:
if(executou==false){
executou=true
loadMovie("reel.swf", "alvo_submenus")
}
};
#23
Posted 29 February 2008 - 05:06 PM
Vou tentar explicar o post anterior de forma resumida.
Obs: Estou usando o menu Tsunami2.
Tenho ações de onRelease na timeline da cena principal para os botões bt1, bt2, bt3, etc (com outros nomes, estes são só para facilitar). Dentro de cada botão tenho 2 MCs, um para o texto (mc_texto1) e outro para o box (mc_box1) em volta do texto. E tmb. tenho ações dentro destes mesmos botões para executar a animação do "mc_box1".
Porém a ação interna do botão interfere na ação externa, da timeline e vice-verca. Alguma solução? Preciso meeeesmo de uma solução... Obrigado a todos!
Ps: Aqui segue o link do menu, só para terem uma idéia da animação do box. Abraços!
http://idcult.com/estudos/menu.swf
#24
Posted 29 February 2008 - 09:15 PM
Abração !
#25
Posted 01 March 2008 - 12:02 AM
Pegue todos os arquivos que estão neste diretório:
http://idcult.com/sf/
#26
Posted 07 March 2008 - 05:48 AM
Fiz como pediu, "upei" os arquivos... Conseguiu olhar o FLA?
Preciso corrigir isso e não tem ninguém para dar uma força... Meu amigo do RJ que mexe com Flash (o Kleber) tá viajando e aqui em SP os que eu conheço só ajudam se recebem por isso. Legal não? rsrsrs
Por isso, espero poder contar contigo... Obrigadão!
Abraço!
Edu
#27
Posted 08 March 2008 - 06:49 PM
O comando relacionado com a ação do MovieClip filho não vai funcionar....
Faça um quadrado fake, invisível e retire as ações do MovieClip pai, e coloque nesse novo MovieClip invisível, localizado sobre o MovieClip.
Abraço !
#28
Posted 09 March 2008 - 04:54 AM
Já tentei isso antes e tentei agora novamente. Não funciona. A não ser que esqueci algo...
Mas, pense. Mesmo que funcionasse, como eu faria para que o quadrado fake crescesse juntamente com as letras? Dentro do código tsunami não é póssível, pois ele adicionaria o quadrado fake à lista de botões e o colocaria ao lado dos outros e não por baixo... Com mxtransitions fica fora de sincronia...
Alguma dica?
Se souber como me dá um toque.
Abcs,
Louzada
O comando relacionado com a ação do MovieClip filho não vai funcionar....
Faça um quadrado fake, invisível e retire as ações do MovieClip pai, e coloque nesse novo MovieClip invisível, localizado sobre o MovieClip.
Abraço !
Share this topic:
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Split
Ajuda !!! |
ASP e ASP.Net |
bimpercursso
|
|
|
|
Saiba como usar o mouse para arrumar a bagunça das janelas no Windows 7
|
Notícias |
Notícias
|
|
|
|
Empresas correm para ter aplicativos em tablets
|
Notícias |
Notícias
|
|
|
|
Problema para recortar tamanho para background
|
Fireworks |
Maiden2004
|
|
|
|
tamanho ideal pra img pra web?
fazendo album de fotos ajuda ? |
Fireworks |
yan0202
|
|
|
|
Rede de varejo britânica para de vender celular Sony Ericsson
|
Notícias |
Notícias
|
|
|
|
Google pagará US$ 900 mi para fornecer serviços ao
Folha Online |
Notícias |
TiTi Celestino
|
|
|
|
Ajuda urgente...
como carregar uma pagina maior... |
Dreamweaver |
titodj
|
|
Publicidade
|
|

Help













