GÉRIO (93 pts)

EDUARDO WALMOTT (226 pts)

IRAPUAN MARTINEZ (45 pts)

PANDOGO (82 pts)

STICKMAN (155 pts)

DAUTON JANOTA (255 pts)

LEANDRO AMANO (83 pts)

AMAURY BENTES (123 pts)

RICARDO FIGUEIRA (33 pts)

BÁRBARA TOSTES (64 pts)

SYDNEY GANHO (60 pts)

KEN AWAMURA (130 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um menu que se move na horizontal e diminui no mouse over?

Tenho duas músicas no site, como crio um botão para mudar de música?

Como importar um texto no Flash com as tags de negrito do HTML?

Estou criando um combo works ou o famoso jogo de palavras.

Não consigo enviar uma instrução de um movieclip para uma outra cena.

Qual seria o comando para parar uma música e o resto dos sons continuassem a tocar e outro comando para faze-la tocar novamente?

FlashMX, um programa maduro para programadores?

Como randomizar o carregamento de 5 movieclips, que estão dentro de outro?

Existe alguma forma de o flash detectar se um load movie já foi carregado e executar uma ação depois disso.

Como pegar um objeto (movieclip) da biblioteca sem instanciá-lo no palco?

Quero fazer um objeto ficar ir alterando sua propriedade '_alpha' o tempo todo.

Preciso de um Script de Contagem regressiva para o Flash.

Como fazer uma impressão (print) somente em um determinado frame no Flash?

Tem jeito de no flash eliminar as variáveis que foram criadas?
ListBox no FlashMX.

Includes.

Jogo da Forca (terceira parte)

Primeiros passos - desenhando e animando

Alterando Artistic Media no Corel Draw.

RIA, Macromedia Flex e Laszlo Presentation Server

Como fazer uma panorâmica 360º com Flash e CorelDraw

Entendendo como funciona um preloader. Primeira parte.

Local Shared Objects segunda parte.

Imagem Pixel a Pixel no PhotoShop.

Efeito de texto esticado (stretched text).

Enquete interagindo Flash MX 2004 + PHP + MySql
Tangran

Waterfall

Eventos MX

Scroll Whell

Twang

Plasma

Throwballs

Sashacircle 5

Drag hittest

Comunicare

Bola quicando

Estática



De uma maneira bem simples, seria assim.

//Envio de formulário de email simples
function enviaFormulario(){
    var obj_s = new LoadVars();
    var obj_l = new LoadVars();
    obj_s.nome = nome.text; //Valor do nome
    obj_s.email = email.txt;
    obj_s.mensagem = mensagem.text;
    obj_l.onLoad = function(o){
        if(o){
            trace("dados cadastrados !");
        }
    };
    obj_s.sendAndLoad("arquivo.asp",obj_l,"POST");
}
//fim

A classe LoadVars, possui um conjunto de métodos que permitem ao desenvolvedor criar desde rotinas simples de envio de formulário de e-mail, até complexos acessos à bancos de dados.

Existia no Flash5 (e ainda existe no Flash MX), uma ação chamada loadVariables. Que permitia "trazer" textos externos para o flash. Esses textos poderiam estar em arquivos TXT ou em bancos de dados no servidor. Mas a utilização dessa ação era um tanto precária e não oferecia recursos práticos para o desenvolvedor.

Como qualquer classe, a LoadVars precisa ser instanciada. Para isso usamos o operador new como no exemplo a seguir:

var objLoadVars = new LoadVars();

O primeiro método que iremos ver, é o método load. Esse método tem apenas a funcinalidade de ler um arquivo e interpretar seu conteúdo.

var objLoadVars = new LoadVars();
objLoadVars.load("seuArquivo.txt");

Uma consideração sobre o arquivo txt deve ser feita:
O arquivo deve seguir um padrão URL QueryString. Mas o que seria isso ?

Uma QueryString, é uma sequencia de pares Variavel=Valor separados por um "&" como segue o exemplo (arquivo "seuArquivo.txt"):

Nome=Neto Leal&profissao=Programador&especialidade=Flash

Aqui podemos identificar três variáveis :

Variável Valor
------------------------------
Nome Neto Leal
profissao Programador
especialidade Flash

Assim o objeto LoadVars criado por você, teria três propriedades com os nomes e valores informados por você no arquivo TXT:

trace(objLoadVars.Nome); //Exibiria "Neto Leal"
trace(objLoadVars.profissao); //Exibiria "Programador"
trace(objLoadVars.especialidade); //Exibiria "Flash"

Mas aí existe um problema. Se você testar esse Script em sua máquina local, provavelmente irá funcionar. Porém em um servidor web, alguns imprevistos (já previstos) podem acontecer. O que provavelmente acontecerá, é que a ação trace será executada antes que os dados sejam lidos pelo FlashPlayer. O que quer dizer que você precisa primeiro identificar o momento exato que o Flash termina de ler o dados, para depois poder usá-los em seu script.

A classe LoadVars, possui um evento camado onLoad que é disparado justamente no momento em que os dados são lidos pelo Flash. Vejamos como ficaria nosso Script:

var objLoadVars = new LoadVars();
objLoadVars.load("seuArquivo.txt");

objLoadVars.onLoad = function(){
    trace(objLoadVars.Nome);
    trace(objLoadVars.profissao);
    trace(objLoadVars.especialidade);
};

Agora sim temos o resultado esperado.

Mas isso nem sempre é o suficiente. Você pode precisar de um conteúdo dinâmico para seu arquivo txt, e é aí que entram as linguagens server-side (ColdFusion, ASP, PHP ...). Você pode criar um arquivo no servidor na linguagem de sua preferência, e fazer com que seja retornado para o flash, texto dinâmico que pode até ser gerado a partir de uma consulta à banco de dados.

Vejamos o exemplo à seguir:

(Arquivo noticias.cfm)



Temos aqui um arquivo ColdFusion, que tem a funcionalidade de fazer uma consulta à banco de dados e trazer de lá uma única linha que será a notícia mais recente existente na tabela. Ao executarmos esse arquivo em um servidor ColdFusion através de um browser, teremos algo parecido com isso:

(Caso haja registro na tabela)

texto=Infomar realiza treinamentos oficiais&data=01/01/2003&fonte=Macromedia

(Caso não haja registro na tabela)

texto=Nenhuma Notícia&data=00/00/0000&fonte=Sem Fonte

O seu ActionScript ficaria da seguinte forma:

function atualizaNoticias(){
    var objNoticia = new LoadVars();
    objNoticia.load("noticia.cfm");
    objNoticia.onLoad = function(ok){
        if(ok){
            trace(objNoticia.texto);
            trace(objNoticia.data);
            trace(objNoticia.fonte);
        }else{
            trace("Erro na leitura do arquivo");
        }
    };
}

Outro caso de utilização do LoadVars, é o envio de dados para o servidor. Existem métodos dessa poderosa classe que permitem o envio e recebimento de dados provenientes de um servidor web.

objLoadVars.sendAndLoad(<arquivo>,<objReceptor>,<método de envio>);

O método sendAndLoad permite enviar e receber dados de um arquivo (informado no parâmetro "arquivo") no servidor. O parâmetro "objReceptor" é um objeto LoadVars que irá receber os dados retornados pela operação. Já o parâmetro "método de envio" indica a forma de envio das variáveis para o servidor (POST ou GET). Uma das diferenças entre os dois métodos, é a forma de "resgatar" esses dados do lado do servidor. Veja o exemplo utilizando ColdFusion:

(dados enviados com POST)

<cfoutput>#Form.suaVariavel#</cfoutput>

(dados enviados com GET)

<cfoutput>#URL.suaVariavel#</cfoutput>

Uma utilização bastante comum para o método sendAndLoad, é no desenvolvimento de formulários de contato em Flash. A grande vantagem do uso do método sendAndLoad, é que os dados são enviados para o servidor, que por sua vez trata os dados realizando consulta à banco de dados ou qualquer outro processo e devolve uma resposta que é compreendida pelo flash. Isso tudo sem a necessidade do redirecionamento da página. Então para o usuário final, a impressão que fica, é que os dados foram tratados no próprio cliente.

O ganho de tráfego é muito grande, pois apenas os dados necessários para a operação é que trafegam pelo servidor. Criando assim uma navegação mais leve e eficiente.

Veja o exemplo a seguir:

(arquivo formulario.fla)
function enviaForm(){
    var objEnvia = new LoadVars();
    var objRecebe = new LoadVars();

    objEnvia.nome = tNome_txt.text;
    objEnvia.email = tEmail_txt.text;
    objEnvia.mensagem = tMensagem_txt.text;

    objEnvia.sendAndLoad("email.cfm",objRecebe,"POST");
    objRecebe.onLoad = function(ok){
        if(ok){
            trace("dados enviados com sucesso!");
        }else{
            trace("Erro no envio");
        }
    };
}

(arquivo email.cfm)



Neto Leal



( 0 COMENTÁRIO ) | ( LINK PERMANENTE ) | 




Adotando que a animação que você deseja retroceder seja na time line principal e que tem apenas 30 frames. Coloque o segunite no frame 1:

stop();
voltar = false;
_root.onEnterFrame = function() {
    if (voltar == true) {
        gotoAndStop(_root._currentframe -= 1);
    }
};

No botão coloque o seguinte:

on (release) {
    if (_root._currentframe == 30) {
        _root.voltar = true;
    }
}

Se desejar retroceder algo que está em um MC só alterar os caminhos.

Ricardo Teixeira

Tenho esse aqui tambem =)

// Pra usar faça
back.onRelease = function() {
    seu_mc.playBack();
};
bstop.onRelease = function() {
    seu_mc.stop();
};
bplay.onRelease = function() {
    seu_mc.play();
};

//No Primeiro frame do filme coloque o seguinte:

ASBroadCaster.initialize(_global.events_mc=createEmptyMovieClip("__onEnterFrame__", Number.MAX_VALUE));
events_mc.onEnterFrame = function() {
    this.broadCastMessage("onEnterFrame");
};
MovieClip.prototype.$stop = MovieClip.prototype.stop;
MovieClip.prototype.stop = function() {
    if (this.$e instanceof Object) {
        events_mc.removeListener(this.$e);
        delete this.$e;
    }
    this.$stop();
};
MovieClip.prototype.$play = MovieClip.prototype.play;
MovieClip.prototype.play = function() {
    if (this.$e instanceof Object) {
        events_mc.removeListener(this.$e);
        delete this.$e;
    }
    this.$play();
};
MovieClip.prototype.playBack = function() {
    this.stop();
    if (this.$e == undefined) {
        this.$e = {};
        events_mc.addListener(this.$e);
    }
    this.$e._mc = this;
    this.$e.onEnterFrame = function() {
        if (this._mc._currentframe>1) {
            this._mc.prevFrame();
        } else {
            this._mc.gotoAndStop(this._mc._totalframes);
        }
    };
};

Neto Leal



( 5 COMENTÁRIOS ) | ( LINK PERMANENTE ) | 




Um direcional de video game??? Ou seja, criei um movieclip e 4 botões, um para o movieclip subir, um para decer, outro para ele ir para direita etc. Que ações coloco em cada botão para que estes, movimentem o MC?

Primeiro, falarei sobre a metodologia de definição de eventos através de ações de TimeLine. Essa prática surgiu na versão MX do Flash com a necessidade de organizar seu código de forma que ele esteja todo concentrado em um só espaço de seu filme.

No Flash uma função é um tipo de dado como outro qualquer. Ex.:

nome = "Neto";
trace(typeof(nome)); //Aparece string
fazAlgo = function(){
    // Faz alguma coisa
};
trace(typeof(fazAlgo)); //Aparece function

Ou seja, uma função é uma variável do tipo "function". Quando você define um evento de um botão através de uma ação de Timeline, na verdade você está atribuindo uma variável do tipo "function" à funcionalidade do evento. Veja o exemplo

//Botão instanciado com o nome "meu_btn"
meu_btn.onRelease = function(){
    trace("Fui pressionado e liberado");
}

Quando você clicar no botão a mensagem "Fui pressionado e liberado" aparecerá na janela output.

Dessa forma, respondendo a sua pergunta, temos o seguinte:

up_btn.onPress = function(){
    seu_mc.onEnterFrame = function(){
        this._y -= 10;
    }
    this.onRelease = this.onReleaseOutside = function(){
        delete seu_mc.onEnterFrame;
    }
}
down_btn.onPress = function(){
    seu_mc.onEnterFrame = function(){
        this._y += 10;
    }
    this.onRelease = this.onReleaseOutside = function(){
        delete seu_mc.onEnterFrame;
    }
}
left_btn.onPress = function(){
    seu_mc.onEnterFrame = function(){
        this._x -= 10;
    }
    this.onRelease = this.onReleaseOutside = function(){
        delete seu_mc.onEnterFrame;
    }
}
right_btn.onPress = function(){
    seu_mc.onEnterFrame = function(){
        this._x += 10;
    }
    this.onRelease = this.onReleaseOutside = function(){
        delete seu_mc.onEnterFrame;
    }
}

Neto Leal



( 0 COMENTÁRIO ) | ( LINK PERMANENTE ) | 




No PHP tem a função str_replace()
No ASP tambem tem replace()
No flash tem ?


Não, mais você pode criar. Só pensar um pouco em lógica proposicional.

Por exemplo, String é uma classe. Portanto ...

String.prototype.replace = function(l, n) {
    var arr = this.split("");
    for (var i = 0; i        if (arr[i] == l) {
            arr[i] = n;
        }
    }
    return arr.join("");
};
trace("aaabbb".replace("a", "x"));

Não sei se eu pensei do jeito certo, mas depois de converter a sequência de caracteres em uma matriz eu verifiquei se cada caractere é igual a aquele lá e substitui pelo novo ...

Guilherme G. G.


Pode ser assim também

String.prototype.replace = function(text, replacetext) {
    return this.split(text).join(replacetext);
};
trace("aaabbb".replace("a", "x"));

Isso basta =)

Neto Leal



( 0 COMENTÁRIO ) | ( LINK PERMANENTE ) | 

AVANÇADOS - 12-11-2003
Escrevendo e lendo arquivos TXT com o FlashMX.
Uma das melhores novidades do FlashMX é o objeto LoadVars. Com ele é possível fazer coisas incríveis com recursos nativos do Flash. leia mais ...

AVANÇADOS -   
AVANÇADOS -   

ACTIONSCRIPT - 29-04-2003   
Como retornar apenas duas casas decimais de um valor?

ACTIONSCRIPT - 14-03-2003   
Como posso duplicar 3 movieclips e posicioná-los diagonalmente?

ACTIONSCRIPT - 11-04-2003   
Como disparar um movieclip quando clico o mouse no palco?

ACTIONSCRIPT - 27-03-2003   
Como fazer uma impressão (print) somente em um determinado frame no Flash?

INTERAÇÕES - 21-03-2003   
Gostaria de fazer um sistema de login e senha no flash com ASP.

INTERAÇÕES - 07-03-2003   
Alguém poderia me dar umas dicas sobre o Flash Remoting?

ACTIONSCRIPT - 03-03-2003   
Como simular, com sharedObjects, um cookie e guardar o frame no qual o usuário estava quando saiu do filme?

WEBMASTER - 28-02-2003   
Preciso enviar um formulário integrando Flash e ASP.

ACTIONSCRIPT - 28-02-2003   
Um relógio digital mo formato HH:MM:SS

ACTIONSCRIPT - 17-02-2003   
Como eu faço um botão igual a do site http://www.ferryhalim.com/orisinal?

ACTIONSCRIPT - 16-02-2003   
Duplicate Movieclip com movimento, perspectiva, escala e serInterval.

TEXTO - 13-02-2003   
Como criar uma formatação para um texto importado de um TXT?

ACTIONSCRIPT - 06-02-2003   
Quero que quando eu passar o mouse sobre um botão, um movie clipe seja carregado em um determinado ponto da tela.

ACTIONSCRIPT - 18-01-2003   
Como fazer um efeito de escalar imagens no mouseOver e no MouseOut?

ACTIONSCRIPT - 20-12-2002   
Preciso simular um motion tween via action script.

ACTIONSCRIPT - 13-12-2002   
Como fazer um fade em um movieclip, do 100 a 0%?

ACTIONSCRIPT - 13-12-2002   
Como fazer para desabilitar a tecla tab do menu de botões?

INTERAÇÕES - 13-12-2002   
Como enviar e receber variáveis do flash para o PHP utilizando LoadVars?

ACTIONSCRIPT - 13-12-2002   
Para que serve e como usar o LoadVars? Substitui o LoadVariables?

ÁUDIO E VÍDEO - 13-12-2002   
Tenho duas músicas no site, como crio um botão para mudar de música?

TEXTO - 13-12-2002   
Como importar um texto no Flash com as tags de negrito do HTML?

ACTIONSCRIPT - 13-12-2002   
Não consigo enviar uma instrução de um movieclip para uma outra cena.

INTERAÇÕES - 13-12-2002   
Como pegar os valores de vários registros de um banco de dados e grava-las num Array no Flash?

INTERAÇÕES - 13-12-2002   
Como simular o "salvar imagem como" do botão direito do browser no Flash?

ACTIONSCRIPT - 13-12-2002   
Como fazer um movieclip andar numa área do palco e parar só usando actions?

ACTIONSCRIPT - 13-12-2002   
Como pegar um objeto (movieclip) da biblioteca sem instanciá-lo no palco?

ACTIONSCRIPT - 12-12-2002   
Qual é a melhor forma de carregar clips secundários? LoadMovie ou AttachMovie?

ACTIONSCRIPT - 12-12-2002   
Há como usar o loadMovie para abrir os thumbs um ao lado do outro?

ACTIONSCRIPT - 12-12-2002   
Como simular um texto sendo digitado, como uma máquina de escrever?

INTERAÇÕES - 12-12-2002   
Muitas vezes carrego um arquivo externo com LoadVariables e ele não funciona.

INTERAÇÕES - 12-12-2002   
Como armazenar dados em uma base de dados para só depois serem importadas para o Access?

ACTIONSCRIPT - 12-12-2002   
Gostaria de saber como criar um botão voltar e avançar? Como usar âncoras no Flash?