質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

Q&A

解決済

1回答

4793閲覧

Illustratorのスクリプト(JavaScript)でオブジェクトの複製をした場合、複製元と複製物両方が選択状態になってしまう

norm

総合スコア21

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

0グッド

1クリップ

投稿2016/08/18 02:04

Adobe ExtendScript Toolkit CCを使用し
JavaScriptでIllustrator用スクリプトを組んでいるのですが、
思うようにいかないところがあります。

選択したオブジェクトを複製すること自体はできました。
ただ、スクリプトで複製した場合、複製元、複製したもの両方が選択状態にされてしまいます。

スクリプトを使わずIllustrator上の作業で複製をした場合は
複製後のオブジェクトの方のみが選択されている状態になっているので
スクリプトでも同じ状態にしたいのです。

ご返答、よろしくお願いいたします。

複製前の状態
複製前の状態

Illustrator上での複製(前面へペースト)
Illustrator上での複製

スクリプト使用での複製
スクリプト仕様での複製
・使用したスクリプト
app.activeDocument.selection[0].duplicate();

バージョン
Illustrator CC 2015.3

開発ツール
Adobe ExtendScript Toolkit CC

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記のようにすれば、選択を解除できそうです。

JSX

1app.activeDocument.selection[0].selected = false;

関係ないコードではありますが、下記で selected を上記のように使っているので、同じように使えるような気がします。

【クリエイター手抜きプロジェクト (Illustrator編)】
http://www.openspc2.org/projectX/Illustrator/0059/index.html

投稿2016/08/18 18:06

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

norm

2016/08/19 02:28

ありがとうございます。記載されているコードで無事片方の オブジェクト選択を解除することができました。 このコードを試す前は、これだと選択されているオブジェクト全てが解除されると 思い込んでいましたが、 実際は実行する度一つずつ選択が解除されていました!
kei344

2016/08/19 02:42

app.activeDocument.selection が選択したもの全てを持っているので、 app.activeDocument.selection[0] は実行するたびその先頭の1要素になります。セレクト解除をすると app.activeDocument.selection.length が1つずつ減っていくと思います。 解決できてよかったです!
norm

2016/08/19 10:09

詳しい解説ありがとうございました! セレクト解除でlengthが減少するのを確認できましたが、 duplicate()直後にalertでlengthを表示させると 数字上では変化が起こらない様子でした。 この点はちょっと気をつけようと思います。 duplicate()直前にlengthが1だとすると duplicate()直後    length=1(実際には2?) その後にセレクト解除 length=1 さらにセレクト解除  length=0
kei344

2016/08/19 10:43

不思議な挙動ですね。情報共有ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問