Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как остановить салют (http://www.flasher.ru/forum/showthread.php?t=181178)

chfbcf 18.06.2012 00:14

как остановить салют
 
нашла урок как сделать салют(кстати на этом же форуме)..ну могу найти ту тему, поэтому создала новую
сделала салют вобщем по такому скрипту..в итоге у меня флеш открытка останавливается, когда надо, а салют продолжается...как исправить?
Код AS1/AS2:

var x0:Number, y0:Number;// Координаты салюта. К ним полетит "запущенный пушкой снаряд" :))
var id:Number;// Таймер повтора залпов
var fireLength:Number=100; //Примерный радиус раскрыва салюта
var colorNum:Number=0;// Счетчик цвета
var colors:Array=[0xFF0000, 0xFFFF00, 0x00FF00, 0x00FFFF, 0x2020FF, 0xFF00FF, 0xFFFFFF];
// Массив цветов gotoAndStop
zwezda.gotoAndStop(1);
/* Клип с летящей звездочкой. "Внутренняя" анимация выключена, поскольку использовать его бум
в 2-х вариантах. 1 показ траектории полета снаряда. 2 - производитель для дубликатов салюта
************************
 ПРОЦЕДУРЫ
************************/

/*Вывод случайного целого числа из заданного диапазона
Пользуем для расчета координат салюта, угла вылета конкретной звездочки и ее массштаба и т.д.*/

function randomNum(min:Number, max:Number):Number{
return Math.floor(Math.random()*(max-min))+min;
}
//Полет снаряда от "пушки" до точки салюта
function shoot(){
clearInterval(id);// Кирдык таймеру
x0=randomNum(fireLength,(Stage.width-fireLength));// задаем
y0=randomNum(fireLength,(Stage.height-fireLength));// координаты салюта
zwezda._x=randomNum(fireLength,(Stage.width-fireLength));//и начальные
zwezda._y=Stage.height+5;// координаты снаряда
zwezda.onEnterFrame=function(){// Полетели...
 this._x-=(this._x-x0)/6;// Замедление скорости полета. Не совсем красивое.
 this._y-=(this._y-y0)/6;// Лучше пользовать класс "Tween". Оставил для обучения
 if((this._y-y0)<3){//Долетели до точки взрыва
  this._y=Stage.height+5;// прячем снаряд
  delete this.onEnterFrame;// Тормозим полет
  createFirework();// Идем взрываться...
 }
}
}
//Создание салюта
function createFirework(){
var total:Number=randomNum(70,120);// Кол-во звезд в салюте
var color:Number=colors[colorNum];// Цвет салюта
colorNum++;
colorNum%=colors.length;
for(var i:Number=0;i<total;i++){
 var rotator=randomNum(0,360);// Угол вылета звезды
 var scale:Number=randomNum(50,150);// Массштаб звезды
 var mc:MovieClip=zwezda.duplicateMovieClip('z'+i,this.getNextHighestDepth(),{_x:this.x0, _y:this.y0,
 
_rotation:rotator, _xscale:scale, _yscale:scale});
 // Дублируем звезду, ставим в координаты салюта, разворачиваем и массштабируем
 new Color(mc).setRGB(color);// Покрасим звездочку
}
// БАБАХ!!!!
id=setInterval(shoot, 1000);// Следующий выстрел, через секунду
}
shoot();// Запуск салюта.


Hauts 18.06.2012 13:19

Код AS1/AS2:

clearInterval(id)

Поможет?


Часовой пояс GMT +4, время: 18:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.