AS3 Parabola Effects

//copy paste
stage.frameRate = 60;
stage.addEventListener(MouseEvent.MOUSE_MOVE, fireArrow);
var gravity:Number = 9.8;
var time:Number = 0;
var points:Number = stage.stageWidth/5;
var pointsVector:Vector.<Point> = new Vector.<Point>();
for(var s:Number = 0; s<stage.stageWidth/points+points; s++){
var originProjectile:Point = new Point(points*s,stage.stageHeight);
pointsVector.push(originProjectile);
}
var projectileVector:Vector.<Sprite> = new Vector.<Sprite>();
var timeVector:Vector.<Number> = new Vector.<Number>();
var forceXVector:Vector.<Number> = new Vector.<Number>();
var forceYVector:Vector.<Number> = new Vector.<Number>();
function fireArrow(event:MouseEvent){
for(var p:Number = 0; p<pointsVector.length; p++){
var projectile:Sprite = new Sprite();
var r:Number = 255;
var g:Number = Math.random()*100+55;
var b:Number = 0;
var color:Number = r<<16 | g<<8 | b;
var hexVal:String = "0x" + color.toString(16);
var hexVal2:uint = uint(hexVal);
projectile.graphics.lineStyle(1, hexVal2, 1);
projectile.graphics.moveTo(-10, 0);
projectile.graphics.lineTo(10, 0);
projectile.x = pointsVector[p].x;
projectile.y = pointsVector[p].y;
projectileVector.push(projectile);
timeVector.push(time);
var hypotenuse:Number = Math.sqrt(Math.pow(mouseX - pointsVector[p].x, 2) + Math.pow(mouseY - pointsVector[p].y, 2));
var opposite:Number = mouseY - pointsVector[p].y;
var adjacent:Number = mouseX - pointsVector[p].x;
var speed:Number = 10;
forceXVector.push(speed*adjacent/hypotenuse);
forceYVector.push(speed*opposite/hypotenuse);
}
}
var display:Sprite = new Sprite();
var displayWidth:Number = stage.stageWidth;
var displayHeight:Number = stage.stageHeight;
var bitmapData:BitmapData = new BitmapData(displayWidth,displayHeight,true,0x00000000);
var bitmap:Bitmap = new Bitmap(bitmapData);
var blur:BlurFilter = new BlurFilter(4, 4);
var colorTransform1:ColorTransform = new ColorTransform(0.999,0.999,0.999,.98);
var origin:Point = new Point(0,0);
bitmap.x = origin.x;
bitmap.y = origin.y;
addChild(bitmap);
addEventListener(Event.ENTER_FRAME, animateProjectile);
function animateProjectile(event:Event){
for(var i:int = 0; i<projectileVector.length; i++){
projectileVector[i].x += forceXVector[i];
projectileVector[i].y += (gravity*Math.pow(timeVector[i]/60,2))/2 + forceYVector[i];
timeVector[i]+=1;
var angleX:Number = forceXVector[i];
var angleY:Number = (gravity*Math.pow(timeVector[i]/60,2))/2 + forceYVector[i];
var angle:Number = Math.atan2(angleY, angleX);
projectileVector[i].rotation = angle*180/Math.PI;
display.addChild(projectileVector[i]);
if(projectileVector[i].x>stage.stageWidth || projectileVector[i].y>stage.stageHeight){
projectileVector[i].parent.removeChild(projectileVector[i]);
projectileVector.splice(i, 1);
timeVector.splice(i, 1);
forceXVector.splice(i, 1);
forceYVector.splice(i, 1);
}
}
bitmapData.applyFilter(bitmapData,bitmapData.rect,origin,blur);
bitmapData.colorTransform(bitmapData.rect, colorTransform1);
bitmapData.draw(display);
}