Создаем новый документ, в качестве фона выбираем черный цвет и смотрим код.
this.onEnterFrame = function(){
cursGen._x = _xmouse;
cursGen._y = _ymouse;
}
//общее описание алгоритма - цикл отрисовки рандомно
//ломаной линии из единичных отрезков между двумя точками,
//вложенный в цикл, вычисляющий эти точки как рандомно
//(в зависимости от отклонения при изгибе) отстоящие от конца
//каждого следующего отрезка (длиной, равной длине_луча_"старт-финиш"/
количество_изгибов), откладываемого на луче "старт-финиш".
//Также есть вероятность ветвления, пропорциональная
//номеру изгиба.
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
this.createEmptyMovieClip("cursGen",this.getNextHighestDepth());
cursGen.lineStyle(6,0xFFFFFF,75);
cursGen.moveTo(0,0);
cursGen.lineTo(0,1);
//var cursor:MovieClip = cursGen;
Mouse.hide();
mouseListener.onMouseDown = function(){
line(0,0,_xmouse, _ymouse,7,4,15,50);
}
mouseListener.onMouseUp = function(){
//очистка поля и массива клипов
for(lnCnt=0;lnCnt
=curve_dy){
steps = Math.floor(curve_dx/pix);
}else{
steps = Math.floor(curve_dy/pix);
}
//цикл отрисовки изгиба единичными отрезками
for(i=1;i<=steps;i++){
newX =remX + (i/steps)*curve_dx + (random(10)-5);
newY =remY + (i/steps)*curve_dy + (random(10)-5);
//перемещаем перо в эту точку
//если это первый отрезок первого изгиба - его стартовые
//координаты - это точка старта
if(a==1&&i==1){
li.moveTo(startX,startY);
newX =(i/steps)*curve_dx + (random(10)-5)+startX;
newY =(i/steps)*curve_dy + (random(10)-5)+startY;
remX=newX;
remY=newY;
}
li.lineStyle(width_,0xFFFFFF,100);
li.lineTo(newX, newY);
//если данный изгиб дорисован - обновляем стартовые координаты
if(i==steps){
remX=newX;
remY=newY;
}
}
//если счетчик изгибов достиг некоторого значения, то есть
//вероятность ответвления
if(random(a)+1.5*a> curveQuant){
width_ *= 0.9;
_line(remX ,remY ,dx ,dy ,pix ,width_*0.5,curveQuant ,curveDelta);
}
}
var glowFilter = new flash.filters.GlowFilter();
var glowFilter1 = new flash.filters.GlowFilter();
var _filters:Array = li.filters;
_filters.push(glowFilter);
_filters.push(glowFilter1);
li.filters=_filters;
var pxFil:Array = new Array;
pxFil = li.filters;
pxFil[0].color = 0xffffff;
pxFil[0].strength = 3;
pxFil[0].alpha =0.65;
pxFil[0].blurY = 8;
pxFil[0].blurX = 8;
pxFil[1].color = 0xffffff;
pxFil[1].strength = 2;
pxFil[1].alpha =0.8;
pxFil[1].blurY = 20;
pxFil[1].blurX = 20;
li.filters = pxFil;
}
//полностью аналогична предыдущей, но не дает ответвлений
function _line(startX_:Number,startY_:Number,dx_:Number,dy_:Number,
pix_:Number,width__:Number,curveQuant_:Number,curveDelta_:Number){
l= getNextLine();
remX_ = 0;
remY_ = 0;
for(a_=1;a_=curve_dy_){
steps_ = Math.floor(curve_dx_/pix_);
}else{
steps_ = Math.floor(curve_dy_/pix_);
}
for(i_=1;i_<=steps_;i_++){
newX_ =remX_ + (i_/steps_)*curve_dx_ + (random(10)-5);
newY_ =remY_ + (i_/steps_)*curve_dy_ + (random(10)-5);
if(a_==1&&i_==1){
l.moveTo(startX_,startY_);
newX_ =remX_ + (i_/steps_)*curve_dx_ + (random(10)-5)+startX_;
newY_ =remY_ + (i_/steps_)*curve_dy_ + (random(10)-5)+startY_;
remX_=newX_;
remY_=newY_;
}
l.lineStyle(width__,0xFFFFFF,100);
l.lineTo(newX_, newY_);
if(i_==steps_){
remX_=newX_;
remY_=newY_;
}
}
}
var _glowFilter = new flash.filters.GlowFilter();
var _glowFilter1 = new flash.filters.GlowFilter();
var __filters:Array = l.filters;
__filters.push(_glowFilter);
__filters.push(_glowFilter1);
l.filters=__filters;
var _pxFil:Array = new Array;
_pxFil = l.filters;
_pxFil[0].color = 0xffffff;
_pxFil[0].strength = 3;
_pxFil[0].alpha =0.65;
_pxFil[0].blurY = 8;
_pxFil[0].blurX = 8;
_pxFil[1].color = 0xffffff;
_pxFil[1].strength = 2;
_pxFil[1].alpha =0.8;
_pxFil[1].blurY = 20;
_pxFil[1].blurX = 20;
l.filters = _pxFil;
}
Совет новичкам: ctrl+c, ctrl+v ![]()
Или скачать исходник >>
--- Новости в блогосфере ---
- Блог Английский просто рассказывает чему нужно учиться и как не переусердствовать
- На лирическом блоге опечаленные мысли о любви
- На международной блогопанораме английский для блогеров - english teacher
- Блог о мировом кризисе размещает видеоматериалы объявлений о нем
- Новости о Flash, Flex, AIR от Дениса Иванова


Как сделать чтобы:
-молнии работали без нажатия мышкой?
-молнии меняли цвет?
-молний было несколько?
————————————————–
Мне нужно нарисовать плазменный шар( по типу http://shop.key.ru/photo/items/42320.jpg)
————————————————-
Заранее благодарен за помощь
Abro cadbury, я так понимаю, вам нужен шар с появляющимися внутри него молниями. Так? Вообще можно и без ActionScript обойтись,(если уж не получается этот код под себя переделать): нарисовать шар, ломаные кривые и анимировать циклически появление молний. Если такой вариант не устраивает, то сделаю урок, в котором опишу способ с применением ActionScript.
Ух ты!
Мне очень понравилось! Сейчас себе такую же сделаю! Ну очень здорово=))) Жалко я ничего в программировании флэша не понимаю…
Виолетта, скоро будет статья по обзору книг для обучения ActionScript во Flash, ждите