fc2ブログ


FC2カウンター
ブログ内検索
プロフィール

流星光輝

Author:流星光輝
InDesignを仕事で使っています。
まんどい作業をScriptで解決すべく
精進の日々を過ごしております。

カレンダー
11 | 2024/12 | 01
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

InDesignのExtendedScriptでprompt使うときの注意とか

Scriptをjsxbinでバイナリ化して、わざわざjsxにリネームしてフリー配布してる人たちがいるみたいですけど、
こういう意味不明な挙動への対処方法とかを仕込んでるんだったら、jsxbinで配布しててもいいんだけど、
コードオープン化してくれませんかねぇ?w ググっても出てこないっすわよw


気を取り直して、まずは、Windows版のESTKでの例です。バージョンは現行のCCです。
winCC.png

下記のソースコードを、さりげなく実行してみます。

var a="";
for(var i=100;i<300;i++){
    a+=i+"/"
}
alert(a);
var b=prompt("check",a,"test");
alert(b);

(1)
winCC_1.png
(2)
winCC_2a.png
(3)
winCC_3.png

えっ!? クラッシュしちゃったよ! どうなってんすかー!!!

※1 なぜかCS1(3.0.1_838_J)環境だけはクラッシュしなかったです。えろい人教えて(人∀・)
※2 手元の旧環境を起動して確認したところCS2以降でクラッシュし、現行バージョンのCC2015環境下のESTKまででクラッシュしました。


次に上記のソースコードをmac環境で実行してみたいと思います。
※1 ESTKのバージョンは同じです。10.10.4環境下ですが…
※2 確認したESTKバージョンはCS3~CCです。

macCC.png

(1)
macCC_1.png
(2)
macCC_2.png
(3)
macCC_3.png

結果が違う!!!

Adobeさん、こういうのホント勘弁してー

InDesignでmacでもwinでも動作するScriptで入力させる必要があるときは、
回避する方法としてdialogを作ってtextEditboxesに入力してもらうということが必要ってことか…

#target indesign
var a="";
for(var i=100;i<300;i++){
    a+=i+"/"
}
alert(a);
var dlg=app.dialogs.add({name:"prompt代用"});
with(dlg.dialogColumns.add()){
    var tx=textEditboxes.add({minWidth:480, editContents:a});
}
if(dlg.show()){
    var b=tx.editContents;
    dlg.destroy();
    alert(b);
}

みたいなコードを書いておく必要があります…
InDesign Scripting TB(0) CM(1) 

New LogTop LogOld Log

2017/10/25 代理人 URL 2017/10/26 13:11 #81Ikyo/M EDIT
【数年後の自分へメモ】ESTKでEO使う時はESTKがdllを掴む。ESTKでtarget indesignするコードの時はESTKは掴んでいなくてInDesignがdllを掴む。掴んでしまったらVCでdllをリビルドするとき怒られるので掴んでるアプリを落とす必要がある。

COMMENT


PREV PAGE   TOP   NEXT PAGE