さて「AdobeCCのExtensionをBracketsで開発しよう」の第4回です。
→第3回目 →第2回目 →第1回目
今回からはいよいよCC上でデバッグと参ってまいります。つってもマニフェストで指定したアプリケーションを立ち上げるだけですが、、。うまく設定がなされていれば、「メニューバー」→「ウィンドウ」→「エクステンション」に「命名したExtension名」が表示されているはずです。起動すると、
見ン事にパネルが表示されました、成功です。グイグイと他のパネルに引っ付けることができます。感動的なほどです。感動の対面はここまでにして、実用的な機能を追加していきましょう。目指すべきところはココではないのですから、、、、。
パネル側のjsとアプリ側のjsxの連携
まず、jsxとの連携でスクリプトフォルダ内のファイルを取得したいですね。なので下記のようなコードをhostscript.jsxに書いてみました。
//hostscript.jsx内コード
//スクリプトフォルダのjsxファイルを取得する
function userScriptGet(){
//アプリケーションのフォルダを取得してスクリプトフォルダパスを追加
var getPath=decodeURI(app.path)+"/Presets/ja_JP/スクリプト/";
var folderObj=new Folder(getPath);
//jsxファイルを取得する
var jsxList=folderObj.getFiles("*.jsx");
folderObj.close;
var jsxNameList=new Array();
for(var j=0;j<jsxList.length;j++){
jsxList[j]=decodeURI(jsxList[j]);
jsxNameList[j]=decodeURI(new File(jsxList[j]).name);
};
//ファイルパスとファイル名を「#」で区切って返り値にする
return jsxList.join(",")+"#"+jsxNameList.join(",");
};
Macのスクリプトフォルダは“/Presets/ja_JP/スクリプト/”ではなく“/Presets.localized/ja_JP/スクリプト/”みたいですね(ややこしぃ)。このjsxをパネル上(つまりHTML5からのjavascript)から実行するにはmain.jsに下記コード!
//main.js内
//CSInterfaceを定義
var csInterface = new CSInterface();
//起動時に初期設定を実行
iniSet();
//初期設定ファンクション
function iniSet(){
//hostscript.jsx内ファンクション「userScriptGet」を実行
csInterface.evalScript("userScriptGet()");
}
で実行できますが、今回は返り値を取得したいので、
//main.js内
//CSInterfaceを定義
var csInterface = new CSInterface();
//起動時に初期設定を実行
iniSet();
//初期設定ファンクション
function iniSet(){
//hostscript.jsx内ファンクション「userScriptGet」を実行し返り値datを取得
csInterface.evalScript("userScriptGet()",function(dat){
//コンソールに出力
console.log(dat)
});
}
と、「,function(dat){})」を追記します。これで、datにjsxからreturnされた値が返ってきます。この値を、console.log(dat)で第3回で紹介したブラウザでデバッグしてみましょう。
2019/06/17追記
ちなみにjsx側に変数を引数として渡す場合は、
//csInterfaceのプロパティgetOSInformation()でOS情報を取得する
var os=csInterface.getOSInformation();
//取得した変数「os」をjsx側に渡すしながら返り値をdatで受け取る
csInterface.evalScript("userScriptGet('"+os+"')",function(dat){
//コンソールに出力
console.log(dat)
});
という感じです。もちろんこの場合はjsx側の関数「userScriptGet」に渡される引数を受け取る処理を追記して下さい。
スポンサーリンク
ブラウザを起動してデバックする
起動しているCCアプリを再起動し、デバッグするExtensionを呼び出します。そして、ブラウザを立ち上げて、アドレスバーに「localhost:8080/」を打ち込みます(4桁の数字は「.debug」ファイル内のCCアプリに対応するPort番号)。成功すると、下記のような画面が、、、
index.htmlをクリックして、上のメニューバーの「Console」を選択すると、
console.log(dat)
で出力した結果が表示されるはずです。他にも、Elementsとかいろいろ見れるみたいっす!
2020/06/10追記
アドレスを入力してもデバッグできない!
という方は、コチラの記事をご覧下さい。新しめのchromeをインストールした場合、上記の方法ではデバッグ出来ません。
今回はココまで!
次回はいよいよ、jsxをリスト化し、scriptを外部実行させていきます。ダメだ!やっぱり5回では収まらない!
>
スポンサーリンク
More from my site
スポンサーリンク



