0
我與我放大閃光燈的圖像混合。我有一切工作,只有我想要點擊X和Y的協調中心到舞臺。 (所以點擊的區域總是放大並將區域定位到舞臺中間) 圖像是一個動畫片段,它用一個補間進行放大,但我試過一切,但圖像不會居中舞臺。設置放大鼠標點擊目標到舞臺的中心
有沒有人有一個線索,我可以用來做到這一點?
我的代碼是:
const TWEEN_IN:String = "tweenIn";
const TWEEN_OUT:String = "tweenOut";
var tweenDirection:String;
var internalPoint:Point;
var externalPoint:Point;
var tw:Tween;
square.x = stage.stageWidth - square.width/2;
square.y = stage.stageHeight - square.height/2;
square.addEventListener(MouseEvent.CLICK, zoomIn);
function zoomIn($e:MouseEvent):void
{
square.removeEventListener(MouseEvent.CLICK, zoomIn);
//internalPoint = new Point(stage.width/2, stage.height/2);
internalPoint = new Point(square.mouseX, square.mouseY);
//externalPoint = new Point(500, 350);
externalPoint = new Point(stage.mouseX, stage.mouseY);
tweenDirection = TWEEN_IN;
tw = new Tween(null, "", Strong.easeOut, square.scaleX, 3, 1, true);
tw.addEventListener(TweenEvent.MOTION_CHANGE, _syncScale);
tw.addEventListener(TweenEvent.MOTION_FINISH, _cleanTween);
}
function _syncScale($e:TweenEvent):void
{
square.scaleX = square.scaleY = tw.position;
var matrix:Matrix = square.transform.matrix;
MatrixTransformer.matchInternalPointWithExternal(matrix, internalPoint, externalPoint);
square.transform.matrix = matrix;
}
function _cleanTween($e:TweenEvent):void
{
tw.removeEventListener(TweenEvent.MOTION_CHANGE, _syncScale);
tw.removeEventListener(TweenEvent.MOTION_FINISH, _cleanTween);
tw = null;
if(tweenDirection == TWEEN_IN)
stage.addEventListener(MouseEvent.CLICK, zoomOut);
else if(tweenDirection == TWEEN_OUT)
square.addEventListener(MouseEvent.CLICK, zoomIn);
}
function zoomOut($e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.CLICK, zoomOut);
//internalPoint = new Point(0, 0);
//externalPoint = new Point(0, 0);
externalPoint = square.localToGlobal(internalPoint);
internalPoint = square.globalToLocal(externalPoint);
tweenDirection = TWEEN_OUT;
tw = new Tween(null, "", Strong.easeOut, square.scaleX, 1, 1, true);
tw.addEventListener(TweenEvent.MOTION_CHANGE, _syncScale);
tw.addEventListener(TweenEvent.MOTION_FINISH, _cleanTween);
}
好的,我試過這個,但是當註冊點在左上方時,它啓動了舞臺中央的圖像角落的動畫,它仍然像以前一樣放大,而沒有移動它到中心。我需要以某種方式註冊點擊點並將這一點移到舞臺中心?或?:)以及你建議的代碼,是否應該放在「放大」功能中?我應該只是將其添加到原始代碼中,還是刪除其中的一部分?它不會工作:/ – Cat
我的代碼行將替換_syncScale()方法中的最後三個,保留scaleX/scaleY定義,但替換其餘部分。 – richardolsson