我想设置一些动画片段的坐标。但它显示了基于他们自己的起源的动画片段。所以我想我必须使用“父母”。这是我的代码:
...
d2: {
piece: wp1_txt,
pieceLoc: {
parent.x: "147",
parent.y: "297"
}
},
...
addChild(squareArr.d2.piece);
squareArr.d2.piece.x = squareArr.d2.pieceLoc.parent.x;
squareArr.d2.piece.y = squareArr.d2.pieceLoc.parent.y;
TweenLite.to(currentPiece, 0.3, {x:squareArr[newSquare].pieceLoc.parent.x, y:squareArr[newSquare].pieceLoc.parent.y, ease:Linear.easeNone, onComplete:isMovingFunction});
上面的代码(没有父代)正在将文本字段移出舞台。当我将x和y设置为0时,文本字段保持自己的位置而不是出现在左上角。
答案 0 :(得分:1)
尝试使用localToGlobal函数http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001320.html 孩子的坐垫是相对于父母的。如果你想使用全局坐标,localToGlobal / globalToLocal是个不错的选择。
答案 1 :(得分:0)
“使用父母”是什么意思?当您向容器添加一些显示对象时,将计算父项的位置,而无需您进行任何其他计算。如果您想要某些显示对象的商店坐标:
d2: {
piece: wp1_txt,
pieceLoc: {
x: someDisplayObject.x,
y: someDisplayObject.y,
//If you need store coordinates of some parent object
parentX: someDisplayObject.parent.x
parentY: someDisplayObject.parent.y
}
}
//...
var addedObject:DisplayObject = addChild(squareArr.d2.piece);
addedObject.x = squareArr.d2.pieceLoc.x;
addedObject.y = squareArr.d2.pieceLoc.y;
当我将x和y设置为0时,文本字段保持自己的位置而不是出现在左上角。
这是因为TextField的父级有自己的坐标,如果可以的话,将父级移动到0,0坐标。此外,在您的代码中,您将坐标作为字符串传递给TweenLite,Tweenlite会将它们渲染为当前位置的添加。
将TextField移出舞台,向右滑动:
TweenLite.to(currentPiece, 0.3, {x:stage.stageWidth, ease:Linear.easeNone, onComplete:isMovingFunction});