Posts de Agosto, 2008|Página de posts mensais

Preloader por etapas

É tipo aqueles preloaders com bolas que vai surgindo uma após a outra a medida que o site vai sendo carregado.

1º Crie um movieclip (circulo) com uma animação fazendo com este circulo vá crescendo (usei 16 frames), no 1º frame aperte F9 e digite stop(); faça o mesmo para o último frame.

2º No palco acrescente mais 4 movieclip cada um com instância de anim1, anim2, anim3, anim4, anim5.

3º Selecione todos eles e aperte F8 para criar outro movieclip de a este o nome de “preloader“.

4º Finalmente vamos pôr a mão na massa (THE CODE), selecione o movieclip que acabou de criar e aperte F9 e digite.

onClipEvent (enterFrame) {
t = _root.getBytesTotal();
c = _root.getBytesLoaded();
d = Math.round((c/t)*100);
if (d>=10 && d<=19) {
anim1.gotoAndPlay(2);
}
if (d>=20 && d<=29) {
anim2.gotoAndPlay(2);
}
if (d>=30 && d<= 39) {
anim3.gotoAndPlay(2);
}
if (d>=40 && d<= 49) {
anim4.gotoAndPlay(2);
}
if (d>=50 && d<= 59) {
anim5.gotoAndPlay(2);
}
}

Movimentar figura de acordo com o mouse AS2

Pra movimentar uma figura/movie no palco é fácil.
Ex: mouse para esquerda, movie para direita e mouse para cima, movie para baixo.

1º Faça um um desenho ou exporte uma figura e transgorme-a em movie, com instância “meuMovie” sem aspas.

this.onMouseMove=function () {
this.onEnterFrame=function () {
meuMovie._y = meuMovie._y-(meuMovie._y-(-this._ymouse))*.30;
meuMovie._x = meuMovie._x-(meuMovie._x-(-this._xmouse))*.30;

}
}

Movimentar figura de acordo com o mouse AS3

Para movimentar uma figura/movie no palco é fácil.
Ex: mouse para esquerda, movie para direita e mouse para cima, movie para baixo.

1º Faça um um desenho ou exporte uma figura e transgorme-a em movie, com instância “meuMovie” sem aspas.

meuMovie.addEventListener(Event.ENTER_FRAME, foi);

function foi(e) {
y=meuMovie.y-(meuMovie.y-(-mouseY))*.30;
x=meuMovie.x-(meuMovie.x-(-mouseX))*.30;
}

Good job!

AS2 para AS3

Muita gente ainda tem bastante dúvida quanto a mudaça de as2 para as3 (eu tbm), por isso caminhando pela net e lendo docs aprendí muita coisa e agora vou postar aqui para vocês também.

on()/onClipEvent():
AS2:
on (release) {
this._parent.gotoAndPlay(1);
}
AS3:
replayBtn.addEventListener(MouseEvent.CLICK, replayBtnClickListener);
function replayBtnClickListener (e) {
gotoAndPlay(1);
}
ou
replayBtn.addEventListener(MouseEvent.CLICK, function (e) {
gotoAndPlay(1);
});

loadMovie

AS2:
theClip.loadMovie(”animation.swf”);
AS3:
var l:Loader = new Loader();
l.load(new URLRequest(”animation.swf”));
theParent.addChild(l);

getURL()
AS2:
getURL(”http://nsdevaraj.wordpress.com/”);
AS3:
navigateToURL(new URLRequest(”http://nsdevaraj.wordpress.com/));

AS3 classe para uso getURL:
package {
import flash.net.*;
public function getURL (url:String,
window:String = “_self”):void {
var u:URLRequest = new URLRequest(url);
navigateToURL(u, window);
}
}

Uso:

getURL(”http://multiarts.wordpress.com/”);
ou
getURL(”http://multiarts.wordpress.com/”, “_blank”);

Efeito fumaça

Criei 2 camadas, na primeira faça tres frames vazios.

1º Frame

i = 0;

2º Frame

i = i + 1;
_root.fumaça.duplicateMovieClip(“fuma”+i,i);

3º Frame

gotoAndPlay(2);

Agora no primeiro frame da segunda camada faça uma bolinha cinza transforme em movieclip e instancie de fumaça e coloque nela:

onClipEvent (load) {
_x = 275;
_y = 350;
_width = 1;
_height = 1;
}
onClipEvent (enterFrame) {
_y = _y-3;
posx = random(550);
poswh = random(2);
_x = _x+(posx-_x)*.01;
_width = _width + poswh;
_height = _height + poswh;
if(_y < 0){
removeMovieClip(this);
}
}

depois abra o MC da bolinha transforme em outro movieclip e de o efeito de blur .

Simples menu+xml com Tweener

Fazia algum tempo que eu estava tentando fazer um menu como este, e mesmo pesquisando e perguntando em fórum não consegui e os que encontrei eram pago (eu não iria pagar mesmo se posso estudar e aprender).
Como no as3 não tem mais duplicateMovieClip e sim o addChild() e foi baseado no exemplo do Marcelo Duende que fiz este menu.

  1. Por tanto crie um movieclip com um pequeno polígono. Vá até sua library e no classPath do linkage ponha “Polygon” sem as aspas. Agora crie outro Movie Clip só que vazio e no Linkage ponha “container”. Para fechar crie um campo de texto dinâmico para receber o valor do nosso xml e instance-o de cliquei_txt.

Ok, nosso palco está pronto.

Crie uma nova camada e insira o seguinte código.

import caurina.transitions.Tweener;
// Declarando variaveis
var final:Number = new Number;
var cont:container = new container;
var xml:XML;
var url:URLRequest = new URLRequest("menu.xml");
var carrega:URLLoader = new URLLoader();
// Quando carregado chamar a função "carregado"
carrega.addEventListener("complete", carregado);
carrega.load(url);
// Adicionando MovieClip Pai
this.addChild(cont);
cont.y = 15;
cont.x = -350;
var objeto:Polygon = new Polygon();
// Função quando o xml é carregado
function carregado(e:Event):void {
// Carregando dados do xml
xml = new XML(carrega.data);
// Definindo a variavel final como tamanho de nós do xml
final = xml.item.length();
for (var i:Number = 0; i<=final-1; i++) {
// Adicionando MovieClips Filho e dando sua posição no randômica no palco
var objeto:Polygon = new Polygon();
objeto.clica.text = xml.item[i].@nome;//Resgata do XML o nome="Dicas"
objeto["id"] = i;
objeto.buttonMode = true;
objeto.mouseChildren = false;//Habilita mouseHand
cont.addChild(objeto);
Tweener.addTween(objeto, {x:i*85, time:1, delay:0, transition:"easeOutBack"});
//Se for y:i*85 fica na vertical, lembrando que 85 aqui é a distancia entre os botões
// Evento de clique no movie clip filho
objeto.addEventListener(MouseEvent.MOUSE_DOWN, ChamaObj);
}
}
// Função do clique
function ChamaObj(event:MouseEvent):void {
cliquei_txt.text = xml.item[event.currentTarget["id"]].@link;
}
O xml

<menu>
<item nome=”Home” link=”http://site.com” />
<item nome=”Dicas” link=”http://site2.com” />
<item nome=”Contato” link=”http://site3.com />

<item nome=”Portifólio” link=”http://site4.com” />

</menu>

Pronto, teste seu filme e veja o resultado. Qualquer dúvida… comente.

Mostrar Hora e Data

Nesse Exemplo estou usando 2 campos de textos instanciandos
texto1 e texto2
Para aprendizado, aconselho a criação do TextField via actionscript

var tempo:Timer = new Timer(1000);
tempo.start();
tempo.addEventListener(TimerEvent.TIMER,mostra);
function mostra(evento:TimerEvent):void {

var valores:Date = new Date();
var ano:String=String(valores.getFullYear());
var mes:String=String(valores.getMonth()+1);
var dia:String=String(valores.getDate());
var data_formatada:String=dia + “/” + mes + “/” + ano;
texto1.text=data_formatada;

var hora:String=String(valores.getHours());
var minuto:String=String(valores.getMinutes());
var segundo:String=String(valores.getSeconds());

//Condições para acrescentar ‘0′ (zero)
if(hora.length==1){
hora = “0″ + hora;
}

if(minuto.length==1){
minuto = “0″ + minuto;
}

if(segundo.length==1){
segundo = “0″ + segundo;
}

var horario:String=hora + “:” + minuto + “:” + segundo;
texto2.text=horario;
}

fonte: http://ronaldohard.wordpress.com/2008/04/20/as3-data-hora/

Botão fugitivo

Primeiro faça um mc qualquer com instacia de bt_mc

bt_mc.addEventListener(MouseEvent.MOUSE_OVER, bt);//Adciona evento over
bt_mc.buttonMode = true;//Exíbe o cursor hand (mão)

function bt(e:MouseEvent):void {
x = Math.random()*100;
y = Math.random()*400;

}