我有一个MC,鼠标可以拖动和滑动,当它从舞台上移开时,它碰到超出边界的对象。我将它添加到最初开始的x,y位置的舞台上,但是当我重新添加它时,它会继续沿着它在去除之前的方向滑动。Actionscript - 在我执行removeChild()并重新添加addChild()后,MC继续移动
功能__checkHit($ EVT:事件):无效{
if (this.test_object.hitTestObject(bounds1))
{
// do our in-circle check
stopDrag();
removeChild(test_object);
test_object.x = 437.25;
test_object.y = 808.3;
addChild(test_object);
}
else
{
}
编辑:
var props:Dictionary=new Dictionary();
var currItem:Sprite;
var mass=5;
var friction=0.9;
var drag=false;
...
function onMovement(e:Event):void {
var instanceX=e.currentTarget.x;
var instanceY=e.currentTarget.y;
var instanceR=e.currentTarget.rotation;
if (props[e.currentTarget].drag==false) {
instanceX+=props[e.currentTarget].vX;
instanceY+=props[e.currentTarget].vY;
} else {
// Set Current Mouse Position
var mx=stage.mouseX;
var my=stage.mouseY;
//Calculate Distance Traveled
var dmx=mx-props[e.currentTarget].mx0;
var dmy=my-props[e.currentTarget].my0;
// Set Previous Mouse Position
props[e.currentTarget].mx0=mx;
props[e.currentTarget].my0=my;
// Calculate Force
var fx = (dmx - props[e.currentTarget].vX) * mass;
var fy = (dmy - props[e.currentTarget].vY) * mass;
// Calculate Offset Between Mouse and Registration Point
var ax=mx-instanceX;
var ay=my-instanceY;
// Calculate Rotation from Offset
var t=fx*ay-fy*ax;
//Set Velocity = To Distance
props[e.currentTarget].vX=dmx;
props[e.currentTarget].vY=dmy;
// Set Rotation Angle
props[e.currentTarget].vR+=t*.005;
// Set Instance = Instance + Velocity
instanceX+=props[e.currentTarget].vX;
instanceY+=props[e.currentTarget].vY;
//
var dx=mx-instanceX;
var dy=my-instanceY;
// Convert Degrees to Radians
var cos=Math.cos(props[e.currentTarget].vR*Math.PI/180);
var sin=Math.sin(props[e.currentTarget].vR*Math.PI/180);
// Calculate Offset Points After Rotation
var aax = dx - (cos * dx + sin * dy);
var aay = dy - (cos * dy - sin * dx);
// Set Instance Points after Rotation
instanceX+=aax;
instanceY+=aay;
}
instanceR-=props[e.currentTarget].vR;
// Bounce Off Edges
if (instanceX<0) {
props[e.currentTarget].vX*=-1;
instanceX=0;
}
if (instanceX>stage.stageWidth) {
props[e.currentTarget].vX*=-1;
instanceX=stage.stageWidth;
}
if (instanceY<0) {
props[e.currentTarget].vY*=-1;
instanceY=0;
}
if (instanceY>stage.stageHeight) {
props[e.currentTarget].vY*=-1;
instanceY=stage.stageHeight;
}
e.currentTarget.x=instanceX;
e.currentTarget.y=instanceY;
e.currentTarget.rotation=instanceR;
props[e.currentTarget].vX*=friction;
props[e.currentTarget].vY*=friction;
props[e.currentTarget].vR*=friction;
}
定义方向/速度在哪里? – roberttdev 2011-03-30 12:44:25
进行编辑。正如你可以看到他们没有公开定义 – RapsFan1981 2011-03-30 13:00:59