Re: ВОПРОСы ЗНАТОКАМ ФЛЭШ
Написал xm в 21/12/2006 12:56:58
вот. в скриптах не разбираюсь никак.
это салют
желтого цвета
а надо сделать разноцветный и четкий
чё то я тут нормальных значений цвета не найду.
вощем так. хачу:
1. не 1, а 3 элемента
2. разноцветных
3. более четких
4. увеличить весь салют
5. сменить 22фпс на 12
да, если флэш8 надо поставить publish>player6
function generate()
{
rc = colors[random(colors.length)];
var _l1 = 0;
while (_l1 < 100)
{
do
{
var rx = random(200) - 100;
var ry = random(200) - 100;
var rz = random(200) - 100;
} while (rx * rx + ry * ry + rz * rz > 10000 || rx * rx + ry * ry + rz * rz < 9000)
v[l1] = new vertex(v[400].xx, v[100].yy - 10, v[100].zz, rx + v[100].xx, ry + v[100].yy + 10, rz + v[100].zz, rc);
_l1++;
} // end while
} // End of the function
function fire()
{
v = new Array();
rc = colors[random(colors.length)];
v[100] = new vertex(random(100) - 50, centery, random(100) - 50, rx = random(100) - 50, random(100) - 50, random(100) - 50, rc);
} // End of the function
_root.onLoad = function ()
{
var _l1 = this;
vertex = function (x, y, z, xx, yy, zz, c)
{
var _l1 = this;
_l1.x = x;
_l1.y = y;
_l1.z = z;
_l1.c = c;
_l1.xx = xx;
_l1.yy = yy;
_l1.zz = zz;
};
vertex.prototype.rotation = function (AX, AY, AZ)
{
var _l1 = this;
var CAX = Math.cos(AX);
var SAX = Math.sin(AX);
var CAY = Math.cos(AY);
var SAY = Math.sin(AY);
var CAZ = Math.cos(AZ);
var SAZ = Math.sin(AZ);
var tempx = (_l1.xx - v0[0]) * CAZ - (_l1.yy - v0[1]) * SAZ;
var _l2 = (_l1.xx - v0[0]) * SAZ + (_l1.yy - v0[1]) * CAZ;
var temp2x = (tempx - v0[0]) * CAY - (_l1.zz - v0[2]) * SAY;
var _l3 = (tempx - v0[0]) * SAY + (_l1.zz - v0[2]) * CAY;
var temp3y = (_l2 - v0[1]) * CAX - (_l3 - v0[2]) * SAX;
var temp3z = (_l2 - v0[1]) * SAX + (_l3 - v0[2]) * CAX;
_l1.xx = temp2x;
_l1.yy = temp3y;
_l1.zz = temp3z;
};
vertex.prototype.draw = function ()
{
var _l2 = this;
var x = (_l2.xx - _l2.x) * n / 50 + _l2.x;
var y = (_l2.yy - _l2.y) * n / 50 + _l2.y;
var z = (_l2.zz - _l2.z) * n / 50 + _l2.z;
var xx = x * distation / (distation - z) + centerx;
var _l3 = y * distation / (distation - z) + centery;
if (n > 40)
{
var _l1 = 5 * distation / (distation - z) * (51 - n) / 10;
}
else
{
_l1 = 5 * distation / (distation - z);
} // end if
_root.beginGradientFill("radial", [l2.c, _l2.c], [100, 0], [0, 255], {matrixType: "box", x: xx - _l1, y: _l3 - _l1, w: 2 * _l1, h: 2 * _l1, r: 0});
_root.moveTo(xx - _l1, _l3 - _l1);
_root.lineTo(xx - _l1, _l3 + _l1);
_root.lineTo(xx + _l1, _l3 + _l1);
_root.lineTo(xx + _l1, _l3 - _l1);
_root.lineTo(xx - _l1, _l3 - _l1);
_root.endFill();
};
centerx = 200;
centery = 90;
distation = 700;
rad = 0.008727;
colors = new Array(251260250, 251260250);
fire();
n = -20;
};
_root.onEnterFrame = function ()
{
_root.clear();
if (n <= 0)
{
v[100].rotation(0, rad);
var x = (v[100].xx - v[100].x) * (n + 20) / 20 + v[100].x;
var y = (v[100].yy - v[100].y) * (n + 20) / 20 + v[100].y;
var z = (v[100].zz - v[100].z) * (n + 20) / 20 + v[100].z;
var xx = x * distation / (distation - z) + centerx;
var yy = y * distation / (distation - z) + centery;
if (n > -10)
{
var _l3 = 5 * distation / (distation - z) * -n / 10;
}
else
{
_l3 = 5 * distation / (distation - z);
} // end if
_root.beginGradientFill("radial", [v[100].c, v[100].c], [100, 0], [0, 255], {matrixType: "box", x: xx - _l3, y: yy - _l3, w: 2 * _l3, h: 2 * _l3, r: 0});
_root.moveTo(xx - _l3, yy - _l3);
_root.lineTo(xx - _l3, yy + _l3);
_root.lineTo(xx + _l3, yy + _l3);
_root.lineTo(xx + _l3, yy - _l3);
_root.lineTo(xx - _l3, yy - _l3);
_root.endFill();
n++;
}
else if (n > 0 && n < 50)
{
if (n == 1)
{
generate();
} // end if
var _l2 = 0;
while (_l2 < v.length)
{
v[l2].rotation(0, rad);
_l2++;
} // end while
var _l1 = 0;
while (_l1 < 100)
{
v[l1].draw();
_l1++;
} // end while
n++;
}
else
{
fire();
n = -20;
} // end if
};
Источник: https://powerclip.ru/modules/newbb/viewtopic.php?post_id=48230