LoginSignup
9
5

More than 5 years have passed since last update.

Adobe JSXで特定のjsxファイルが存在すれば読み込む

Posted at

以前、JSXファイル自身のpathを求める方法を書いたのだけど、それと $.evalFile() を使えば「JSXファイルがあれば読み込んで挙動を変える」みたいなことができるのでメモ。


ディレクトリ構成

$ tree
.
├── lib
│   └── lib1.jsx
└── main.jsx

main.jsx と同じ階層に lib というディレクトリを作り、 lib の中に lib1.jsx というファイルがあれば読み込むようにする。

main.jsx

エントリポイントとなるファイル。
func にアラートを表示する関数を代入した後で、もし lib/lib1.jsx が存在すれば $.evalFile() で読み込む。

main.jsx
const SELF = (function(){
    try {app.documents.test()}
    catch(e) {return File(e.fileName)}
})();

var func = function() { alert('function in main'); }

if(new File(SELF.path + '/lib/lib1.jsx').exists) {
    $.evalFile(SELF.path + '/lib/lib1.jsx');
}

func();

lib1.jsx

main.jsx から読み込まれる。
内容は func にメッセージを変えたアラートを表示する関数を(再)代入するだけ。

lib/lib1.jsx
var func = function() { alert('function in lib'); }

lib/lib1.jsx を置いて実行するとこのようなアラートが表示される。

Screen Shot 2013-07-20 at 5.46.02 PM.png

lib/lib1.jsx を削除して実行するとこのようなアラートが表示される。

Screen Shot 2013-07-20 at 6.00.08 PM.png

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5