И так урок для красивой надписи c фейерверком
скачайте сфку себе на комп а то тормозит ужасно или напишите штмл страничку которая ее вызывает

если хотите в браузере.. просто если прям так то почемуто опеределние мыши не очень идет

должно быть все плавно и красиво
Посмотреть тут
http://www.vipsauna.com/test/my_logo.html
Исходник тут
http://www.vipsauna.com/test/my_logo.fla
Так как мы рассматриваем возможности 8 плеера то урок мы будем делать немножко по другому, так как рисовать Guaid слои нету времени

. И так у нас задача перенести эффект на клавишу мыши.
Первым делом на нижнем слое рисуем наш бэкграунд чтобы в частности использовать на нем событие OnPress даем ему инстанс нейм background_mc на втором слое создаем ключевой кадр уже в нем мы пишем код:

Код:
// смысл данного эффекат заключается в том что мы создаем пустой мувик, и
//начинаем перекрашивать в нем пиксели в нужный нам цвет
//естественно возникает вопрос если мы только добовляем пиксели, то как происходит,
//движение, в этом нам помогает ColorTransform который в каждый момент времени делает
// пиксели более прозрачными
// Например представьте что вы в первом кажре вашего мувиклипа нарисовали точку
// На втором вы эту точку сдвинули чуть вправо а вместо этой оставили точку с половиной прозрачности
// На 3 вы делаете тоже самое уже с двумя точками, в конце концов последняя точка просто исчезнет, а у вас
// появится эффект trail - хвоста, точка движется и оставляет за собой след, так же и тут
Stage.scaleMode = 'noScale';
//создаем мувик для отображения частиц
this.createEmptyMovieClip("fire", 1);
//создаем мувик для отображения обводки
this.createEmptyMovieClip("obvodka", 2);
//Создаем канвас (контейнер в котором будем рисовать)
var fireConvas = new flash.display.BitmapData(300, 300, true, 0);
//копируем созданный канвас в мувик
fire.attachBitmap(fireConvas, 1);
//создаем матрицу из стандартного класса Matrix
var baseMatrix = new flash.geom.Matrix();
//создаем объект трансформации из стандартного класса ColorTransform
var fade = new flash.geom.ColorTransform();
//устанавливаем alphaMultiplier, данный параметр отвечает за то как быстро
//картинка будет исчезать, представьте скажем мувиклип с объектом на котором в каждом
//фрейме alpha будет увеличиваться на 1.
fade.alphaMultiplier = 0.8;
// гравитация
var grav = 0.2;
//максимальное количество частиц
var maxparticles = 200;
//количество частиц генерируемое за раз
var particleNum = 2;
//цвет обводки
var obvColor = 0xFF6633;
//толщина линии обводки
var obvHeight = 2;
//цвет частички
var particlecolor = 0xFFFF6633;
//цвет полупрозрачной частички обратите внимание что первые два символа это прозрачность,
//остальное составляюще RGB цвета как обычно
var particlecolorAlpha = 0x50FF6633;
//цвет свечения частички
var particleglowcolor = 0xEEA055;
//массив с будующими частичками
var particles = new Array();
// создаем объект свечения Glow аналогичен фотошоповскому
var glow = new flash.filters.GlowFilter(particleglowcolor, 5, 15, 15);
//применияем свечение ко всему объекту содержащему наши частички
//чтобы они светились все сразу и к обводке, тому что мы рисуем
fire.filters = [glow];
obvodka.filters = [glow];
//блендмоде, как объекты внутри контейнера перекрываются, нажмите F1 на этом слове
//появится красочный хелп илюстрирующий каждое совйство
fire.blendMode = "add";
//теперь мы создаем событие на нажатие на нашем бэкграунде
//то что мы рисовали до стирается, точка рисования устанавливается
//в позицию мыши и описываем как будет выглядить наша обводка
background_mc.onPress = function() {
obvodka.clear();
obvodka.moveTo(_xmouse, _ymouse);
obvodka.lineStyle(obvHeight, obvColor, 100);
};
//создаем оснавное событие
onEnterFrame = function () {
//если левая кнопка мыши зажата
if (Key.isDown(1)) {
// мы продолжаем линию
obvodka.lineTo(_xmouse, _ymouse);
//и создаем частички которые засовываем в начало массива с ними
for (var i = particleNum; i>=0; i--) {
particles.unshift(createParticle(_xmouse, _ymouse, 0, random(3)+1));
}
//если вдруг оказывается что частичек у нас больше чем надо
// просто отсекаем самые последние, по число ранвое максимальному количеству частиц
if (particles.length>maxparticles) {
particles.length = maxparticles;
}
}
//теперь мы рисуем все частички
for (i in particles) {
currparticle = particles[i];
//мы добавляем к нашей картинк один пиксель
fireConvas.setPixel32(currparticle.x, currparticle.y, particlecolor);
// а теперь раставляем пиксели вокруг созданого получив крестик
//но так как прозрачность вновь создаваемых меньше чем у центрального
//из далека мы получаем вполне приятный кружочек, а не корявый пиксель
fireConvas.setPixel32(currparticle.x+1, currparticle.y, particlecolorAlpha);
fireConvas.setPixel32(currparticle.x-1, currparticle.y, particlecolorAlpha);
fireConvas.setPixel32(currparticle.x, currparticle.y-1, particlecolorAlpha);
fireConvas.setPixel32(currparticle.x, currparticle.y+1, particlecolorAlpha);
//заставляем каждую частичку сдвинуться
moveParticle(currparticle);
}
// и вот самое главное
// мы применяем трансформацию цвета, в данном случае увеличиваем альфу
// не так буквально, но наверно вы понимаете о чем я
// закомменте данную строчку чтоб увидет чтоб было без нее
fireConvas.colorTransform(fireConvas.rectangle, fade);
};
//функция создания частички
function createParticle(x, y, angle, power) {
var prt = {};
//позиция
prt.x = x;
prt.y = y;
//случайный угол падения и сила-скорость
angle = -angle-Math.PI+Math.PI*Math.random()*2;
power = -power/2+power+0.5*power*Math.random();
//вертикальная и горизонтальная скорость
prt.vx = Math.cos(angle)*power;
prt.vy = -Math.sin(angle)*power;
return prt;
}
//движение частички
function moveParticle(particle) {
// ну а тут считаем новую позицию частички
particle.x += particle.vx;
particle.y += particle.vy;
//если частичка улетела ниже пола то мы ее застовляем отскочить с уменьшенной
//вертикальной скоростью и случайной горизонтальной на порядок меньше пред.
if (particle.y>280) {
particle.y = 280;
particle.vy = -Math.abs(particle.vy)/2;
(random(2) == 0) ? particle.vx *= -Math.random() : particle.vx *= Math.random();
}
// заставляем частичку падать под действием силы гравитации
particle.vy += grav;
}