/****************************
* @ MOHCTEP in this forum *
* @ © 2007 *
*****************************/
//С помощью этого класса раскрасим "хвост"
import flash.geom.ColorTransform;
//Можно спрятать курсор и рисовать узоры вслепую
//Mouse.hide();
// Спрячем клип-оригинал
follower._visible = false;
/*Обработка перемещения мыши. Поскольку любой клип ( и рут, в частности, в этом коде) является дефолтным листенером мышиных событий, то примем это как подарок Адобы(Макромедии) и не станем мутиться с дополнительными слушателями, раз событие стандартное.
Тут определяется свободная глубина в переменной. Ибо, чтоб не колбаситься с дополнительным счетчиком, я решил эту самую глубину присандалить к именам клипов, что сделает их уникальными.
Дублируем клип-звезду и сразу оставляем его там, где только-что побывала мышь.
Кроме того, дадим ему время жизни, закэшируем для ускорения и присвоим личный класс ColorTransform с красным цветом. Потом будем каждый клип анимированно перекрашивать по отдельности.
По каждому межкадровому переходу, каждый клип будет вызывать процедуру moving, со ссылкой на себя в качестве параметра.
В ней он будет уникально анимироваться, постареет, ну и кирдыкнется*/
this.onMouseMove = function() {
var d:Number = this.getNextHighestDepth();
var mc:MovieClip = follower.duplicateMovieClip('z'+d, d, {_x:_xmouse, _y:_ymouse, life:100, cacheAsBitmap:true, tr:new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0)});
mc.onEnterFrame = function() {
moving(this);
};
};
/*Анимация клипа. Здесь уменьшается время жизни
и обратно пропорционально ему растет размер клипа.
Клип потихоньку крутится
Покрасим клип его же собственным классом,
а потом этот класс модифицируем и при следующем вызове, клип перекрасится, чуть по другому.
Здесь постепенно убавляется непрозрачность клипа и красная составляющая цвета, а зеленная и синяя
составляющие, напротив инкременируются.
Далее, если счетчик жизни обнулился, этот клип удаляется
*/
function moving(mc:MovieClip) {
mc.life -= 2;
mc._xscale = mc._yscale=(400-mc.life*3);
mc._rotation += 6;
mc.transform.colorTransform = mc.tr;
mc.tr.redOffset -= 4;
mc.tr.greenOffset += 5;
mc.tr.blueOffset += 8;
mc.tr.alphaOffset -= 4;
if (!mc.life) {
delete mc.onEnterFrame;
mc.removeMovieClip();
}
}