コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

001~010 不明点メモ

各記事からのざっくり抜き出し。

語義が分からない系

toSpecifier()

めちゃめちゃ便利だけど、いまひとつどういったものなのか分からずうまく活用できなかった。 オブジェクトモデルビューアによると「Retrieves the object specifier」…

$.writeln(objs[j].toSpecifier());

とすると、

/document[@id=37]//text-frame[@id=4341]

となる。 「//」の間にspreadが来る気がするのだけど…

LINK_INACCESSIBLE

「URL/画像のパスにアクセスできない」とはどんな状態?
フォルダにパスワードがかかってるとか?

myDoc.filePathはフォルダ?ファイル?

データブラウザを見ると[Folder]となっているが、オブジェクトモデルビューアで「filePath」を検索すると「Data Type : File」と記載されている。

documentのfullNameとfileNameの違い

やり方が分からない系

正規表現

リンクのfilePathからフォルダ名だけを取得したかったのだけど、↓がうまいこといかなかった("C:\Users\aaa\Desktop\Link\a.psd"→"C:"みたいに最長一致になってしまった)。

myLinks[i].filePath.replace(/\\.+?$/,"")
 // "C:\Users\aaa\Link\a.psd" → "C:\Users\aaa\Link" にしたい

再リンク時の読み込みオプション

Linksのメソッドrelink()(再リンク)の引数に読み込みオプション表示/非表示があればよかったのだけどなさそう?インデの機能としてはあるのでJSでできないことはないと思うのだが…

特定のメソッドを持たないオブジェクトのタイプの探し方

select()が使えないオブジェクトの種類を見つけたかったのだけど、どう探せばいいのか分からなかった。

●●というプロパティ/メソッドを持っているか

「対象が●●というプロパティ/メソッドを持っているか」という判定の適切なやり方が分からなかった。

ドロップダウンリストをn個作成

paletteにn個ドロップダウンリストやテキストを追加するという処理、for文回してるけど本当にこれでいいのか。 このやりかたでやるとn番目のドロップダウンを取得したいというときに↓みたいな書き方になってまだるっこしい。

var secondNum = myDlg.children[n].children[1].selection.text; 
// myDlg   :palette
// myDlg.children[n]   :paletteの中のgroup
// myDlg.children[n].children[1]   :groupの中の2つ目の要素すなわちドロップダウンリスト

edittextのサイズ

leftColomnのサイズはなりゆきにしてrightColomnのサイズをそれに合わせたかったのだけど、どのプロパティがサイズを表しているのか分からなかった。 「rightColumn.bounds=leftColumn.bounds;」かなと思ったんだけど、そもそもboundsというプロパティが無かった。