Arquivo da categoria ActionScript

Busca no Xml – v2.0

Falae galera.

O último código que desenvolvi do Busca no Xml gerou muitas dúvidas do pessoal para alterações. Queriam colocar link, mudar algum conteúdo, etc. O fato é que desenvolvi focado em um projeto, e disponibilizei para adaptação.
Tive um tempinho essa semana e adaptei o código para ser mais “maleável”.

Primeiro, veja o post:
http://actionman.wevertonnaves.com.br/blog/2008/03/busca-no-xml/

O que mudou?
- Possibilidade de definir os campos e a estrutura do xml;
- Inserção de link (externo e interno);
- Escolha dos campos que aparecerão no DataGrid e os que serão utilizados na busca;

Como alterar?
- No arquivo xml principal, onde guardamos as informações dos xmls de busca,  temos o nó “estrutura”, onde você definirá a estrutura de nós que os xmls devem ter, seguindo a seguinte formatação:
<file_name usabusca=”true” aparece=”250″ />

Primeiro, o nome do nó. Este deve ser exatamente como os sub-nós serão chamados. O parâmetro usabusca (booleano) define se este nó será incluído na busca. O parâmetro aparece (number) é o tamanho da coluna deste nó dentro do DataGrid, um valor igual a 0 significa que este nó não aparecerá no mesmo.

Caso queira adicionar link aos itens, basta incluir o seguinte nó:
<link usabusca=”false” aparece=”0″ />

E para definir o tipo de link, nos próprios xmls de busca, o valor deve ser de uma das duas formas:
url: Adicionando um link com http, o flash irá reconhecer como uma url;
label: Sem o http, o flash entenderá como uma label dentro do próprio swf;

É isso aí galera. Vou adaptar para CS3 agora. Divirtam-se (e me reportem possíveis erros).

Baixe o arquivo aqui.

, , , ,

11 Comentários

Named Anchors

Galera. 

Esse lance é muito legal de se fazer. Em questão de usabilidade, nota 10!
As anchors (âncoras) servem para que possamos adicionar pontos de navegação no Flash, onde o usuário poderá acessar esses pontos através da URL ou do botão Voltar do navegador.

Para definir um frame como uma “Anchor”, basta nomeá-la e selecionar no dropdown Label type, logo abaixo, a opção “Anchor”. Confira a imagem:

Visualização das âncoras no Flash

Visualização das âncoras no Flash

Fiz um exemplo, onde defini 4 pontos âncora (anchor1, anchor2, anchor3, anchor4), com links que navegam entre elas.
A partir do momento que clico no primeiro link, a url do arquivo muda e o botão voltar do navegador fica disponível, ficando assim:

…../arquivo. html?#anchor1

Com base nessa informação, podemos linkar o nossa página para ir diretamente ao conteúdo da âncora 3:

…../arquivo. html?#anchor3

Desvantagem
Infelizmente essa técnica só funciona no Internet Explorer.
Testei no Chrome e no Firefox, e realmente não funciona. Se fosse mais universal, seria uma solução simplesmente perfeita para facilitar a navegação dentro de conteúdos separados dentro de um mesmo arquivo Flash.

, , , ,

5 Comentários

Criando uma extensão de um .as para #include

Galera. Quem utiliza sempre um .as onde estão as funções importantes que compartilha em vários trabalhos no flash, este artigo vai facilitar sua vida. Chega de ficar copiando o .as em todas as pastas, sem falar na dificuldade de atualizar esses códigos.

Versão de AS: n/a 
Compatibilidade: Flash 6
Dificuldade de produção: 5
Dificuldade de aplicação:

 

O processo de criação de uma extensão se baseia no seguinte:
- Criação de um Extension Installation File, um xml com a extensão .mxi
- Compilação deste xml para criar uma extensão mxp.
- Instalação da extensão .mxp via Extension Manager.

 

Criando o .mxi

O estrutura básica do xml é essa:

<?xml version=”1.0″ encoding=”UTF-8″?>
<macromedia-extension name=”precoDinamico” version=”1.0.0″ type=”actionscript”>
<author name=”Weverton Naves” />
<products>
<product name=”Flash” version=”6″ primary=”true” />
</products>
<description>
<![CDATA[
Preço Dinamico Magazine Luiza.<br>
Consulta o preço dos produtos na base e exibe-os no Flash.
]]>
</description>
<ui-access>
<![CDATA[
Para incluir:
#include "precoDinamico.as"
var Produtos:Array = new Array("2014359", "2014406", "2014359");
chamaPreco();
*Os preos estaro disponveis em um Array (Precos) no mesmo escopo da chamada.
Valores do Array
Precos[ini][0] //tipo de preo
Precos[ini][1] //preo de
Precos[ini][2] //preo por
Precos[ini][3] //qtd de parcelas
Precos[ini][4] //valor da parcela
Precos[ini][5] //mensagem dos juros
]]>
</ui-access>
<license-agreement>
<![CDATA[
@copyright 2008 - Weverton Naves - Código sobre licensa Creative Commons.
]]>
</license-agreement>
<files>
<file source=”teste\PrecoDinamico.as” destination=”$flash/Include” />
</files>
</macromedia-extension>

 

Consiste nas seguintes tags:
<macromedia-extension />: Tag principal, onde as outras se alojam, contém os parâmetros com informações do nome, tipo e versão.
<author />: Informações sobre o autor da extensão.
<description />: Descrição da extensão, para que serve, etc;
<ui-access />: Texto que aparecerá no extension manager, normalmente são Instruções de como utilizar a extensão dentro do flash;
<license-agreemente />: Informações sobre licensa.
<files />: Tag mãe das tags <file />, onde são especificados os arquivos que farão parte da extensão;

 

Compliando o código.

Ao salvar seu arquivo, ele se aparentará com o ícone abaixo:

criandoextensao_img1

Após esta etapa, só abrir o arquivo e ele abrirá automaticamente no Extension Manager, já com o nome do arquivo na opção “Select Extension to Package”.

Após clicar em “OK”, ele abre outra janela, com a opção “Save Extension Package As…”, onde você seleciona onde deve salvar sua extensão.

criandoextensao_img2

 

Instalando a extensão

Agora sua extensão terá o seguinte ícone:

criandoextensao_img3

Esta etapa é fácil, só você clicar para abrir, e ela será instalada automaticamente:

criandoextensao_img4

 

 

A partir de agora, você pode incluir esse arquivo sem precisar jogá-lo na pasta do seu trabalho, só é necessário fazer a chamada #include “nomedoseuarquivo.as”

 

NOTAS FINAIS

- O programa MXI File Creator (Muzaak Deezign) configura o arquivo completinho para você, mais fácil que fazer na mão, basta baixá-lo aqui.
- Este documento da adobe traz todas as especificações e tags possíveis para criação de extensões, para qualquer programa adobe que aceita essa funcionalidade.

Abraços.

, , , , ,

Sem Comentários

Curso de Criação de Advergames

Galera,cursoadvergames

Participei no último sábado (08/11) do curso “Criação de Advergames“, realizado pela 8D no espaço Gafanhoto, na Rebouças, em São Paulo.
Foi uma experiência memorável, ainda mais agora que estou morando em Jundiaí e fica mais fácil de ter acesso a esse tipo de cultura.

Os palestrantes foram David de Oliveira Lemes, Fabiano Onça, Guilherme Tsubota, e Érika Caramello.
Para quem não sabe, advergames são jogos com um intuito de comunicação publicitária, esse tipo de trabalho envolve diversas plataformas, desde jogos de tabuleiro, internet, consoles ou ARGs. 

Foram 9 horas de curso, onde fizemos uma atividade prática, aproveitando-nos da visita do jornalista Silvio Luiz (“olho no lanceeeee…”, lembrou?), para criar a proposta de um Advergame fictício para a marca Axe.

Um parecer meu…
Gostei muito da palestra da Érica, afinal, absorvi muito conhecimento da questão de marketing e comunicação envolvida no mundo dos games, além de ampliar a visão geral sobre a verdadeira essência que move o mundo dos Advergames: a publicidade. Guilherme  Tsubota nos passou uma visão geral do mundo dos games, desde os primeiros consoles e os primeiros advergames até os dias atuais, além de coordenar o restante dos trabalhos. Fabiano Onça, produtor do game WeAtheR, com sua experiencia no ramo, mostrou os passos do processo de criação do Advergame, e David Lemes focou técnicas de criação de personagens e cenários.

Conheci uma galera gente boa!
Que espero ver por aí em mais encontros como este. Valeu muito a pena o curso.
Para quem tiver interesse em cursos futuros, é só  cadastrar-se no email cursos@8d.com.br, ou acessar o site http://www.8d.com.br para saber de novidades.

Quer saber mais?
http://guilher.me/games/primeira-edicao-do-curso-de-advergames-foi-um-sucesso/

, , , ,

Sem Comentários

Google agora irá indexar conteúdos em Flash

Ae galera!

Para aqueles que curtem (ou precisam utilizar) SEO, esta é uma ótima notícia.
Como todos sabem, os motores de busca tinham uma certa dificuldade de rankear e indexar páginas feitas inteiramente em flash. Isso causava uma frustação muito grande dos desenvolvedores, que não podiam contar com as técnicas de indexação para manter seu site entre os primeiros no ranking de busca.

Com uma parceria com a Adobe, o Google desenvolveu um algoritmo para “acessar” os dados contidos em arquivos .swf. O fato é que atualmente, somente textos e urls poderão ser indexados, portanto, fique ligado, se quiser que algum conteúdo que esteja unicamente em imagem no seu site em flash seja indexado, atribua um texto e deixe oculto fora do palco.

Acho que isso foi um grande passo, mas ainda tem muita coisa para melhorar, pois imaginem a quantidade de conteúdo indesejável não será indexado com esse esquema? E quando criamos conteúdo dinâmico, como textos e links através de attachMovie, puxando de xml, ou até mesmo de vetores dentro do flash?

Mas já tá valendo muito essa tecnologia.

Segue alguns links (em inglês):

http://www.readwriteweb.com/archives/adobe_makes_flash_searchable.php

http://searchengineland.com/080701-000002.php

, , , , ,

1 Comentário

Colocando Ações Em Vários Menus de Forma Dinâmica

Falae povo.

Com base neste post, vamos agora aprender a colocar ações em vários menus de uma vez só.
Isso é muito útil para quando temos que fazer um menu de uma página, com vários itens.

É uma técnica simples, mas muito útil, e poupa um tempo danado. E é aquilo, quanto mais eu vivo, mais eu vejo gente que não conhece essas técnicas básicas de flash..rsrsr (sem ofensas).

A técnica é feita através de um loop que coloca as ações nos botões, que tem que estar renomeados de maneira ordenada (n1, n2, n3 …. nx).

Vamos tomar um menu com 4 botões. Vamos instanciá-los como botao1, botao2, botao3 e botao4.

No frame onde vc colocou os mcs, coloque o seguinte código:

var menuAtivo; // menuativo
var qtdMenu = 4; // qtd de menus
var Links:Array = new Array(“http://www.google.com.br”, “http://www.magazineluiza.com.br”, “http://www.imasters.com.br”, “http://www.thefwa.com”); //links
//loop para colocar os botões
for (i=1; i<=qtdMenu; i++) {
var clip = this["botao"+i];
clip.numArray = i;
//ação de clique
clip.onRelease = function() {
//volta o menu que está ativo
this._parent["botao"+menuAtivo].gotoAndPlay(“rollout”);
//seta o novo menu ativo com esse botão
menuAtivo = this.numArray;
//aciona o link atraves da matriz Links
getURL(Links[this.numArray-1], “_blank”);
};
//ação de rollover
clip.onRollOver = function() {
//se não for o ativo, faz a ação
if(menuAtivo!=this.numArray){
this.gotoAndPlay(“rollover”);
}
};
//ação de rollout
clip.onRollOut = function() {
//se não for o ativo, faz a ação
if(menuAtivo!=this.numArray){
this.gotoAndPlay(“rollout”);
}
};
}

O código está todo comentado.
Baixe o exemplo aqui.

, ,

5 Comentários

Abolindo os botões no Flash – Utilizando MovieClips

Pessoal.

Galera. Para que ainda utiliza AS2, Flash8. Vamos acabar com a mania de utilizar botões para …. botões!
Caso não saiba do que estou falando, deve estar pensando que estou ficando doido né.
Mas vou explicar.

A partir do AS3, Flash9, não se é mais permitido colocar actions diretamente nos objetos, como exemplo os botões. Antes disso (não sei desde quando), era opcional. E eu adoto essa técnica a bastante tempo, por ser mais prática, e mais maleável na questão de animação de botões.

Tudo se consiste em criar um MovieClip com animação de botão rollover e rollout. E a partir deste mc, atribuir um handler dos eventos com suas respectivas funções.

Vamos a prática:
Crie um arquivo novo (Flash8–).

Crie um movieclip. Nele, crie o primeiro frame com o estado do botão parado. Após, faça animações para rollover e rollout, com o primeiro frame de cada nomeado respectivamente, e um gotoAndStop(1) no fim da animação do rollout e um stop no fim da animação do rollover.

Coloque seu MovieClip no palco, instancie-o como meuMc. Na guia actions, cole o seguinte código:

meuMc.onRelease = function(){
trace(“clicado”);
}
meuMc.onRollOver = function(){
this.gotoAndPlay(“rollover”);
}
meuMc.onRollOut = function(){
this.gotoAndPlay(“rollout”);
}

Qual o segredo?
Nenhum! Simplesmente atribuimos uma função ao handler de cada movieclip. Podemos utilizar os seguintes handlers:

onPress - Ao clicar no mc
onRelease
- Ao clicar e soltar o botão do mouse dentro do mc
onReleaseOutsite - Ao pressionar e soltar o botão do mouse fora do mc
onRollOver
- Ao passar o mouse dentro do mc
onRollOut - Ao passar o mouse fora do mc
onLoad
- Ao carregar o mc
onEnterFrame
- Toda vez que ler um frame do mc (loop)
onDragOver
- Ao pressinar o botão do mouse e arrastar fora e voltar para dentro (sem soltar)
onDragOut
- Ao pressionar o botão do mouse e arrastar para fora do mc (sem soltar)
onMouseDown
- Ao pressionar o botão do mouse no mc(igual a onPress)
onMouseUp - Ao pressionar e soltar o botão do mouse no mc (igual a onRelease)
onMouseMove
- Ao mover o mouse
onUnload - Ao mc sair da timeline (no proximo frame)

É isso aí galera. Pra quem já sabe é bem simples, e bem útil pra quem não utiliza esta técnica.
Baixe um exemplo aqui.

, , , , , , ,

2 Comentários

Preloader com animação

Galera.

Esse lance é bem legal. Alguém já deve ter visto na net aqueles preloaders bem legais, que conforme o site vai carregando, a animação vai rolando.
Fiz este exemplo, com uma bolinha indo da direita pra esquerda, conforme o filme carrega, a animação vai sendo executada.

A animação da bolinha tem 100 frames, o que facilita o entendimento frames/carregamento. É bem simples, mas quem tiver um tempinho, dá pra trabalhar legal em uma animação.

O código é basicamente este:

//variáveis//##########################################//
// PRELOADER COM ANIMAÇÃO
// VERSÃO: 1.0 – 31/03/2008
// DESENVOLVIDO POR: Weverton Naves (
tom.naves@gmail.com) (http://wevertonn.wordpress.com)
//##########################################//
//para a animação
anim.stop();
//cria as classes
var mcLoader:MovieClipLoader = new MovieClipLoader();
var list:Object = new Object();
//listener de progresso
list.onLoadProgress = function(alvo:MovieClip, loadedBytes:Number,TotalBytes:Number){
//pega a porcentagem dos frames da animação
var pctAnim = Math.floor(anim._totalframes)/100;
//pega a porcentagem de carregamento
pct = Math.floor((loadedBytes / TotalBytes) * 100);
//poe a animação na porcentagem
anim.gotoAndStop(pctAnim*pct);
}
//adiciona listener
mcLoader.addListener(list);
//carrega imagem
mcLoader.loadClip(“imagem.jpg”,alvo);
//para
stop();

Baixe os arquivos aqui.

, , ,

2 Comentários

Panorama em Papervision 3D

papervision.jpg

É impressionante o que se pode fazer como Papervision.
E enquanto uma engine openGL não chega ao flash, isto é uma apimentada nas experimentações 3d dentro do plugin.

Confira:
http://www.papervision3d.org/demos/panorama/

, , ,

Sem Comentários

Envio de Formulário Flash + PHP/ASP Cdonts/ASPEmail/ Aspmail

Olá pessoal.

Uma das dúvidas que o pessoal costuma muito ter no fórum iMasters, é como enviar um formulário via flash.
Pensando nisso, desenvolvi um formulário simples, com campos de texto, checkbox, combobox e radio.

E o melhor, você pode optar pelo envio via PHP, ASPmail, Asp Cdonts, Asp CDOSYS ou AspEmail.

enviomail.jpg

O flash utiliza o objeto loadVars para enviar e retornar uma string das páginas dinâmicas, exibindo o resultado.
Para configurar, basta alterar a variável formaEscolhida, que pode conter os seguintes valores:

1 – Envio em PHP.
2 – Envio em ASP, com componente CDONTS.
3 -Envio em ASP, com componente Persits AspEmail.
4 – Envio em ASP, com componente Aspmail.
5 - Envio em ASP, com componente CDOSYS.

Você pode baixar o exemplo aqui.

Nota
Para que o envio ocorra da maneira correta, certifique-se que seu servidor suporta a linguagem selecionada, e no caso do ASP, se tem o componente instalado.

, , , , , , , , ,

102 Comentários