Mostrando postagens com marcador Action Script. Mostrar todas as postagens
Mostrando postagens com marcador Action Script. Mostrar todas as postagens

segunda-feira, maio 28, 2007

Typewriter


function typeWriter(timeWriter:Number){
//criamos uma nova variável para chamar o xml
var oXML:XML = new XML();
//a variável world é para fechar o setInterval
var world:Number = 0
//ignoramos os espaços em branco do xml
oXML.ignoreWhite = true;
//começa a carregar o xml
oXML.onLoad = function():Void{
//define uma variável para ler o primeiro nó do xml
var rootNode:XMLNode = this.firstChild;
//no contador abaixo, passamos a variável por todos os nós internos
for(var i = 0; i < rootNode.childNodes.length; i++){
//lê os nós internos
var nodeDados:XMLNode = rootNode.childNodes[i];
//contamos os itens dentro desa vairável
for(var n = 0; n < nodeDados.childNodes.length; n++){
//lemos o atributo 'cdata' dos xmls
var nodeValue:String = nodeDados.childNodes[n].nodeValue;
//esse intervalo é o responsável pelo tempo da digitação
var textWriterInterval = setInterval(function(){
//incrementa a variável
world++
/*
aqui está o truque. Com o substr, pegamos o index zero do campos de texto e inserimos
uma letra nele, escolhida pela variável world
*/
text_txt.htmlText = nodeValue.substr(0, world) ; //nome do campo de texto
//o if abaixo fecha o intervalo para evitar consumo desnecessário de memória
if(world == nodeValue.length){
clearInterval(textWriterInterval)
}
},timeWriter)
}
}
}
//não importa o quanto de texto entre, o campo de texto se ajusta a ele
text_txt.autoSize = true;
//carrega o arquivo xml
oXML.load("texte2.xml");
}
box_mc.onPress = function(){
typeWriter(45)
}


É um efeito simples e usável
De qualquer maneira, ele está usando xml, mas no lugar dele você poderia usar um txt ou mesmo uma variável dentro do campo de texto.

Arquivo de exemplo:
aqui

Vc vai precisar do winrar para abrir o documento compatado
(agradecimentos à nayara)

segunda-feira, maio 07, 2007

Resize em flash, flash 100% e liquid flash

Eu sei, to sumido, mas entenda, eu tinha muito job para fazer


Pelo menos adquiri mais experiência e agora posso postar mais códigos!



Seguinte, tá em moda colocar o flash em 100% da área do browser. Eu pessoalmente acho isso besteira, mas sempre tem um cliente mala ou outro que pede.

Isso e um tico mais complicado:

Começando pelo css da página, vc tem que colocar esse código:


html, body {
height: 100%;
margin: 0;
padding: 0;
}


Depois, no código embed do código html, vc muda width e height da exibição do swf.
E depois no flash vc coloca o seguinte código:

function Resize(){
//sem escala para evitar "perda" de qualidade
Stage.scaleMode = "noScale";
/*defina as posições inciais dos elementos*/
var resizeListener:Object = new Object();
resizeListener.onResize = function() {
/*aqui vc coloca todos os elementos que quer que fiquem com posicionamento líquido no flash*/
};
Stage.addListener(resizeListener);
}


Simples né?

segunda-feira, março 19, 2007

Function criaEspiral()

Aqui eu usei a mc tween do zeh:
Aqui

#include "mc_tween2.as"

function criaEspiral(){
var colorRandom:Array = new Array();
colorRandom.push(0xffffff);
colorRandom.push(0xffffff);
colorRandom.push(0xffffff);
var totalColors:Number = Math.round(Math.random() * colorRandom.length)
var xCenter:Number = Stage.width / 2;
var yCenter:Number = Stage.height / 2;
var espace:Number = 5
var numMC:Number = 15;
var circ:Number = 4;
var pi:Number = Math.PI / circ;

var mcQuad:MovieClip = this.createEmptyMovieClip("quad_mc",0);
mcQuad._alpha = 0

with(mcQuad){
beginFill(colorRandom[totalColors],100);

lineTo(-5,0);
lineTo(-5,-5);
lineTo(5,-5);
lineTo(5,5);
lineTo(-5,5);
lineTo(-5,0);

endFill();
_x = xCenter;
_y = yCenter;

for(i=0; i < numMC; i++){
radAngle = i*pi;
duplicateMovieClip("circ_mc"+i,this.getNextHighestDepth());
var totalMovies = this["circ_mc" + i]
totalMovies._alpha = 0
with(totalMovies){
alphaTo(100,.5,"easeInOutExpo",.2)
_x += Math.sin(radAngle) * (espace * (i*2))
_y += Math.cos(radAngle) * (espace * (i*2))
}
totalMovies.onRollOver = function(){
this.xScaleTo(150,.5,"easeOutElastic")
this.yScaleTo(150,.5,"easeOutElastic")

}
totalMovies.onRollOut = function(){
this.xScaleTo(100,.5,"easeOutElastic")
this.yScaleTo(100,.5,"easeOutElastic")
}

}
}
}

criaEspiral()

quarta-feira, novembro 08, 2006

TextField (input) com limite de chars


this.createTextField("age_txt", this.getNextHighestDepth(), 10, 10, 30, 22);
age_txt.type = "input";
age_txt.border = true;
age_txt.maxChars = 2;
age_txt.restrict = "0-9";
this.onEnterFrame = function(){
if(age_txt.length == 2){
trace("CHEGA")
}
}

segunda-feira, outubro 16, 2006

Evitando cache do XML

Quando se usa XML + flash, sempre se tem o perigo do cliente armazenar no cache os dados do xml.

Esse código gera um número randômico, que é adicionado no ?nocaache da URL.

Feel Free ;D


var cacheKill:Number = Math.round(Math.random()*9999999)
var seuXML:XML = new XML()
seuXML.onLoad = function() {
// acoes
}
seuXML.load("arquivo.xml?noCache="+cacheKill)

terça-feira, setembro 26, 2006

Preloader básico

Como sempre faço em exemplos, o movie clip "bar" não existe no stage até o filme ser acessado :D


var bar:MovieClip = this.createEmptyMovieClip("bar_mc",9)
bar.beginFill(0xffcc00)
bar.lineTo(400,0)
bar.lineTo(400,15)
bar.lineTo(0,15)
bar._x = 200
bar._y = Stage.height / 2
bar.endFill()

bar._xscale = 0;
this.onEnterFrame = function (){
var n= (this.getBytesLoaded() * 100) / this.getBytesTotal();
bar._xscale = n
if (this.getBytesLoaded() >= this.getBytesTotal()) {
gotoAndPlay(2);
this.onEnterFrame = null;
}
}
stop();

segunda-feira, setembro 18, 2006

Desenhos abstratos

Esse code abaixo é semelhante ao que eu estou usando no meu portifólio.
Portanto, nada de querer dizer que criou o código original :P

Eu queria fazer um código que, a cada vez que a pessoa entrasse na página, ele carregasse um novo desenho totalmente aleatório.

Para colocar novas cores, basta adiciona-las no array. O script conta elas automaticamente e gera um novo código a cada entrada.


//array que armazena as cores das linhas
var colors:Array = new Array();
colors[0] = 0x99aadd;
colors[1] = 0xffcc00;
colors[2] = 0xff0000;
colors[3] = 0xaadd99;
colors[4] = 0xddff99;
colors[5] = 0xff44aa;
colors[6] = 0xaa0000ff;
colors[7] = 0x00ff00;

//faz uma contagem de acordo com o número de dados no array colors
for(mcs=0;mcs < colors.length;mcs++){

var spaceY = 3
var lines1:MovieClip = this.createEmptyMovieClip("lines_mc"+mcs,mcs);
lines1._x = Stage.width / 2
lines1._y = Stage.height / 2
//alinha as linhas no centro do stage
lines1._x -= Math.round(Math.random() * (spaceY*mcs) )
lines1._y -= spaceY*mcs
lines1.onEnterFrame = function(){
//essa é a parte faz o número randômico das linhas
var numLines = 10
var alpha = Math.floor(Math.random() * 150)
var c = Math.round(Math.random() * colors.length);
var curve1 = Math.ceil(Math.random() * 250 )
var curve2 = Math.round(Math.random() * 140 )
var curve3 = Math.floor(Math.random() * (-99) )
var curve4 = Math.ceil(Math.random() * (-Math.round(Math.random() * 150)) )
this._rotation += 9
//seta as configurações das linhas sem o beginfFill()
lines1.lineStyle(2,colors[c],alpha)
/*esse é o código que faz o desenho de acordo com os números
randômicos
*/
lines1.curveTo(curve1,curve2,-curve3,curve4)
lines1.curveTo(curve2,curve3,curve4,-curve1)
lines1.curveTo(curve3,curve4,curve1,-curve2)
lines1.curveTo(curve4,curve1,-curve2,curve3)
lines1.curveTo(-curve2,-curve4,curve3,curve1)
lines1.curveTo(-curve3,-curve1,curve2,curve4)

for(time = 0; time < numLines ; time++){
this.onEnterFrame = null
}
}
}

sexta-feira, setembro 08, 2006

Function Draw()

Essa function funciona com você clicando no stage e arrastando o ponteiro do mouse. Ele vai desenhar uma linha fina. A cada clique novo, ele carrega uma cor randômica.

Você pode aumentar a espessura da linha pressionando a seta para cima do seu teclado, ou diminuir pressionando a seta para baixo.

Se quiser limpar e começar tudo de novo, basta pressionar "backspace" ou "delete" =) :


function Draw(){
this.createEmptyMovieClip ("canvas_mc",this.getNextDepth());
var mouseListener:Object = new Object();
var keyListener:Object =new Object();
var espessura = 2;
var c;
//definindo cores
var colors:Array = new Array();
colors[0] = 0xff0000;
colors[1] = 0xffcc00;
colors[2] = 0x99aadd;
colors[3] = 0x00ff00;
colors[4] = 0xaadd99;
colors[5] = 0x0000ff;
colors[6] = 0x000000;
//desenha
mouseListener.onMouseDown = function(){
this.drawning = true;
c = Math.floor(Math.random()*7);

};
//"imprime o desenho na tela
mouseListener.onMouseMove = function(){
if(this.drawning){
canvas_mc.lineTo(_xmouse,_ymouse);
canvas_mc.moveTo(_xmouse,_ymouse);
canvas_mc.onEnterFrame = function(){
canvas_mc.lineStyle(espessura,colors[c],100);
if(Key.isDown(Key.UP)){
espessura +=1;
espessura++;
};
if(Key.isDown(Key.DOWN)){
espessura -=1
espessura--;
};
};
};
updateAfterEvent();
};
//Reseta o valor do traço
mouseListener.onMouseUp = function(){
this.drawning = false;
espessura = 0
canvas_mc.onEnterFrame = function(){
canvas_mc.lineStyle(0,0xffffff,0);
};
};

Mouse.addListener(mouseListener);
//Apaga o desenho
keyListener.onKeyDown = function() {
if (Key.isDown(Key.DELETEKEY) || Key.isDown(Key.BACKSPACE)) {
canvas_mc.clear();
};
};
Key.addListener(keyListener);
}

Draw();

sexta-feira, setembro 01, 2006

Menu básico com movimento de easing


//definindo vars

var quad:MovieClip = this.createEmptyMovieClip("mcQuad",1)
var spaceX = 16
var spaceEasging = 98
var div = 8

//desenha o mc no stage
quad.beginFill(0x99aadd,100);
quad.lineTo(15,0)
quad.lineTo(15,15)
quad.lineTo(0,15)
quad.endFill();
quad._visible = false

//Duplica os mcs e posiciona eles no stage
for(i = 0; i <=4; i++){
quad.duplicateMovieClip("mcQuad"+i,this.getNextHighestDepth());
quad._x = spaceX * i
mcQuad0._visible = false
}

/*
mcQuad1.onRollOver = function(){
this._parent.mcQuad2.onEnterFrame = function(){
this._x += (spaceEasging - this._x) / div
}
}

Isso tudo faz o movimento dos quadrados
*/

mcQuad1.onRollOver = function(){
this._parent.createTextField("menu1_txt",9,mcQuad1._x,0,98,15)
//text Format
var menu1Txt_fmt:TextFormat = new TextFormat();
menu1Txt_fmt.color = 0xffffff;
menu1_txt._visible = true
menu1_txt.setTextFormat(menuTxt_fmt)
menu1_txt.selectable = false;
menu1_txt.background = true;
menu1_txt.autoSize = true
menu1_txt.backgroundColor = 0xaadd99
menu1_txt.text = "Lorem ispum dolor sit ament dolor lipsum psumdon"
this.onEnterFrame = function(){
this._x -= (8 + this._x) / div
}
this._parent.mcQuad2.onEnterFrame = function(){
this._x += (spaceEasging - this._x) / div
}
this._parent.mcQuad3.onEnterFrame = function(){
this._x += ((spaceEasging + spaceX) - this._x) / (div*2)
}
this._parent.mcQuad4.onEnterFrame = function(){
this._x += ((spaceEasging + (spaceX*2))- this._x) / (div*3)
}
}

mcQuad1.onRollOut = function(){
delete menu1_txt
this.onEnterFrame = function(){
this._x += (0 - this._x) / div
}

this._parent.mcQuad2.onEnterFrame = function(){
this._x -= (-spaceX + this._x) / (div*3)
}
this._parent.mcQuad3.onEnterFrame = function(){
this._x -= ((-spaceX*2)+ this._x) / (div*2)
}
this._parent.mcQuad4.onEnterFrame = function(){
this._x -= ((-spaceX*3)+ this._x) / div
}
}

quinta-feira, agosto 31, 2006

Loudar movies clips externos

O mais básico que um programador faz quando quer deixar o filme principal é colocar eventos para loudar filmes externos.

O código abaixo louda um filme bem no meio do stage.


//cria o mc para loudar arquivos
_root.createEmptyMovieClip("news", _root.getNextHighestDepth());
//posiciona o movie clip no centro do stage
_root["news"]._x = Stage.width / 2;
_root["news"]._y = Stage.height / 2;
_root["news"].loadMovie("externo.swf");

Movie Clip girando com a posição do mouse


var mc:MovieClip = this.createEmptyMovieClip("ball_mc",1)
ball_mc.beginFill(0x99aadd,90)
ball_mc.lineTo(0,100)
ball_mc.lineTo(100,100)
ball_mc.lineTo(100,0)
ball_mc.endFill()

ball_mc._x = Stage.width / 2
ball_mc._y = Stage.height / 2

onMouseMove = function(){
var yPos = ball_mc._y - _ymouse;
var xPos = ball_mc._x - _xmouse;
var angle = Math.atan2(yPos,xPos);
angle = angle *180/Math.PI;
ball_mc._rotation = angle

}

terça-feira, agosto 29, 2006

Glow filter

Funciona apenas no flash 8 ou superior:


import flash.filters.GlowFilter;

var rect:MovieClip = createRectangle(90, 9, 0x33CCFF, "gradientGlowFilterExample");
var blur:Number = 9


var color:Number = 0x33CCFF;
var alpha:Number = .9;
var blurX:Number = blur;
var blurY:Number = blur;
var strength:Number = 2;
var quality:Number = 1;

var filter:GlowFilter = new GlowFilter(color,
alpha,
blurX,
blurY,
strength,
quality,
inner,
knockout);
var filterArray:Array = new Array();
filterArray.push(filter);
rect.filters = filterArray;

function createRectangle(w:Number, h:Number, bgColor:Number, name1:String):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip(name1, this.getNextHighestDepth());
mc.beginFill(bgColor);
mc.lineTo(w, 0);
mc.lineTo(w, h);
mc.lineTo(0, h);
mc.lineTo(0, 0);
mc._x = 0
mc._y = 0
return mc
}

rect.onEnterFrame = function(){
trace(this._x)
this._x += Math.round((98 - this._x) / 2)
if(this._x >= 78){
this.onEnterFrame = function(){
this._x -= 2
if(this._x <= 0){
this._x = 0
}
}
}
}

quinta-feira, agosto 24, 2006

Boncing sem flash 8 :)


function boncing(velBoncing,boncingFinal,boncingTrans1,boncingTrans2){
/* velBoncing = velocidade
boncingFinal = Valor final do _xscale e _yscale
boningTrans1 = Valor do _xscale e _yscale para o primeiro 'boing'
boningTrans2 = Valor do _xscale e _yscale para o segundo 'boing'
*/
ball_mc.onEnterFrame = function(){
boncingTotal = this._xscale = this._yscale += velBoncing
if(boncingTotal >= boncingFinal){
this.onEnterFrame = function(){
boncingTotal = this._xscale = this._yscale -= velBoncing
if(boncingTotal <= boncingTrans1){
this.onEnterFrame = function(){
boncingTotal = this._xscale = this._yscale += velBoncing
if(boncingTotal >= boncingFinal){
this.onEnterFrame = function(){
boncingTotal = this._xscale = this._yscale -= velBoncing;
if(boncingTotal <= boncingTrans2){
this.onEnterFrame = function(){
boncingTotal = this._xscale = this._yscale += velBoncing;
if(boncingTotal >= boncingFinal){
this.onEnterFrame = null
}
}
}
}
}
}
}
}
}
}
}
boncing (12,150,130,140)

segunda-feira, agosto 21, 2006

Motion de Scroll com easing

troque os instances pelo que vc precisar. Esse scroll abaixo só funciona para mover o objeto em questão para a esquerda:

function scrollRight(){
posX = 0
divEasing = 50
multiply = 0.65
distMax = -9000

obj_mc.onRollOver = function(){
objMove_mc.onEnterFrame = function(){
this._x -= (((posX++)*2) + this._x) / divEasing
if(this._x <= distMax){
this._x = distMax
posX = null
}
}
}
obj_mc.onRollOut = function(){
objMove_mc.onEnterFrame = function(){
this._x -= (posX--) / divEasing
if(posX <= 0){
posX = 0
this._x = null
}
}
}
posX = 0
}