トゥイーン中に、外部ポイントを中心に長方形を回転させようとして失敗しました。赤い長方形の上部を線に固定しようとしています。線は左から右にトゥイーンし、0°から90°に回転します。
代替テキストhttp://www.freeimagehosting.net/uploads/0b937c92e6.png
上の画像は、トゥイーンの3つの状態を示しています。状態1は、線の始点に角度のない赤い長方形を示しています。状態2は、赤い長方形が線の途中で45度の角度でトゥイーンされたことを示しています。これは、90度の合計角度の半分でもあります。状態3は、赤い長方形の角度が90度で、線の端に配置されているトゥイーンの最終位置を示しています。
私が経験している問題は、トゥイーン中に、回転によって赤い長方形の上部が黒い線と同期しなくなることです。
これが機能しない私のコードですが、うまくいけば、私が試みていることをより明確に把握できるでしょう。
var angle:Number = 90;
var previousAngle:Number = 0;
var distanceObject:Object = new Object();
distanceObject.distance = line.width;
distanceTween = new Tween(distanceObject, "distance", None.easeNone, 0, distanceObject.distance, 5, true);
distanceTween.addEventListener(TweenEvent.MOTION_CHANGE, tweenHandler);
function tweenHandler(evt:TweenEvent):void
{
var angleShift:Number = (angle / distance) * distanceObject.distance;
//1:tween RedBox position
redBox.x = line.x + line.width * distanceObject.distance;
//2:tween RedBox angle
var externalPointMatrix:Matrix = redBox.transform.matrix;
MatrixTransformer.rotateAroundExternalPoint(externalPointMatrix, 0 + redBox.width * distanceObject.distance, 0, angleShift - previousAngle);
redBox.transform.matrix = externalPointMatrix;
previousAngle = angleShift;
}