タイムラインで手動でスケーリングしたムービー クリップがあります。
私は今、アクション スクリプトで WIDTH と HEIGHT を取得しようとしているので、別の movieClip をロードして同じサイズにすることができます。
ただし、次のコードを実行すると、スケールが WIDTH で HEIGHT が元のサイズを表示し、スケーリングされたサイズの座標が表示されないため、正しく配置できません。そのため、新しいクリップをその中に配置すると、再スケーリングされたクリップと同じ WIDTH と HEIGHT にすることはできません。
ScaledMC.addChild(myMC);
myMC.x = - ScaledMC.width /2; //Because the MC registration is in the center
回避策は、クリップの境界の x 位置と y 位置、およびそれらがステージ上のどこにあるかを検出するコードである可能性があります。
御時間ありがとうございます。
更新: 4-25-12
FLAを含め、私がやろうとしていることの完全なコードを投稿しています。女の子をクリックすると、別のムービー クリップに読み込む必要があります。ただし、ムービー クリップはスケーリングされているため、負荷がかかると位置が突然変化します。彼女が動かず、同じ場所にとどまっているように見せる必要があります。
import flash.geom.Rectangle;
var Girlx = Girl.x;
var Girly = Girl.y;
var b:Rectangle;
b = Room.ChalkBoard.getBounds(this);
trace(b);
Room.ChalkBoard.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
function fl_ClickToDrag(event:MouseEvent):void
{
Room.ChalkBoard.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
Room.ChalkBoard.stopDrag();
b = Room.ChalkBoard.getBounds(this);
}
Girl.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
//Room.ChalkBoard.scaleX = 1;
// Room.ChalkBoard.scaleY = 1;
Room.ChalkBoard.addChild(Girl);
// I NEED TO KNOW HOW TO SCALE GIRL BACK TO SAME SIZE
// EXAMPLE:
Girl.scaleY = 1 + Room.ChalkBoard.scaleY;
Girl.scaleX = 1 + Room.ChalkBoard.scaleX;
Girl.x = Girlx - b.x; /// This formula works if Room is at scaleX is 1;
Girl.y = Girly - b.y; /// This formula works if Room is at scaleY is 1;
}
FLA はこちら: http://www.EdVizenor.com/Girl.fla