I ran out of time for my deadline to be able to port it at present (although its far better than my current method).
I am using:
Code:
public static function AddSpringForce(bA:b2Body , bB:b2Body , k:Number , friction:Number , desiredDist:Number)
{
//var pA:b2Vec2 = new b2Vec2();
//var pB:b2Vec2 = new b2Vec2();
//var diff:b2Vec2 = new b2Vec2();
var pA:b2Vec2 = bA.GetPosition();
var pB:b2Vec2 = bB.GetPosition();
var diff:b2Vec2 = new b2Vec2(pB.x-pA.x , pB.y-pA.y);
var vA:b2Vec2 = bA.m_linearVelocity;
var vB:b2Vec2 = bB.m_linearVelocity;
var vdiff:b2Vec2 = new b2Vec2(vB.x-vA.x , vB.y-vA.y);
var dx:Number = diff.Normalize(); //normalizes diff and puts length into dx
var vrel:Number = vdiff.x*diff.x + vdiff.y*diff.y;
var forceMag:Number = -k*(dx-desiredDist) - friction*vrel;
//diff.mulLocal(forceMag); // diff *= forceMag
diff.x *= forceMag;
diff.y *= forceMag;
bB.ApplyForce(diff , bA.GetPosition());
var diff2:b2Vec2 = new b2Vec2(diff.x *=-1 , diff.y *=-1);
bA.ApplyForce(diff2 , bB.GetPosition());
//bA.applyForce(diff.mulLocal(-1.0) , bB.GetPosition());
bA.WakeUp();
bB.WakeUp();
}
Ported from ewjordan's java snippet somewhere on the forums.
I realise that help is a 2-way street and I will definately help the community back whenever I can, so if I do port it, the SVN will have it

plus any questions I can answer for people. At the moment I'm still "getting there"
