Assim, nós criamos um campo de texto via código AS - agora vamos fazer o mesmo com alguns movieclips (os quais nós, na verdade, estaremos usando como botões!)
Cole este grupo de ações debaixo das outras:
// criando nossos botões
for (i=1; i<5; i++) {
_root.createEmptyMovieClip("botao"+i, 100+i);
_root["botao"+i].lineStyle(2, 0x000000);
_root["botao"+i].beginFill(0xFF0000)
_root["botao"+i].moveTo(0, 0);
_root["botao"+i].lineTo(50, 0);
_root["botao"+i].lineTo(50, 50);
_root["botao"+i].lineTo(0, 50);
_root["botao"+i].lineTo(0, 0);
_root["botao"+i]._x = 250+ (i*60);
_root["botao"+i]._y = 25;
}
Explicando o código
Novamente, vamos através dele bit por bit.
for(i=1;i<5;i++){
Isto é um loop for e faz o Flash repetir todo o código debaixo dele 4 vezes - com nossa variável "i" aumentada por 1 a cada vez.
Vamos analisar esta linha um pouco mais.
No começo do loop for configuramos o valor inicial de nossa variável "i" (i=1).
Ótimo, assim i=1 - e agora? Agora dizemos ao Flash que queremos que ele continue o loop for até que certa condição seja encontrada - i<5.
Dizemos então ao Flash o que fazer a cada vez que o código dentro do loop for for completado - i++. Isto é o mesmo que dizer "tome o valor corrente de i e aumente i em 1".
Assim, o Flash vai ao loop for e diz "agora então deixe-me ver, se aparecer aquele i=1 que todos sabemos ser menor do que 5, então posso ir em frente e rodar todo este código contido neste loop for aqui. Assim, ele roda através de todo o código dentro do loop for e quando chega ao final aumenta i em 1 e diz "hmmm, parece que i permanece menor do que 5... Vou rodar através de todo este código novamente". O Flash continua a falar com ele mesmo e a rodar o código no nosso loop for até que eventualmente i=5 e ele diz "hei! i deixou de ser menor do que 5... Terminei com este loop!".
Como (eu espero) você pode ver - loops for são muito poderosos e poupadores de tempo real.
Certo, vamos dar uma olhada no resto desse código.
_root.createEmptyMovieClip("botao"+i, 100+i);
Isto cria um movieclip em branco em nossa linha de tempo principal. Dependendo do que rode através do loop for, o novo movieclip terá um nome de instância de botao1 ou botao2 etc e será alocado numa profundidade de 101 ou 102 etc.
OK, assim temos um movieclip em branco, mas nós queremos traçar alguma coisa nele - uma caixa, por exemplo. As próximas 7 linhas do código faz exatamente isto. Nós (eu) não temos realmente tempo de examinar detalhes neste momento sobre o novo API de desenho do MX. Somente fique ciente de que o código ali traça 4 linhas com largura de 2, de cor preta [lineStyle(2, 0x000000)] e então preenche com vermelho [beginFill(0xFF0000)].
Então as últimas 2 linhas simplesmente posicionam nossos novos movieclips no palco.
_root["botao"+i]._x=250+ (i*60);
_root["botao"+i]._y=25;
Assim, a primeira vez que o Flash segue através do loop for, cria um novo movieclip com um nome de instância de botao1 e o posiciona no palco numa posição x de 310 e numa posição y de 25. A segunda vez que ele seguir através do loop for, criará um novo movieclip com nome de instância de botao2 e o posicionará no palco numa posição x de 370 e numa y de 25.
Isso é um código bem sério. Não se estresse se ele não fizer sentido de imediato para você.
Teste seu filme. Você deve ver 4 quadrados no canto superior direito. Elas devem ser vermelhas com bordas pretas.
Assim, temos 4 movieclips no palco com nomes de instância de botao1, botao2, botao3 e... oh, claro… botao4. Outra coisa nova no Flash MX é que nós podemos agora atribuir ações a botões movieclips, como onRelease - veremos isto em um segundo. Primeiro vamos criar novas variáveis em nosso arquivo de texto que serão carregados por dois de nossos botões. Volte ao seu arquivo.txt e adicione mais essas linhas:
&meuTexto1=este é o texto que será carregado quando o usuário clicar no botão1.&
&meuTexto2=Eu sou mais um texto. Na verdade não queria estar aqui, mas tenho que estar porque o usuário clicou no botão2 - posso ir pra casa agora?&
De volta ao Flash
Agora, de volta ao Flash, adicione esta ação debaixo de todas as outras:
botao1.onRelease = function() {
meuTexto = meuTexto1;
};
botao2.onRelease = function() {
meuTexto = meuTexto2;
};
Como você pode ver, demos ações a dois dos nossos movieclips. O Flash gentilmente responde mudando o cursor do mouse para o dedo quando o usuário passar com ele sobre os quadrados, permitindo assim que clique sobre elas. Teste seu filme e clique nos 2 botões mais à esquerda. Você deverá ver os 2 novos textos exibidos no seu campo de texto.
Inserindo imagens
Bem, isso tudo é muito legal, mas nós queremos algumas imagens. Pegue 4 fotos, recorte e redimensione todas até que fiquem com uma largura de 100 pixels de largura por 150 pixels de altura. Salve todas como JPEGs e certifique-se de que a caixa "progressive" ("progressiva") não esteja marcada. Salve todas as quatro imagens na mesma pasta e nomeie-as imagem1.jpg, imagem2.jpg etc.
Bom. Outra característica mais que é nova no MX é que você pode carregar JPGs e outras coisas enquanto roda. Vamos fazer isto agora.
Cole estas ações debaixo das outras:
_root.createEmptyMovieClip("alvoFoto1", 200);
_root.createEmptyMovieClip("alvoFoto2", 201);
alvoFoto1._x=300;
alvoFoto1._y=200;
alvoFoto2._x=450;
alvoFoto2._y=200;
loadMovie("imagem1.jpg","alvoFoto1");
loadMovie("imagem2.jpg","alvoFoto2");
Vamos dar uma olhada nestas ações
As primeiras 2 linhas cria 2 novos movieclips (como antes) e lhes dá nomes de instância de "alvoFoto1" e "alvoFoto2". As próximas quatro linhas somente posicionam nossos novos movieclips no palco. Nas últimas 2 linhas você verá a ação loadMovie. O Flash MX permite que nós carreguemos jpgs do mesmo modo que você já podia carregar arquivos swf. Neste caso, estamos carregando cada imagem dentro de um alvo movieclip (ao invés de um nível) e o Flash alinha o canto superior esquerdo de nossas imagens com o ponto de registro dos movieclips "alvoFoto" que acabamos de criar.
Salve seu filme e então teste-o. Grande! Agora vamos adicionar ações nos nossos 2 botões finais, o que permitirá ao usuário mudar as imagens exibidas. Adicione isto abaixo de todas as outras ações.
imagem1Loaded = true;
imagem2Loaded = true;
botao3.onRelease = function() {
if (imagem1Carregada == true) {
loadMovie("imagem3.jpg", "alvoFoto1");
imagem1Carregada = false;
} else {
loadMovie("imagem1.jpg", "alvoFoto1");
imagem1Carregada = true;
}
};
botao4.onRelease = function() {
if (imagem2Carregada == true) {
loadMovie("imagem4.jpg", "alvoFoto2");
imagem2Carregada = false;
} else {
loadMovie("imagem2.jpg", "alvoFoto2");
imagem2Carregada = true;
}
};
Vamos ver esse código com mais calma
imagem1Carregada=true;
imagem2Carregada=true;
Simplesmente cria um par de variáveis.
Em seguida diremos ao Flash o que fazer se o botao3 for clicado. Isto, no entanto, é um pouco mais complicado. Queremos que o Flash primeiramente verifique se uma condição é verdadeira ou não e então faça uma das duas coisas de acordo. Neste exemplo, nós verificamos para ver se a imagem1 está carregada (via nossa variável imagem1Carregada). Se estiver, então o Flash carregará a imagem3 dentro da nossa alvoFoto1 e configurará nossa variável imagem1Carregada para falso. Se ela não for, então o Flash carregará a imagem1 dentro da alvoFoto1 e configurar a variável imagem1Carregada para verdadeiro. O que isto significa é que você pode ficar clicando no botão repetidamente e o Flash irá carregando imagens alternadamente. O código para o botao4 faz a mesma coisa.
Teste seu filme e clique em todos os botões.
Quase feito
Inserindo áudio
Vamos introduzir algum áudio. O Flash MX permite que carreguemos dinamicamente mp3s e é justamente isto que vamos fazer. Copie seu mp3 favorito na mesma pasta.
Mude o nome do seu arquivo mp3 para "arquivo.mp3".
Acrescente estas ações sob todas as outras.
mySound=new Sound();
mySound.loadSound("arquivo.mp3",true);
mySound.start(0,0);
A linha 1 cria um novo objeto som. A linha 2 carrega nosso "arquivo mp3" externo dentro deste objeto som e configura streaming (transmitir ininterruptamente) para verdadeiro. A linha 3 inicia nosso som. Teste seu filme. Se o som não funcionar, então tente um arquivo mp3 diferente.
OK, penso que é mais do que o bastante por agora
Espero que você possa ver algumas vantagens na utilização das capacidades "dinâmicas" do Flash MX (não menos de qual é a facilidade na qual você pode mudar áudio, imagens e texto sem ter até mesmo que abrir seu fla).
Pergunta
tatuweb
Criando movieclips dinamicamente
Assim, nós criamos um campo de texto via código AS - agora vamos fazer o mesmo com alguns movieclips (os quais nós, na verdade, estaremos usando como botões!)
Cole este grupo de ações debaixo das outras:
// criando nossos botões
for (i=1; i<5; i++) {
_root.createEmptyMovieClip("botao"+i, 100+i);
_root["botao"+i].lineStyle(2, 0x000000);
_root["botao"+i].beginFill(0xFF0000)
_root["botao"+i].moveTo(0, 0);
_root["botao"+i].lineTo(50, 0);
_root["botao"+i].lineTo(50, 50);
_root["botao"+i].lineTo(0, 50);
_root["botao"+i].lineTo(0, 0);
_root["botao"+i]._x = 250+ (i*60);
_root["botao"+i]._y = 25;
}
Explicando o código
Novamente, vamos através dele bit por bit.
for(i=1;i<5;i++){
Isto é um loop for e faz o Flash repetir todo o código debaixo dele 4 vezes - com nossa variável "i" aumentada por 1 a cada vez.
Vamos analisar esta linha um pouco mais.
No começo do loop for configuramos o valor inicial de nossa variável "i" (i=1).
Ótimo, assim i=1 - e agora? Agora dizemos ao Flash que queremos que ele continue o loop for até que certa condição seja encontrada - i<5.
Dizemos então ao Flash o que fazer a cada vez que o código dentro do loop for for completado - i++. Isto é o mesmo que dizer "tome o valor corrente de i e aumente i em 1".
Assim, o Flash vai ao loop for e diz "agora então deixe-me ver, se aparecer aquele i=1 que todos sabemos ser menor do que 5, então posso ir em frente e rodar todo este código contido neste loop for aqui. Assim, ele roda através de todo o código dentro do loop for e quando chega ao final aumenta i em 1 e diz "hmmm, parece que i permanece menor do que 5... Vou rodar através de todo este código novamente". O Flash continua a falar com ele mesmo e a rodar o código no nosso loop for até que eventualmente i=5 e ele diz "hei! i deixou de ser menor do que 5... Terminei com este loop!".
Como (eu espero) você pode ver - loops for são muito poderosos e poupadores de tempo real.
Certo, vamos dar uma olhada no resto desse código.
_root.createEmptyMovieClip("botao"+i, 100+i);
Isto cria um movieclip em branco em nossa linha de tempo principal. Dependendo do que rode através do loop for, o novo movieclip terá um nome de instância de botao1 ou botao2 etc e será alocado numa profundidade de 101 ou 102 etc.
OK, assim temos um movieclip em branco, mas nós queremos traçar alguma coisa nele - uma caixa, por exemplo. As próximas 7 linhas do código faz exatamente isto. Nós (eu) não temos realmente tempo de examinar detalhes neste momento sobre o novo API de desenho do MX. Somente fique ciente de que o código ali traça 4 linhas com largura de 2, de cor preta [lineStyle(2, 0x000000)] e então preenche com vermelho [beginFill(0xFF0000)].
Então as últimas 2 linhas simplesmente posicionam nossos novos movieclips no palco.
_root["botao"+i]._x=250+ (i*60);
_root["botao"+i]._y=25;
Assim, a primeira vez que o Flash segue através do loop for, cria um novo movieclip com um nome de instância de botao1 e o posiciona no palco numa posição x de 310 e numa posição y de 25. A segunda vez que ele seguir através do loop for, criará um novo movieclip com nome de instância de botao2 e o posicionará no palco numa posição x de 370 e numa y de 25.
Isso é um código bem sério. Não se estresse se ele não fizer sentido de imediato para você.
Teste seu filme. Você deve ver 4 quadrados no canto superior direito. Elas devem ser vermelhas com bordas pretas.
Assim, temos 4 movieclips no palco com nomes de instância de botao1, botao2, botao3 e... oh, claro… botao4. Outra coisa nova no Flash MX é que nós podemos agora atribuir ações a botões movieclips, como onRelease - veremos isto em um segundo. Primeiro vamos criar novas variáveis em nosso arquivo de texto que serão carregados por dois de nossos botões. Volte ao seu arquivo.txt e adicione mais essas linhas:
&meuTexto1=este é o texto que será carregado quando o usuário clicar no botão1.&
&meuTexto2=Eu sou mais um texto. Na verdade não queria estar aqui, mas tenho que estar porque o usuário clicou no botão2 - posso ir pra casa agora?&
De volta ao Flash
Agora, de volta ao Flash, adicione esta ação debaixo de todas as outras:
botao1.onRelease = function() {
meuTexto = meuTexto1;
};
botao2.onRelease = function() {
meuTexto = meuTexto2;
};
Como você pode ver, demos ações a dois dos nossos movieclips. O Flash gentilmente responde mudando o cursor do mouse para o dedo quando o usuário passar com ele sobre os quadrados, permitindo assim que clique sobre elas. Teste seu filme e clique nos 2 botões mais à esquerda. Você deverá ver os 2 novos textos exibidos no seu campo de texto.
Inserindo imagens
Bem, isso tudo é muito legal, mas nós queremos algumas imagens. Pegue 4 fotos, recorte e redimensione todas até que fiquem com uma largura de 100 pixels de largura por 150 pixels de altura. Salve todas como JPEGs e certifique-se de que a caixa "progressive" ("progressiva") não esteja marcada. Salve todas as quatro imagens na mesma pasta e nomeie-as imagem1.jpg, imagem2.jpg etc.
Bom. Outra característica mais que é nova no MX é que você pode carregar JPGs e outras coisas enquanto roda. Vamos fazer isto agora.
Cole estas ações debaixo das outras:
_root.createEmptyMovieClip("alvoFoto1", 200);
_root.createEmptyMovieClip("alvoFoto2", 201);
alvoFoto1._x=300;
alvoFoto1._y=200;
alvoFoto2._x=450;
alvoFoto2._y=200;
loadMovie("imagem1.jpg","alvoFoto1");
loadMovie("imagem2.jpg","alvoFoto2");
Vamos dar uma olhada nestas ações
As primeiras 2 linhas cria 2 novos movieclips (como antes) e lhes dá nomes de instância de "alvoFoto1" e "alvoFoto2". As próximas quatro linhas somente posicionam nossos novos movieclips no palco. Nas últimas 2 linhas você verá a ação loadMovie. O Flash MX permite que nós carreguemos jpgs do mesmo modo que você já podia carregar arquivos swf. Neste caso, estamos carregando cada imagem dentro de um alvo movieclip (ao invés de um nível) e o Flash alinha o canto superior esquerdo de nossas imagens com o ponto de registro dos movieclips "alvoFoto" que acabamos de criar.
Salve seu filme e então teste-o. Grande! Agora vamos adicionar ações nos nossos 2 botões finais, o que permitirá ao usuário mudar as imagens exibidas. Adicione isto abaixo de todas as outras ações.
imagem1Loaded = true;
imagem2Loaded = true;
botao3.onRelease = function() {
if (imagem1Carregada == true) {
loadMovie("imagem3.jpg", "alvoFoto1");
imagem1Carregada = false;
} else {
loadMovie("imagem1.jpg", "alvoFoto1");
imagem1Carregada = true;
}
};
botao4.onRelease = function() {
if (imagem2Carregada == true) {
loadMovie("imagem4.jpg", "alvoFoto2");
imagem2Carregada = false;
} else {
loadMovie("imagem2.jpg", "alvoFoto2");
imagem2Carregada = true;
}
};
Vamos ver esse código com mais calma
imagem1Carregada=true;
imagem2Carregada=true;
Simplesmente cria um par de variáveis.
Em seguida diremos ao Flash o que fazer se o botao3 for clicado. Isto, no entanto, é um pouco mais complicado. Queremos que o Flash primeiramente verifique se uma condição é verdadeira ou não e então faça uma das duas coisas de acordo. Neste exemplo, nós verificamos para ver se a imagem1 está carregada (via nossa variável imagem1Carregada). Se estiver, então o Flash carregará a imagem3 dentro da nossa alvoFoto1 e configurará nossa variável imagem1Carregada para falso. Se ela não for, então o Flash carregará a imagem1 dentro da alvoFoto1 e configurar a variável imagem1Carregada para verdadeiro. O que isto significa é que você pode ficar clicando no botão repetidamente e o Flash irá carregando imagens alternadamente. O código para o botao4 faz a mesma coisa.
Teste seu filme e clique em todos os botões.
Quase feito
Inserindo áudio
Vamos introduzir algum áudio. O Flash MX permite que carreguemos dinamicamente mp3s e é justamente isto que vamos fazer. Copie seu mp3 favorito na mesma pasta.
Mude o nome do seu arquivo mp3 para "arquivo.mp3".
Acrescente estas ações sob todas as outras.
mySound=new Sound();
mySound.loadSound("arquivo.mp3",true);
mySound.start(0,0);
A linha 1 cria um novo objeto som. A linha 2 carrega nosso "arquivo mp3" externo dentro deste objeto som e configura streaming (transmitir ininterruptamente) para verdadeiro. A linha 3 inicia nosso som. Teste seu filme. Se o som não funcionar, então tente um arquivo mp3 diferente.
OK, penso que é mais do que o bastante por agora
Espero que você possa ver algumas vantagens na utilização das capacidades "dinâmicas" do Flash MX (não menos de qual é a facilidade na qual você pode mudar áudio, imagens e texto sem ter até mesmo que abrir seu fla).
vlw...
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.