タイムラインで手でスケールしたムービークリップがあります。as3サイズ変更されたムービークリップの幅を取得
私は今、アクションスクリプトでWIDTHとHEIGHTを取得しようとしていますので、別のムービークリップをロードして同じサイズにすることができます。
しかし、次のコードを実行すると、スケールがWIDTHでHEIGHTが元のサイズを表示し、スケールされたサイズの座標を表示しないため、正しく配置できません。だから私はそれの中に新しいクリップを配置すると、再スケールされたクリップと同じ幅と高さにすることはできません。
ScaledMC.addChild(myMC);
myMC.x = - ScaledMC.width /2; //Because the MC registration is in the center
作業は約それらがステージ上に配置されているクリップと場所の境界のxとyの位置を検出するためのいくつかのコードであってもよいです。
お時間をいただきありがとうございます。
UPDATE:4-25-12
私は私がやろうとしてFLAを含めています何の完全なコードを掲示しています。女の子をクリックすると、彼女を別のムービークリップに読み込む必要があります。しかし、ムービークリップはスケーリングされているので、彼女の位置が突然変化します。彼女が動かずに同じ場所にいるように見えるようにする必要があります。 HERE
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 IS:http://www.EdVizenor.com/Girl.fla
:機能を持っています。どうもありがとう。また、私はタイムラインでそれを手動でスケーリングしました。それが私の最初の文章でした。おそらく私は間違った用語を使用しています。 –
Ohh ok。私はあなたが何を意味していたのか分からなかったが、今理解している。だから、スケールプロパティを変更しています(scaleXとscaleYの両方があります)。私は自分の答えを編集して、どのように縮尺を変えているかを質問する部分を削除しました。ありがとうマーティ。 –