我正在使用 Greensock 的 TweenLite (AS3) 来放大和缩小图片。在角落附近缩小时会变得很棘手。我想知道是否有办法在补间期间限制宽度/高度/x/y,使其永远不会超出范围。
目前,我有一个在补间完成时调用的“修复器”方法,但这并不理想。
我做了一个演示来说明我的意思,试着在角落附近缩小。(鼠标滚动缩放,点击平移...)
http://cloudchamber.knapnokgames.com/CCMedia/CCImageViewer/CCImageViewer.html
更新:这是补间代码:
TweenLite.to(content, 0.3, {
width : _nativeWidth * newZoom ,
height : _nativeHeight * newZoom,
x : (((content.x - origin.x) / content.width) * (_nativeWidth * newZoom)) + origin.x,
y : (((content.y - origin.y) / content.height) * (_nativeHeight * newZoom)) + origin.y,
onComplete: ClampContentPosition});
X 和 Y 计算可能不是最好的,但它们有效。他们花了我一段时间才弄清楚;)