選択されたオブジェクトの中に位置を保持したままクリップボードの内容をペースト.jsfl

クリップボードに格納されているインスタンスを、現在選択されているインスタンスの中に位置を保持したままペーストするJSFLです。

使用手順

  1. 階層を移動したいインスタンスを、コピーまたはカットします。
  2. 手順1のインスタンスを格納したいMCをステージ上で選択します。
  3. コマンドを実行すると、手順2で選択されたMCの中に手順1のインスタンスが位置を保持したままペーストされます。

「同じMCの階層に配置したけれど、やっぱりこのMCの中の方が良かった!」なんて場合に重宝するコマンドです。

jsfl

/***
 *	選択されたオブジェクトの中に、位置を保持したままクリップボードの内容をペーストします。
 *
 *  @since 2009.09.25
 *  @author m_makino
 */

main();

function main() {
  fl.trace("");
  fl.trace("Paste object keeping position in selected MovieClip .....");

  var doc = fl.getDocumentDOM();
  var lib = doc.library;
  var selectedClip = doc.selection;

  if (selectedClip.length != 1) {
    alert("複数のシンボルにはペーストできません");
    return;
  }

  var n = selectedClip.length;

  for (var i = 0; i < n; i++) {
    //現在の座標を記憶
    var tmpMatrix = doc.selection[0].matrix;
    var tmpX = tmpMatrix.tx;
    var tmpY = tmpMatrix.ty;

    doc.enterEditMode("inPlace"); //編集開始

    //レイヤーを追加
    var timeline = doc.getTimeline();
    timeline.addNewLayer("pasted objects by command", "normal");

    //ペースト
    doc.clipPaste(true); //位置を保持したままペースト
    doc.moveSelectionBy({ x: -tmpX, y: -tmpY }); //ペーストした内容を移動

    doc.exitEditMode(); //編集終了
  }
  
  fl.trace("Command Complete.");
}