Здравствуйте, может кто-то помоч перевести данный код в AS3 ?

Код AS3:
//set default effect
var currentEffect:String = "blood";
//make target_mc the current target
target_mc.useHandCursor = false;
target_mc.onRelease = function(){
explosion(target_mc, currentEffect);
}
target_mc._x = _root._xmouse;
target_mc._y = _root._ymouse;
target_mc.startDrag();
//Returns a random number between min and max
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
}
/**
* explosion(target movieclip, type of explosion)
*
*
*/
function explosion(mc:MovieClip, type:String):Void {
//explosion settings
if (type == "fire") {
//set speed
var maxSpeed:Number = 5;
//set min size
var minSize:Number = 2;
//set max size
var maxSize:Number = 6;
//set minimum number of fragments
var minFragments:Number = 15;
//set maximim number of fragments
var maxFragments:Number = 30;
//set fragment range in pixels from sorce of explosion
var fragmentRange:Number = 100;
//set which type of movieClip to attach from the library
var fragmentType:String = "fragments_fire"
} else if (type == "explosion") {
var maxSpeed:Number = 5;
var minSize:Number = 3;
var maxSize:Number = 8;
var minFragments:Number = 9;
var maxFragments:Number = 18;
var fragmentRange:Number = 250;
var fragmentType:String = "fragments_ship"
}else if (type == "blood") {
var maxSpeed:Number = 3;
var minSize:Number = 1;
var maxSize:Number = 3;
var minFragments:Number = 30;
var maxFragments:Number = 50;
var fragmentRange:Number = 35;
var fragmentType:String = "fragments_blood"
}
//set particle boundry
var boundyLeft:Number = mc._x-fragmentRange;
var boundyTop:Number = mc._y-fragmentRange;
var boundyRight:Number = mc._x+fragmentRange;
var boundyBottom:Number = mc._y+fragmentRange;
//get random amount of fragments based on mix/max
var totalFragments:Number = randRange(minFragments, maxFragments);
//set depth
var depth:Number = mc.getNextHighestDepth();
for (var i:Number = 0; i<totalFragments; i++, depth++) {
//attach new fragment
var fragment_mc:MovieClip = _root.attachMovie(fragmentType, "fragment"+depth, depth);
//set position & random rotation
fragment_mc._x = mc._x;
fragment_mc._y = mc._y;
fragment_mc._rotation = randRange(1, 359);
//tell new clip to go to random fragment gfx
fragment_mc.gotoAndStop(randRange(1, 3));
//set random width and height
var newSize:Number = randRange(minSize, maxSize);
fragment_mc._width = newSize;
fragment_mc._height = newSize;
//set speed/direction of fragment
fragment_mc.speedX = randRange(-maxSpeed, maxSpeed);
fragment_mc.speedY = randRange(-maxSpeed, maxSpeed);
//
fragment_mc._alpha = randRange(50, 100);
fragment_mc.cacheAsBitmap = true;
//make fragment move using onEnterFrame
fragment_mc.onEnterFrame = function():Void {
this._alpha -= 1;
this._x += this.speedX;
this._y += this.speedY;
//if fragment is outside boundry, remove it
if (this._alpha<=0 || this._x<boundyLeft || this._x>boundyRight || this._y<boundyTop || this._y>boundyBottom) {
this.removeMovieClip();
}
};
}
}
//
// Buttons
//
blood_btn.onRelease = function(){
currentEffect = "blood";
}
fire_btn.onRelease = function(){
currentEffect = "fire";
}
explosion_btn.onRelease = function(){
currentEffect = "explosion";
}
Пробовал сам, но не получается из-за того что не могу сделать Ентерфрейм для каждого объекта отдельно.
Вот мой вариант:

Код AS3:
function explosion(mc:MovieClip, type:String):void
{
if (type == "fire")
{
maxSpeed = 5;
minSize = 2;
maxSize = 6;
minFragments = 15;
maxFragments = 30;
fragmentRange = 100;
fragment_mc = new fragments_fire;
}
else if (type == "explosion")
{
maxSpeed = 5;
minSize = 3;
maxSize = 8;
minFragments = 9;
maxFragments = 18;
fragmentRange = 250;
fragment_mc = new fragments_ship;
}
else if (type == "blood")
{
maxSpeed = 3;
minSize = 10;
maxSize = 30;
minFragments = 30;
maxFragments = 50;
fragmentRange = 35;
fragment_mc = new fragments_blood;
}
boundyLeft = mc.x-fragmentRange;
boundyTop = mc.y-fragmentRange;
boundyRight = mc.x+fragmentRange;
boundyBottom = mc.y+fragmentRange;
totalFragments = randRange(minFragments, maxFragments);
for (var i:int = 0; i<totalFragments; i++)
{
fragment_mc.x = mc.x;
fragment_mc.y = mc.y;
fragment_mc.rotation = randRange(1, 359);
fragment_mc.gotoAndStop(randRange(1, 3));
var newSize:Number = randRange(minSize, maxSize);
fragment_mc.width = newSize;
fragment_mc.height = newSize;
fragment_mc.speedX = randRange(-maxSpeed, maxSpeed);
fragment_mc.speedY = randRange(-maxSpeed, maxSpeed);
fragment_mc.alpha = randRange(50, 100);
fragment_mc.cacheAsBitmap = true;
fragment_mc.addEventListener(Event.ENTER_FRAME, particleMove);
addChild(fragment_mc);
}
}
public function particleMove(e:Event):void
{
fragment_mc.alpha -= 1;
fragment_mc.x += fragment_mc.speedX;
fragment_mc.y += fragment_mc.speedY;
if (fragment_mc.alpha<=0)
{
removeChild(fragment_mc);
}
}
public function randRange(min:Number, max:Number):Number
{
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
}
Добавлено через 2 часа 52 минуты
Тему можно удалить... вся соль была в волшебной строчке:

Код AS3:
var fragment_mc:MovieClip = e.currentTarget as MovieClip;