PDA

Просмотр полной версии : Про последовательность вывода, наверное...


Lobster2
15.07.2007, 20:16
Привет.

Столкнулся с такой проблемой:

Есть ролик, в котором есть готовые объекты на экране и есть слой в котором я аттачу битмап.

Проблема в том, что даже когда я выставляю 0 - вой стек, то аттаченое изображение все равно перекрывает все остальное...

а хотелось бы, чтобы оно было фоном для всего.


Вот код, на всякий случай.

Спасибо...


то, что на экране...


bot2_1._rotation = Math.random()*100;
bot2_1._alpha = Math.random()*60 + 45;
bot2_1._x = Math.random()*640;
bot2_1._y = Math.random()*480;
bot2_1.grav = 0;
bot2_1.wander = 1;
bot2_1.maxSpeed = 16;

bot2_1.addRepelClip(bot1_1, 1, 40);
bot2_1.addRepelClip(bot1_2, 1, 40);
bot2_1.addRepelClip(bot1_3, 1, 40);
bot2_1.addRepelClip(bot1_4, 1, 40);
bot2_1.addRepelClip(bot2_2, 1, 40);
bot2_1.addRepelClip(bot2_3, 1, 40);
bot2_1.addRepelClip(bot2_4, 1, 40);
bot2_1.addRepelClip(bot2_5, 1, 40);
bot2_1.addRepelClip(bot3_1, 1, 40);
bot2_1.addRepelClip(bot3_2, 1, 40);





то,что аттачится...



var damper = new flash.display.BitmapData(320, 240, false, 128);
var result = new flash.display.BitmapData(320, 240, false, 128);
var result2 = new flash.display.BitmapData(640, 480, false, 128);
var source = new flash.display.BitmapData(320, 240, false, 128);
var buffer = new flash.display.BitmapData(320, 240, false, 128);
var output = new flash.display.BitmapData(640, 480, true, 128);
var surface = flash.display.BitmapData.loadBitmap("surface");
var bounds = new flash.geom.Rectangle(0, 0, 320, 240);
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, 128, 128, "ignore");
attachBitmap(output, 0);
var ms = getTimer();
var frame = 0;



for (var i = 0; i < 145; i ++) {
source.setPixel (1+ random (320), 1 + random (240) , 16777215);
}


onEnterFrame = function ()
{



var _loc2 = obj1._x / 2; // obj 1
var _loc1 = obj1._y / 2;


//1

source.setPixel(_loc2 + 1, _loc1, 16777215);
source.setPixel(_loc2 - 1, _loc1, 16777215);
source.setPixel(_loc2, _loc1 + 1, 16777215);
source.setPixel(_loc2, _loc1 - 1, 16777215);

source.setPixel(_loc2 + 1, _loc1 -1, 16777215);
source.setPixel(_loc2 - 1, _loc1 + 1, 16777215);
source.setPixel(_loc2 - 1, _loc1 + 1, 16777215);
source.setPixel(_loc2 + 1, _loc1 - 1, 16777215);

source.setPixel(_loc2 + 2, _loc1, 16777215);
source.setPixel(_loc2 - 2, _loc1, 16777215);
source.setPixel(_loc2, _loc1 + 2, 16777215);
source.setPixel(_loc2, _loc1 - 2, 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, 640, 480), origin, water);
if (getTimer() - 1000 > ms)
{
ms = getTimer();
fps = frame;
fpsDisplay.text = fps.toString();
frame = 0;
}
else
{
++frame;
} // end else if
buffer = source;
source = result.clone();
};





как то так...