terça-feira, março 30, 2010

smoothImageLoader

Esse scrip é um para quem problema em carregar imagens externas e depois redimensionar, os créditos não são meus achei ele no site frontend-multimedia estou aqui apenas propagando um bom código.

Aqui a função:

_global.smoothImageLoad = function(imgURL, targetMovie) {
var i = 0;
do {
i++;
} while (eval("_root.smoothImageLoadTemp"+i) != undefined);
tmc = _root.createEmptyMovieClip("smoothImageLoadTemp"+i, _root.getNextHighestDepth());
tmc.createEmptyMovieClip("ti",tmc.getNextHighestDepth());
tmc.tm = targetMovie;
with (tmc) {
tmcl = new MovieClipLoader();
tmcl.onLoadComplete = function() {
ti.onEnterFrame = function() {
pixelData = new flash.display.BitmapData(ti._width, ti._height);
pixelData.draw(ti);
tm.attachBitmap(pixelData,1,true,true);
tm.smoothImageLoadComplete();
removeMovieClip(ti._parent);
};
};
tmcl.loadClip(imgURL,tmc.ti);
}
};

Aqui você chama a imagem e o movie clip alvo.

smoothImageLoad("image.jpg", mytargetmc)

Um trace básico pra ver se deu carto.

mytargetmc.smoothImageLoadComplete = function() {
trace("opa deu certo!")
}

Marcadores: , , ,

Efeito de agua no flash AS2

Depois de muito tempo sem dar atenção aqui para este blog vou deixar uns problem solving, do dia-a-dia por aqui.

Aqui um afeito de água no flash dei uma arrumadinha no que achei site rainelaw é bem simples de aplicar para este caso.
1. Crie um novo documento 256px X 256px;
2. importe uma imagem do mesmo tamanho para a livraria do flash
3. aperte ALT+L na clique com botão direito na imagem va em "Linkage Properties";
4. Em "Identifier" de o nome "surface" e marque o check box "Export for ActionScript" e "Export in first frame";
5. cole a action a baixo no primeiro frame:

var damper = new flash.display.BitmapData(128, 128, false, 128);
var result = new flash.display.BitmapData(128, 128, false, 128);
var result2 = new flash.display.BitmapData(256, 256, false, 128);
var source = new flash.display.BitmapData(128, 128, false, 128);
var buffer = new flash.display.BitmapData(128, 128, false, 128);
var output = new flash.display.BitmapData(256, 256, true, 128);
var surface = flash.display.BitmapData.loadBitmap("surface");
var bounds = new flash.geom.Rectangle(0, 0, 128, 128);
var origin = new flash.geom.Point();
var matrix = new flash.geom.Matrix();
var matrix2 = new flash.geom.Matrix();
matrix2.a = matrix2.d=2;
var wave = new flash.filters.ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0);
var damp = new flash.geom.ColorTransform(0, 0, 9.960937E-001, 1, 0, 0, 2, 0);
var water = new flash.filters.DisplacementMapFilter(result2, origin, 4, 4, 48, 48, "ignore");
attachBitmap(output,0);
var ms = getTimer();
var frame = 0;
var mouseDown = false;
onMouseDown = function () {
mouseDown = true;
};
onMouseUp = function () {
onEnterFrame();
mouseDown = false;
};
onEnterFrame = function () {
if (mouseDown) {
var xmouse = _xmouse/2;
var ymouse = _ymouse/2;
vv += 10;
v -= 10;
source.setPixel(xmouse+vv,ymouse,16777215);
source.setPixel(xmouse+v,ymouse,16777215);
source.setPixel(xmouse,ymouse+vv,16777215);
source.setPixel(xmouse,ymouse+v,16777215);
source.setPixel(xmouse,ymouse,16777215);
}
result.applyFilter(source,bounds,origin,wave);
result.draw(result,matrix,null,"add");
result.draw(buffer,matrix,null,"difference");
result.draw(result,matrix,damp);
result2.draw(result,matrix2,null,null,null,true);
output.applyFilter(surface,new flash.geom.Rectangle(0, 0, 256, 256),origin,water);
buffer = source;
source = result.clone();
};

Marcadores: , , ,