Posted by: andrebanderas | 10 Maio 2008

Projeto: Galeria de Imagens

- Grau: Complexo -

Introduzindo…

Olá, neste artigo iremos desenvolver o projeto de uma galeria de imagens (simplificado) que poderá ser utilizado em muitos sites em flash que envolvam imagens, como sites de fotografia por exemplo.

Porém esse é um projeto simplificado, mais didático para que se possa entender alguns recursos do Actionscript 2.0 e poderá ser adaptado de modo a incluir mais recursos.

Este projeto terá as seguintes característica:

  • Um menu para alternar a categoria das fotografias.
  • As fotos deverão ser carregadas automaticamente para dentro da galeria bastando para isso acrescentar a miniatura e a foto original em suas respectivas pastas e atualizar um arquivo de texto.
  • Ao adicionar uma nova categoria a um arquivo de configuração (também um arquivo de texto) essa categoria deverá aparecer no galeria. As pastas dessa categoria também deverão ser criadas antecipadamente já que o Actionscript 2.0 não cria pastas nem arquivos.

Ingredientes

  • Uma pasta que irá acomodar o projeto, sugiro o nome galeria_de_imagens para esta pasta, mas você pode escolher o nome que achar melhor.
  • Dentro desta pasta outras duas, uma com o nome de ampliadas e outra com o nome de miniaturas, aqui você pode escolher outro nome, porém neste artigo usarei estes nomes de pasta.
  • Tanto a pasta Ampliadas como a pasta miniaturas deverão possuir em seu interior uma pasta para cada categoria, então elas vão possuir a mesma estrutura interna.
  • Fotos e miniaturas dessas fotos, cada uma colocada em sua respectiva categoria (recomendo umas 10 de cada categoria), sendo que as fotos deverão ter 400×400 e as miniaturas 120×120. Para a criação das miniaturas e das fotos, recomendo a leitura e até a execução do artigo Criando Miniaturas de Imagens [♂]
  • Um arquivo de texto com o nome de categorias.txt.
  • Um arquivo de texto para cada uma das categorias.
    No meu caso então os arquivos seriam: arquitetura.txt, objetos.txt, pessoas.txt.

Dica do Banderas: Use o Corbis para selecionar as fotos [♂]

A estrutura de pastas ficará semelhante a esta.

Estrutura de pastas da Galeria

Preparo

Arquivos de texto

Você deverá colocar o nome das fotografias dentro de cada arquivo de texto, para cada uma das categorias. Um exemplo:

No arquivo arquitetura.txt, o conteúdo é:

&0=arvore.jpg&
&1=casa.jpg&
&2=cidade.jpg&
&3=corredor.jpg&
&4=igreja.jpg&
&5=luz.jpg&
&6=ponte.jpg&
&7=vidro.jpg&

Cada nome de arquivo é numerado e é adicionado o ‘&’ ao início e ao final de cada linha.

Ahhh Banderas, tenho um monte de arquivos e tenho a maior preguiça de escrever.

Ok, ok… Vamos lá

Dica do Banderas

- Abra o bloco de notas e digite o seguinte código:

<html>
<body>
<input type="text" name="path" id="path" size="30">
<br>
Endereço das Imagens:
<button onclick="javascript:listarImagens();">Ok</button></body>
</html>
<script language="VBScript">
function listarImagens()
dim pasta
dim arq
dim fs
set fs = CreateObject("Scripting.FileSystemObject")
pasta = document.all("path").value
n=0
for each arq in fs.getFolder(pasta).files
document.write("&" & n & "=" & arq.Name & "&<br>")
n = n+1
next
end function
</script>

- Salve o arquivo como “listar.html” (digite o nome do arquivo com as aspas).

- Abra no Internet Explorer o arquivo lista.html, se o navegador perguntar se deseja executar ActiveX você responde que sim (Se houver algum bloqueio de conteúdo, libere também).

- Na janela haverá uma caixa de texto. Dentro desta caixa de texto você digita o endereço do arquivo completo (ex. G:\galeria_de_imagens\ampliadas\arquitetura). Ao apertar ‘Ok’ vai aparecer a listagem dos arquivos já no formato mostrado acima. É só salvar a página como um arquivo de texto (*.txt)

No Flash

Inicie um novo documento no Flash com tamanho de 700×600 pixels e monte a seguinte estrutura de Camadas:

  • Actions
  • Menu
  • Grandes
  • Máscara
  • Minis
  • Textos

_

Estrutura de Camadas

Criando o menu de categorias.

Selecione a camada Menu e insira um texto dinâmico. Escreva dentro da caixa a palavra categoria.

Em Propriedades (Properties) defina as seguintes propriedades:

Categorias

Depois de definidas as propriedades, clique no texto categoria_txt (esse que você acabou de criar) e converta em em MovieClip [F8] e chame-o de mcCategoria, não esqueça de colocar o registro no canto superior esquerdo como mostra a figura abaixo.

Transformar categoria_txt em MovieClip

Depois de converter em MovieClip coloque o nome da instância (Instance Name) de categoria_mc.

Criando o título.

Agora selecione a camada Textos, selecione a Ferramenta Texto [T] (Text Tool ) e escreva a palavra título.

Em Propriedades ( Properties ) use as seguintes configurações:

Configurações do T�tulo

No nome da instância ( Instance Name ) coloque o nome titulo_txt.

Criando o conteiner das fotos grandes

Selecione a camada Grandes e com a ferramenta Retângulo [R] (Rectangle Tool ), selecione a cor do preenchimento (Fill color) como Preto (#000000) e na cor do contorno ( Stroke color ) escolha a nenhuma cor. Desenhe um retângulo e nas Propriedades acerte sua Largura ( W ) para 400px, a Altura ( H ) para 400px (tamanho das fotos grandes), a posição X deverá ficar com 150px e a posição Y com 60px.

Converta o retângulo em um MovieClip [F8] com o Registro (Registration) no canto superior esquerdo e o atribua o Nome ( Name ) de mcGrande.

Agora em Propriedades (com o retângulo selecionado), coloque o nome da instância (Instance Name) de grande_mc.

Criando o conteiner das fotos pequenas

Selecione a camada Minis e com a ferramenta Retângulo [R] (Rectangle Tool ), selecione a cor do preenchimento (Fill color) como Preto (#000000) e na cor do contorno ( Stroke color ) escolha a nenhuma cor. Desenhe um retângulo e nas Propriedades acerte sua Largura ( W ) para 120px, a Altura ( H ) para 120px (tamanho das miniaturas).

Converta o retângulo em um MovieClip [F8] com o Registro (Registration) no canto superior esquerdo e atribua o Nome ( Name ) de mcMini.

Agora em Propriedades (com o retângulo selecionado), coloque o nome da instância (Instance Name) de mini_mc, acerte a Largura ( W ) para 60px e a Altura ( H ) para 60px (isso porque as miniaturas irão sofrer um zoom quando o mouse estiver sobre elas). Acerte a posição X para 20px e a posição Y para 500px.

Criando a máscara das miniaturas

As miniaturas serão vistas através de uma espécie de janela invisível, de modo que quando o usuário coloca o mouse para esquerda há a rolagem das miniaturas da direita pra esquerda.

Para que isso seja feito é necessário desenhar uma máscara, então com a Ferramenta Retângulo [R] ( Rectangle Tool ) desenhe um retângulo com Largura de 680px, Altura 120px, posição X de 10px, e posição Y de 470px.

Converta este retângulo em um MovieClip [F8], com o registro no canto superior esquerdo e o Nome ( Name ) mcMask.

Em propriedades coloque o nome da instância ( Instance Name ) de mask_mc.

Dica do Banderas

Para facilitar a visualização é melhor que a máscara seja vista apenas como um contorno ( Outlines ). Se você observar ao lado do nome da camada Máscara há um pequeno quadrado com uma cor dentro (no meu caso a cor é amarela). Clique na cor e o quadrado de preenchido ficará apenas o contorno, se você observar aconteceu a mesma coisa com o retângulo mask_mc (será mostrado apenas o contorno de mask_mc).

Se tudo der certo, a sua cena estará semelhante a esta.

Galeria

O forno (fazendo funcionar…)

Clique na camada Actions e abra a janela de Ações [F9] ( Actions ).

Agora é bom alongar os dedos… Vamos passo à passo.

1- Passo, carregar o arquivo de categorias.

Posted by: andrebanderas | 6 Maio 2008

Criando Miniaturas de Imagens

grau: básico

¡Hola Internauta!

Todos que fazem páginas de internet um dia se deparam com a triste tarefa de criar miniaturas para um gugol de imagens. A maioria dos webdesigners têm seu software favorito para criar suas miniaturas seja com as ações e automações do Adobe Photoshop, o processo em lote do Fireworks, etc.

Porém, como esse blog é para todos os tipos de webdesigners, de pré-webdesigner para cima vou mostrar como se produz miniaturas com um software gratuito e muito útil, o FastStone Photo Resizer 2.5 (baixar).

O FastStone Photo Resizer, apesar de estar em inglês não é de dificíl aprendizado, além de trabalhar com a todos os formatos de imagens utilizados em páginas web.

A interface

Interface do FastStone Resizer

Na Prática

  • Abra o programa e selecione a pasta onde estão localizadas as imagens.
  • Mude o modo de visualização para o que mais lhe agradar (thumbnail é o que mais me agrada ;) ).
  • Clique na foto que deseja adicionar ao processo e aperte o botão Add. Se quiser adicionar todas as fotos da pasta aperte o botão Add All.
  • Escolha o formato de arquivo de saída.
  • Escolha a pasta de destino (Sugestão: Se for para um site o nome da pasta pode ser ‘Minis’).
  • Habilite a opção Use advanced options e aperte o botão Advanced Options.
  • Você verá várias abas, escolha a aba Resize. Habilite a opção Use Resize/Resample.
  • Como estamos fazendo Miniaturas então escolha a opção Resize based on one side.
  • Em Predefined Side escolha Long Side.
  • Em exactly escolha o tamanho máximo de sua Miniatura (Ou escolha um tamanho em Pick a Standard Size).
  • Aperte Ok.
  • Aperte o botão Convert.

Depois desses passos suas Miniaturas estarão na pasta de destino.

Galeria de Imagens em Flash

Em Flash, muitas vezes quando preparamos uma galeria de imagens nos deparamos com um pequeno problema, a imagem carregada via loadMovie é posicionada no canto superior esquerdo do filme base e normalmente se deseja que a imagem fique centralizada. Para resolver isso, antes de gerar as miniaturas, acrescente uma borda ao redor da imagem. Isto é muito fácil de fazer com o FastStone Resizer.

Na Prática

  • Selecione a pasta onde estão as imagens que serão tratadas.
  • Adicione as fotos desejadas.
  • Escolha o formato de saída.
  • Escolha a pasta de destino das imagens tratadas.
  • Habilite a caixa Use advanced options.
  • Clique no botão Advanced Options.
  • Se for necessário habilite a opção Resize. (Aconselho que o tamanho máximo não ultrapasse 400px).
  • Habilite a opção Canvas.
  • Em New Canvas Width escolha o tamanho da largura da imagem (Recomendo 400px).
  • Em New Canvas Height escolha o tamanho da altura da imagem (Recomendo 400px).
  • Em Background color escolha uma cor para borda.
  • Aperte Ok.
  • Aperte o botão Convert.
  • Depois execute os passos indicados acima para gerar as Miniaturas.

É isso…

Hasta la vista 8)

Posted by: andrebanderas | 5 Maio 2008

LoadVars: Carregando variáveis no Flash

Dificuldade: básico
_

O que preciso saber antes de ler este artigo?

Carregar arquivos via loadMovie. [Post]
Usar as funções matemáticas do Flash. [Post]

Introduzindo…

Muitas vezes seus scripts terão se comunicar com elementos fora do filme flash e vice-versa. Neste artigo vamos ilustrar o uso do recurso LoadVars carregando aleatoriamente imagens dentro de um MovieClip.

Ingredientes

  • Um retângulo de 400×300.
  • Um conjunto de quatro ou mais imagens dentro da mesma pasta do filme Flash, todas com 400×300.
  • Um arquivo de texto com o nome de papeis.txt

Preparo

No arquivo imagens.txt

Abra o arquivo imagens.txt e escreva o nome do arquivo das imagens da seguinte forma.

&Variável = Valor da variável&

Exemplo:

&0=Ninféias.jpg&
&1=Montanhas azuis.jpg&
&2=Pôr-do-sol.jpg&
&3=Inverno.jpg&

O ‘&’ servirá para o LoadVars encontrar a variável. No caso acima o nome da variável será o número e o valor da variável o nome de arquivo.

No Flash
  • Converta o retângulo em um MovieClip [F8], com registro no canto superior esquerdo.
  • Coloque o nome de movie_mc.

Programando [F9]

//Declaramos a variável que receberá os valores do arquivo imagens.txt

var leitor_lv:LoadVars = new LoadVars;

//Quando as variáveis forem carregadas

leitor_lv.onLoad = function(){
trace(leitor_lv); //Quando o arquivo for carregado mostre na janela de saída os valores que estão em leitor_lv
}
leitor_lv.load(“imagens.txt”); //Carrega o arquivo imagens.

Se você de uma olhada saída verá que os caracteres acentuados e os espaços aparecem codificados, para contornar esse problema irei copiar o conteúdo de leitor_lv em um Array.

O código ficará assim:

var leitor_lv:LoadVars = new LoadVars;
var imagens_ar:Array = new Array; //Variável que irá receber os valores de leitor_lv

leitor_lv.onLoad = function(){
//O framento abaixo faz a cópia de leitor_lv em imagens_ar
for(var i in leitor_lv)
imagens_ar[i] = leitor_lv[i];

trace(imagens_ar); //Abre a janela de saída para vermos os valores que estão dentro de imagens_ar
}

leitor_lv.load(“imagens.txt”);

Observe agora que os valores de saída estão decodificados, porém os caracteres acentuados não estão aparecendo (pelo menos aqui não). Se este problema ocorrer adicione a seguinte linha no início do código:

System.useCodepage = true;

Assim os caracteres acentuados irão aparecer corretamente.

Agora precisamos fazer com que as imagens apareçam aleatoriamente. Para fazê-las aparecer, usarei o método loadMovie do objeto MovieClip, para a aleatoriedade irei usar a função Math.random().

A função Math.random() gera números aleatórios (pseudo-aleatórios na verdade) variando de 0 até 1 (0≤n<1). Como tenho 4 imagens terei que multiplicar o valor do número por 4 e ignorar a parte quebrada do número, usarei a função Math.floor() para isto.

Com essas alterações nosso código ficará assim:

System.useCodepage = true;

var leitor_lv:LoadVars = new LoadVars;
var imagens_ar:Array = new Array;
var n:Number = new Number; //Variável que irá receber o número da imagem

leitor_lv.onLoad = function(){

for(var i in leitor_lv)
imagens_ar[i] = leitor_lv[i];

n = Math.floor(4*Math.random()); //A variável ‘n’ recebe um valor aletório entre 0 e 3.

movie_mc.loadMovie(imagens_ar[n]); // Aqui a imagem é carregada para dentro de ‘movie_mc’

}

leitor_lv.load(“imagens.txt”);

Parece tudo perfeito, mas o código só carrega 4 imagens. Se for acrescentada mais uma imagem dentro do arquivo de texto ela nunca irá aparecer. Assim precisamos deixar esse código mais flexível. Fazemos isso trocando o número 4 pela expressão imagens_ar.length. Esta expressão retorna o número de elementos de imagens_ar. Assim se imagens_ar tiver 8 elementos a expressão imagens_ar.length irá retornar 8.

Com isso o código definitivo será:

System.useCodepage = true;

var leitor_lv:LoadVars = new LoadVars;
var imagens_ar:Array = new Array;
var n:Number = new Number;

leitor_lv.onLoad = function(){

for(var i in leitor_lv)
imagens_ar[i] = leitor_lv[i];

n = Math.floor(imagens_ar.length*Math.random()); //A variável ‘n’ recebe um valor aletório entre 0 e e o número de elementos de imagens_ar menos 1.

movie_mc.loadMovie(imagens_ar[n]); // Aqui a imagem é carregada para dentro de ‘movie_mc’

}

leitor_lv.load(“imagens.txt”);

É isto…

Hasta la vista 8)

Posted by: andrebanderas | 3 Maio 2008

Zoom com Mouse em MovieClips

dificuldade: média
_

O que preciso saber antes de ler este artigo?

Conhecer as funções matemáticas do Flash. [Post]
Saber nomear um MovieClip. [Post]

Introdução

Neste post vamos fazer com que um MovieClip tenha um efeito de zoom de acordo com a posição do mouse.

Ingredientes

Vamos usar os seguintes métodos e propriedades:

  • MovieClip.onEnterFrame
  • MovieClip._xscale
  • MovieClip._yscale
  • MovieClip._width
  • MovieClip._height
  • MovieClip._xmouse
  • MovieClip._ymouse
  • Funções do objeto Math

Preparo

No Palco (Stage) desenho um retângulo qualquer (de preferência menor que o Palco umas duas vezes), converta este retângulo em um MovieClip [F8] com o Registro (Registration) no centro. Coloque o nome da instância (Instance Name) de movie_mc.

Coloque também um caixa de texto dinâmico (Text Tool > Dynamic Text) no Palco. No campo chamado var escreva a palavra msg. Esta caixa será irá nos informar alguns valores que usaremos no script.

Zoom em MovieClip

Crie uma nova Camada (layer), coloque o nome de Actions, clique no primeiro quadro e abra a janela Ações (Actions)[F9].

Programando

Nosso objetivo é fazer com que o objeto cresça quando o usuário colocar o mouse no centro do MovieClip e que diminua à medida que o usuário vai afastando o mouse do centro do MovieClip.

zoom mouse - parâmetros

Vamos fazer isso passo a passo…

Como se trata de uma animação, vamos executar ações a cada mudança de quadro do filme, então vamos usar o método onEnterFrame do objeto _root (que se refere à linha de tempo principal) para fazer essa animação.

Digite o seguinte código na janela Ações (Actions)

_root.onEnterFrame = function(){

msg = movie_mc._xmouse;

}

Teste o filme [Ctrl+Enter], passe o mouse por cima MovieClip e veja o que aparece escrito na caixa de texto.

Observe que na caixa aparece a posição x do ponteiro do mouse dentro do MovieClip. Porém estamos interessados em um fator de escala, assim divide-se a posição x do mouse por metade da largura do MovieClip (observe a figura acima). Usaremos a seguinte abordagem:

xmouse/(largura/2) = 2*xmouse/largura

Então temos:

_root.onEnterFrame = function(){

msg = 2*movie_mc._xmouse/movie_mc._width;

}

Agora temos um fator, porém está invertido já que queremos que nas bordas o fator de escala seja zero. Há um outro incoveniente, arrastando o mouse para esquerda o fator de escala é negativo, resolvemos isso usando a função Math.abs() que retorna sempre um valor positivo, assim a expressão do fator será:

fator = 1 - Abs( 2*xmouse/largura)
//Abs é uma função que retorna sempre um valor positivo

Assim em Actionscript teremos

_root.onEnterFrame = function(){

msg = 1- Math.abs( 2*movie_mc._xmouse/movie_mc._width );

}

Agora deu certo. Fazemos o mesmo tratamento para componente vertical (Y). Depois precisamos decidir que fator usar, o componente x ou o componente y. Prefiro usar o menor valor dos dois com a ajuda da função Math.min(). Faremos algumas modificações em nossa expressão, chamamos de ‘fx’ o fator em x e de ‘fy’ o fator em y.

_root.onEnterFrame = function(){

fx = 1- Math.abs( 2*movie_mc._xmouse/movie_mc._width );
fy = 1- Math.abs( 2*movie_mc._ymouse/movie_mc._height );

msg = Math.min( fx,fy );

}

Parece tudo bem se não fosse por um incômodo. Fora do MovieClip o valor fica negativo, o certo é que seja igual a zero. Problema facilmente solucionado com com a função Math.max().

_root.onEnterFrame = function(){

fx = 1- Math.abs( 2*movie_mc._xmouse/movie_mc._width );
fy = 1- Math.abs( 2*movie_mc._ymouse/movie_mc._height );

msg = Math.max(Math.min( fx,fy ),0); // Retornará apenas valores >= 0.

}

Queremos um valor para este fator entre 0 e 100 (você pode definir outro fator de escala, eu escolhi o duplicar adicionando mais 100%), assim multiplicamos o fator por 100 e pegamos apenas a parte inteira do resultado usando a função Math.floor().

_root.onEnterFrame = function(){

fx = 1- Math.abs( 2*movie_mc._xmouse/movie_mc._width );
fy = 1- Math.abs( 2*movie_mc._ymouse/movie_mc._height );

msg = Math.floor(100 * Math.max(Math.min( fx,fy ),0) );

}

Agora usamos um nome diferente na variável de fator, e atribuimos o fator de escala em x e em y como 100 (normal) + fator.

_root.onEnterFrame = function(){

fx = 1- Math.abs( 2*movie_mc._xmouse/movie_mc._width );
fy = 1- Math.abs( 2*movie_mc._ymouse/movie_mc._height );

fator = Math.floor(100 * Math.max(Math.min( fx,fy ),0) );

movie_mc._xscale = movie_mc._yscale = 100 + fator;

}

Apagamos a caixa de texto e testamos o filme [Ctrl+Enter] pela última vez.

Bueno, por hoje é só pessoal…

Hasta la vista 8)

Posted by: andrebanderas | 2 Maio 2008

Matemática no Flash

Dificuldade: Básico

_

Fazer contas em Flash é tão fácil quanto na sua calculadora ou computador. Para expressões matemáticas os operadores são os mesmos que os utilizados na maioria dos softwares.

+ (operador de adição) - Ex: 1+1 retorna 2 //Dois amigos na mesa…

- (operador de subtração) - Ex: 6 - 3,7 retorna 2,3 //Tirando o da Brahma sobra o do ônibus

* (operador de multiplicação) - Ex: 3 * 3,7 retorna 11,1 //3 Brahmas à 3,70 dá 11,1

/ (operador de divisão) - Ex: 11,1 / 2 retorna 5,5 //Conta de 11,1 dividida pelos 2 amigos

% (operador módulo) - Calcula o resto da divisão de dois números. Ex: 6 % 5 retorna 1 //Meu amigo é gente fina deixou eu pagar 5 mas mesmo assim voltei a pé para casa… Esse 1 ficou para o chugatinho…

Precedência de operadores

Isto é como você aprendeu na escolinha, primeiro resolve o que está nos parênteses, depois é multiplicação e divisão e por último soma e subtração.

Ex: 5*(3+2)-2 retorna 23.

Biblioteca Matemática

O Adobe Flash também possui uma série de funções Matemáticas que podem ser usadas em seus scripts. //Recomedável para quem gosta e quem não gosta de matemática :)

A biblioteca matemática do Adobe Flash é representada pelo objeto Math e seus métodos e propriedades são usados para manipular constantes e funções.

Constantes

Observe que todas as constantes matemáticas são escritas em letras maiúsculas

Math.E - Constante matemática usada em logaritmos naturais 8O, representada pela letra E e que possui valor aproximado de 2.71828182845905.

Math.LN10 - Valor do logaritmo natural de 10 correspondente a aproximadamente 2.302585092994046.

Math.LN2 - Valor do logaritmo natural de 2 correspondente a 0.6931471805599453 aproximadamente.

Math.LOG10E - Valor do logaritmo de base 10 do número E, corresponde a aproximadamente 0.4342944819032518.

Math.LOG2E - Valor do logaritmo de base 2 do número E, um valor próximo de 1.442695040888963387.

Math.PI - Valor do número PI, aproximadamente 3.141592653589793. Corresponde à razão entre o comprimento de uma circunferência e seu diâmetro.

Math.SQRT1_2 - Valor da raiz quadrada de 1/2, corresponde a aproximadamente 0.7071067811865476.

Math.SQRT2 - Valor da raiz quadrada de 2, com valor aproximado de 1.4142135623730951.

Funções

Tire o pó de sua calculadora científica e vamos ver algumas funções matemáticas. //isto me lembra o ensino médio.

Math.abs(x) - Retorna o valor absoluto do parâmetro x, em outras palavra é o módulo de um número. Ex: Math.abs(-2) retorna 2.

Math.ceil(x) - Arrendonda o número x até o próximo inteiro. Ex: Math.ceil(1.05) retorna 2.

Math.floor(x) - Arrendonda o número x até o inteiro inferior. Ex: Math.floor(2.95) retorna 2.

Math.round(x) - Arrendonda o número x até o inteiro mais próximo. Ex. Math.round(1.5) retorna 2, Math.round(1.49) retorna 1.

Math.exp(x) - Calcula o valor de ex, isto é o valor do número E elevado à potência x.

Math.log(x) - Calcula o valor do logaritmo natural de número x. Também conhecido como ln(x).

Math.pow(x, y) - Calcula o valor de x elevado à y. Ex: Math.pow(3,2) retorna 9.

Math.sqrt(x) - Calcula a rais quadrada do número x.

Math.min(x, y) - Retorna o menor valor do par x e y. Ex: Math.min(3,2) retorna 2. //Parece com Excel

Math.max(x, y) - Retorna o maior valor do par x e y. Ex: Math.max(3,2) retorna 3.

Math.random(x, y) - Retorna um valor aleatório compreendido entre 0 e 1 (Zero inclusive). //Útil para coisas que devem aparecer aleatoriamente

Funções Trigonométricas

Math.acos(x) - Retorna o valor do arco cosseno de x (x deve estar em radianos).

Math.asin(x) - Retorna o valor do arco seno de x (x deve estar em radianos).

Math.atan(x) - Retorna o valor do arco tangente de x (com x em radianos).

Math.atan2(y, x) - Retorna o valor do arco tangente do ângulo entre o eixo x e o segmento de reta que passa pelos pontos 0,0 e x,y medido no sentido anti-horário. 8O (Acho melhor fazer um desenho).gráfico da função Math.atan2

Math.cos(x) - Calcula o cosseno de um ângulo x (x em radianos).

Math.sen(x) - Calcula o seno de um ângulo x (x em radianos).

Math.tan(x) - Calcula a tangente de um ângulo x (x em radianos).

Para quem já faz tempo que não mexe com trigonometria uma ajuda:

Radiano = Graus * PI/180

Um exemplo em Flash para o cálculo do seno de 45°:

Math.sin( 45 * Math.PI/180 ) //retorna 0,707106…

Espero que gostem

Hasta la vista :)

Posted by: andrebanderas | 2 Maio 2008

Nomeando MovieClips

dificuldade: básico

Olá. Neste artigo irei mostrar como colocar um nome em um MovieClip. Isto é básico para qualquer programação que envolva Actionscript.

Desenhando

1. Crie uma forma qualquer em seu Palco (Stage) e converta-a em MovieClip [F8].

2. Clique sobre o MovieClip e na janela de Propriedades (Properties) e coloque o nome no campo Nome da Instância (Instance Name) como na figura abaixo.

Nome em um MovieClip

3. É possível trocar o comportamento da instância (Instance Behavior) de Movie Clip para Botão (Button) ou um gráfico (Graphic) através do respectivo menu dropdown.

No Flash, toda vez que se converte uma forma para MovieClip, o símbolo fica guardado na Biblioteca (Library)[F11] enquanto um clone do objeto fica no Palco (Stage). Assim toda vez que se modifica o símbolo, todos os seus clones são modificados também. Esses clones são chamados pelo Flash de Instância.

Programando

Quando for necessário fazer uma referência ao objeto no placo (Stage), basta digitar o seu nome. No exemplo abaixo também foi alterada a opacidade do MovieClip para 25% através da propriedade ‘_alpha’.

1. Crie um MovieClip e atribua o nome de movie_mc a ele.

2. Abra a janela Ações (Actions)[F9] e digite o seguinte código:

movie_mc._alpha = 25;

3. Teste o filme [Ctrl+Enter].

Dica do Banderas

É possível se referir a um filme também da seguinte forma:

_root["movie_mc"]._alpha = 25;

Hasta la vista :)

Posted by: andrebanderas | 2 Maio 2008

Eventos de Mouse em MovieClips

Dificuldade: Fácil
_

O que preciso saber antes de ler este artigo?

Nomear MovieClips. [Post]

Introduzindo…

Em Flash é muito comum a atribuição de eventos de mouse em MovieClips. Há até alguns programadores web que abandonam o uso de botões (buttons) em seus projetos.

Programando

Pode-se atribuir eventos a um MovieClip das seguintes formas:

1. Clicar sobre o objeto, abrir as Ações (Actions) [F9] e atribuir o evento digitando:

on(evento){

//código que será executado quando o evento for disparado

}

Alguns eventos possíveis de serem disparados são:

  • press - Ocorre quando o usuário pressiona o botão esquerdo do mouse sobre o MovieClip.
  • release - Este evento ocorre quando o usuário dá um clique (aperta e libera o botão esquerdo do mouse) sobre o MovieClip.
  • releaseOutsitde - Ocorre quando o usuário pressiona o botão esquerdo sobre o MovieClip e libera o botão fora do MovieClip.
  • rollOver - É disparado quando o ponteiro do mouse se move para cima do MovieClip.
  • dragOver - Ocorre quando o botão esquerdo do mouse é pressionado fora do MovieClip, então o ponteiro do mouse se desloca para área do MovieClip ainda pressionado.
  • dragOut - Situação inversa do item anterior. O botão do mouse é mantido pressionado sobre a área do MovieClip e então o ponteiro é movido para fora da área do MovieClip ainda pressionado.

Um exemplo:

a. Crie um objeto e transforme-o em MovieClip [F8].

b. Clique sobre o MovieClip criado e abra janela Ações (Actions) [F9].

//Quando o usuário clicar sobre o MovieClip irá aparecer a mensagem “O usuário deu um clique” na janela de saída (Output).

on(release){

trace(“O usuário deu um clique”);

}

2. Pode-se também usar a abordagem de objetos para atribuir eventos de mouse em um MovieClip da seguinte forma:

nomeDoMovieClip.onEvento = function(){

//código que será executado quando o evento for disparado

}

Um exemplo:

a. Crie um objeto e transforme-o em MovieClip [F8]. Coloque o nome de movie_mc.

b. Clique sobre o quadro-chave (keyframe) e abra janela Ações (Actions) [F9].

//Quando o usuário clicar sobre o MovieClip irá aparecer a mensagem “O usuário deu um clique” na janela de saída (Output).

movie_mc.onRelease = function(){

trace(“O usuário deu um clique”);

}

Dica do Banderas

Colocando o sufixo ‘_mc’ em seus MovieClips, quando você colocar o ponto uma lista de propriedades do MovieClip irão aparecer listadas facilitando muito a digitação de códigos.

Você pode fazer com que os MovieClips se comportem como botões, basta criar 3 quadros dentro do MovieClip e atribuir os seguinte rótulos (frame label) a cada um deles: _up, _over, _down.

Exemplo de tags para MovieClips
Posted by: andrebanderas | 1 Maio 2008

Carregando imagens externas com loadMovie

Dificuldade: Fácil
_

O que preciso saber antes de ler este artigo?

Saber nomear MovieClips.[Post]

Introduzindo…

O recurso loadMovie() permite que seja carregado um arquivo SWF, JPG (JPEG), GIF ou PNG dentro de um MovieClip. Se for usado um GIF animado somente o primeiro quadro irá aparecer, para que uma animação seja carregada ela deve estar em SWF. A função loadMovie() é a mais simples das funções de carregamento de arquivos externos, as outras são loadMovieNum() e loadClip().

Programando

loadMovie(url: String, alvo: Object, [método: String]) : Sem retorno
loadMovie(url:String, target:Object, [method:String]) : Void

url:String - Endereço ou caminho do arquivo.
alvo (target): Object - Referência de um MovieClip que será substituído pelo arquivo que será carregado.
método (method): String [opcional] - Um método para envio de variáveis, deverá apenas ser GET ou POST. Se não houver variáveis para serem enviadas, esse parâmetro deverá ser omitido.

Na prática

esquema para loadMovie

Material

Um imagem de 400×300 na mesma pasta do arquivo flash. Neste caso um arquivo com o nome de paisagem.jpg (exemplo)

Desenhando

1. Faça um retângulo no Palco (Stage) com 400×300.

2. Converta o retângulo em um MovieClip [F8].

3. Coloque o nome deste MovieClip de conteiner.

4. Salve o arquivo.

Ações [F9]

1. Escreva a seguinte linha:

loadMovie(“paisagem.jpg”,conteiner); //Substitua a palavra paisagem.jpg pelo nome de seu arquivo

2. Teste o filme [Ctrl+Enter] e observe o resultado.

Hasta la vista 8)

Posted by: andrebanderas | 1 Maio 2008

Bem vindo caro internauta

Saudações a todos

Bem vindos ao blog do Banderas.

Resolvi escrever este blog para contribuir com o que eu sei para difusão de conhecimento através da internet, aumentando um pouco a nossa blogosfera. Espero que minhas experiências sejam úteis a quem necessitar.

Deixem seus comentários.

Agradeço a atenção te todos.

André Banderas

Categorias