我有一個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