選択テキストのあるテキストフレーム、グループの選択

[2930]選択テキストのあるテキストフレーム、グループの選択 | 投稿者:山田 | 投稿日:2009/04/29(Wed) 15:17:47
WindowsXP、InDesignCS3でjavascriptを勉強中です。

テキストフレームを複数グループ化しています。
そのグループ化したテキストフレーム内の文字を選択して、
そのテキストのあるテキストフレーム、
さらにテキストフレームがあるグループを認識したいのですが、
うまく認識させることができません。
parentを使うのかな?と思い、
tmp0 = sel[0].parent;
tfobje = tmp0.textFrames[0];
tmp1 = tfobje.parent;
gpobje = tmp1.groups[0];
とか書いてみましたが、思うように選択できません。
parentの使い方が根本的に間違ってるのでしょうか?
» 1
[2935]Re: 選択テキストのあるテキストフレーム、グループの選択 | 投稿者:こに | 投稿日:2009/04/30(Thu) 12:36:37
選択したテキストの親のテキストフレームを取得するのなら、
app.selection[0].parentTextFrames[0];
になります。
» 2
[2939]Re: 選択テキストのあるテキストフレーム、グループの選択 | 投稿者:梅花藻 | 投稿日:2009/04/30(Thu) 13:06:42
選択文字の親テキストフレームは、こにさんが解答されています。

変数宣言のvarをつけていれば、ExtendScript Toolkitのデータブラウザでエラーまたはブレークポイントで止まった時点の変数の中身を調べることができます。(CS3のExtendScript Toolkit2でも同じだろうと予想します。未確認)

後はまあ、それがどれかとか(選択させてみるとか)、それのクラス(constructor.nameを表示させるとか:データブラウザで調べられますから余分といえば余分ですが)を調べるとかするとよいかと思います。

var sel = app.activeDocument.selection;
var tmp0 = sel[0].parent;
alert("sel[0].parent = "+tmp0.constructor.name);
var tfobje = sel[0].parentTextFrames[0];//tmp0.textFrames[0]をsel[0].parentTextFrames[0]に変更
app.activeDocument.selection = tfobje;
alert("sel[0].parentTextFrames[0] = "+tfobje.constructor.name);
var tmp1 = tfobje.parent;
app.activeDocument.selection = tmp1;
alert("tfobje.parent = "+tmp1.constructor.name);
var gpobje = tmp1.parent;//tmp1.groups[0]をtmp1.parentに変更
app.activeDocument.selection = gpobje;
alert("tmp1.parent = "+gpobje.constructor.name);
» 3
[2942]Re: 選択テキストのあるテキストフレーム、グループの選択 | 投稿者:山田 | 投稿日:2009/04/30(Thu) 19:56:48
ありがとうございます。
まだまだ思ったように動いてくれませんが、
かなり進展しました。
いろいろ試行錯誤して、
思ったような処理ができるようにがんばります!
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア