# Tips on animating an explosion

**URL:** <https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769>\
**Category:** Uncategorized\
**Created:** [November 16, 2003, 5:08pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769 "2003-11-16T17:08:23Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fargate](https://avatars.discourse-cdn.com/v4/letter/f/dbc845/32.png) [@Fargate](https://forum.kirupa.com/u/Fargate)\
**Post date:** [November 16, 2003, 5:08pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/1 "2003-11-16T17:08:23Z")

</div>

I’m trying to figure out the best way to animate an explosion in flash…(I’m not too good at it :P)…does anyone have any tips or examples? Thanks in advance =)

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 5:11pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/2 "2003-11-16T17:11:41Z")

</div>

[http://www.voetsjoeba.com/experiments/fireworks.html](http://www.voetsjoeba.com/experiments/fireworks.html) ?

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 5:12pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/3 "2003-11-16T17:12:40Z")

</div>

that’s pretty cool how exactly did you do that?..obviously with AS…

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 5:25pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/4 "2003-11-16T17:25:58Z")

</div>

cool, I want to add gravity to the particles and make lemmings that nuke 3 secs after you click on them! 🙂

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 5:37pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/5 "2003-11-16T17:37:18Z")

</div>

lol…

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 5:47pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/6 "2003-11-16T17:47:16Z")

</div>

Here’s the script 🙂

```auto

d = 0;
dotsize=4
amount = 50;
colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0x00FFFF];
blast = {inner_radius:130,outer_radius:250,strength:1.1,blisteringFromTarget:50}
fire = {explodeFromTarget:15,strength:1.1}
MovieClip.prototype.makeDot = function() {
	var thiscolor = colors[Math.floor(Math.random()*colors.length)];
	with (this) {
		lineStyle(dotsize, thiscolor, 100);
		lineTo(.45, .15);
	}
};
MovieClip.prototype.calculatePosition = function(nr) {
	var radius = blast.inner_radius+Math.floor(Math.random()*(blast.outer_radius+1));
	var angle = (nr/amount)*(Math.PI*2);
	this.pos = {x:Math.cos(angle)*radius, y:Math.sin(angle)*radius};
};
MovieClip.prototype.easeTo = function(x, y) {
	this.onEnterFrame = function() {
		this._x = x-(x-this._x)/blast.strength;
		this._y = y-(y-this._y)/blast.strength;
		if (this._x>x-blast.blisteringFromTarget && this._x<x+blast.blisteringFromTarget && this._y>y-blast.blisteringFromTarget && this._y<y+blast.blisteringFromTarget) {
			var mx = 100;
			this.onEnterFrame = function() {
				this._alpha = Math.floor(Math.random()*(mx+1));
				mx -= 5;
				if (mx<=0) this.removeMovieClip();
				this._x = x-(x-this._x)/blast.strength;
				this._y = y-(y-this._y)/blast.strength;
			};
		}
	};
};
MovieClip.prototype.fireWorks = function() {
	var m = {x:_root._xmouse, y:_root._ymouse};
	var explodeAt = 15
	this.createEmptyMovieClip("origineel"+MovieClip.originals, d++).makeDot();
	fr = this["origineel"+MovieClip.originals]
	fr.curOrig = MovieClip.originals
	fr._x = m.x
	fr._y = 500
	fr.onEnterFrame = function() {
		this._y = m.y-(m.y-this._y)/fire.strength;
		if (this._y>m.y-fire.explodeFromTarget && this._y<m.y+fire.explodeFromTarget) {
			delete this.onEnterFrame;
			for (i=0; i<=amount; i++) {
				MovieClip.i++;
				mc = this._parent["origineel"+this.curOrig].duplicateMovieClip("dot"+MovieClip.i, d);
				mc._x = m.x;
				mc._y = m.y;
				mc.calculatePosition(i);
				mc.easeTo(m.x+mc.pos.x, m.y+mc.pos.y);
				d++;
			}
			this._parent["origineel"+this.curOrig].removeMovieClip()
		}
	};
	MovieClip.originals++;
};
MovieClip.i = 0;
MovieClip.originals = 0;
this.onMouseDown = function() {
	this.fireWorks();
};

```

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 6:03pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/7 "2003-11-16T18:03:01Z")

</div>

whoa!!! where do put all that?

EDIT: nevermind figured it out…very nice 😃

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 6:04pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/8 "2003-11-16T18:04:54Z")

</div>

on frame one 😉

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 6:06pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/9 "2003-11-16T18:06:47Z")

</div>

Are there any other techniques…like actual animation maybe?

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 6:19pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/10 "2003-11-16T18:19:10Z")

</div>

Yeah you could do that … but it’d take a lot more time.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 7:25pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/11 "2003-11-16T19:25:07Z")

</div>

great code, Voetsjoeba:thumb:  
thanks for sharing…

scotty

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 7:30pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/12 "2003-11-16T19:30:05Z")

</div>

Thanks scotty 🙂

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/6/2/621e5c11736f46532526e61be85940af4230f3e5.png) [@system](https://forum.kirupa.com/u/system)\
**Post date:** [November 16, 2003, 7:47pm UTC](https://forum.kirupa.com/t/tips-on-animating-an-explosion/94769/13 "2003-11-16T19:47:50Z")

</div>

ok…thanks a lot everyone ;)…
