問題タブ [adobe-scriptui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1352 参照

javascript - ScriptUI のアクションに基づいてダイアログ ウィンドウのサイズを変更する

ScriptUI は素晴らしいですが、いくつかの制限があるようです。.onClick()または.onShow()コールバックなど、ダイアログ ウィンドウ内のコントロールの 1 つで実行されるアクションに基づいて、ダイアログ ウィンドウのサイズを動的に変更する機能を探しています。ただし、ウィンドウのサイズを変更する唯一の方法は、メソッドで画面に描画される.show()です。ウィンドウが表示されると、コントロールがウィンドウのサイズを変更する方法がないように見えます。私が間違っていると教えてください。これを行う方法があります。

0 投票する
2 に答える
897 参照

javascript - ScriptUI ウィンドウの繰り返し表示

別の「簡単なはず」の問題があります。すべてのフィールドが入力されていることを確認する必要がある ScriptUI ウィンドウがあります。ユーザーが「OK」ボタンをクリックすると、スクリプトはフィールドが入力されていることを確認します。そうでない場合は、ユーザーにそうするように警告し、入力するまで同じウィンドウを再度表示する必要があります。全く。これが私がこれまでに持っているものです:

問題は、警告メッセージの後にウィンドウが再表示されないことです。なぜそうならないのですか?どうすれば修正できますか?

EDIT 09/23/2013 : 実行できるようにコードを追加しました。また、ユーザーが [キャンセル] をクリックしても、テキストの入力に関する警告ウィンドウが表示されることに気付きました。

EDIT 09/24/2013 : @ariestav のアイデアを実装しようとしたので、コードは次のようになりました。

ただし、キャンセル ボタンはキャンセルしません。コードを続行するだけです。exit();ディレクティブにより、スクリプトから完全に終了するだけだと思いました。私は何を間違っていますか?

0 投票する
2 に答える
2285 参照

javascript - ウィンドウが既に表示された後に ScriptUI コントロールを変更する

今回は(できれば)シンプルなものを用意しました。Adobe InDesign CS6 の ExtendScript でプログラムされた ScriptUI ウィンドウがあります。これには、StaticText コントロールが含まれています。このダイアログ ウィンドウがユーザーに表示された後、ユーザーのアクションに基づいて StaticText コントロールのテキストを変更したいと考えています。これが私の問題の非常に単純化されたバージョンです:

上記の例では、「こんにちは」が「こんばんは」に変わることはありません。ただし、プログレス バー コントロールをこのウィンドウに追加し、StaticText コントロールと共に定期的に更新すると、テキストを変更できますが、2 行目が元の行よりも長い場合、テキストが切り詰められることがわかりました。文章。

あたかも StaticText コントロールの幅が作成時に設定され、ウィンドウが表示された後は決して変更できないかのようです。これが単に ScriptUI の制限である場合は、お知らせください。対処します。それ以外の場合は、その StaticText を動的に変更し、切り捨てられることなく長いテキスト行を受け入れるためにできることがあるかどうか教えてください。ありがとう!

0 投票する
2 に答える
1964 参照

javascript - ScriptUI パレット ウィンドウ (およびその他) の破棄

ExtendScript で、ScriptUI の専門家の助けが必要な非常に奇妙なシナリオに遭遇しました。実行中にパレット ウィンドウにプログレス バーを表示する巨大な InDesign スクリプトがあります。( var w = new Window("palette", "Progress");) スクリプトが終了したら、このパレットを閉じたいのでw.close()、スクリプトの最後に を追加しました。

ただし、これはフォーカスがまだ InDesign にある場合にのみ発生します。InDesign スクリプトがバックグラウンドで別の画面で実行されている間に他のタスクに取り掛かるのが好きな人もいますが、それは問題ありませんが、InDesign に戻ると、進行状況バーのパレットが画面に表示されたままになり、100% 完了したことを示します。このパレット ウィンドウは移動できますが、隅にある小さな赤い 'x' をクリックしても閉じることはできません。このスクリプトは通常の勤務日に何十回も呼び出されるため、最終的には、1 日を通して複数のパレットが画面に表示されることになります。

Peter Kahrel の ScriptUI に関する優れたガイドを読んで、.close(). スクリプトの実行中にユーザーが別のアプリケーションに切り替えた場合に画面に表示されないように、メモリから完全に消去してパージしたいのです。これを達成する方法についてのアイデアはありますか?

ところで、サンプル コードを含めて、自分で確認できるようにしたかったのですが、ESTK から呼び出される小さなコードだけでは機能しないようです。私の 4,647 行のプロダクション スクリプトでのみ。したがって、サンプル コードを貼り付けることができません。

0 投票する
1 に答える
607 参照

adobe-indesign - Extendscript for Adob​​e InDesign の右から左のダイアログ/パレット/ウィンドウ

右から左へのウィンドウが必要です (ScriptUI のオブジェクトです)。C# では、フォームには、右から左へのフォームを作成する RightToLeft および RightToLeft レイアウトの 2 つのプロパティがあります。

Extendscriptでこれを行うにはどうすればよいですか?

0 投票する
1 に答える
1299 参照

javascript - Extendscript scriptui を使用して XML 要素の値を挿入、更新、削除する方法

adobe illustratorのスクリプティング用にextendscriptを学んでいます.xml関連の解析を書くのはとても難しいです. 私の問題文を以下に示します。-「名前、都市、国という 3 つのテキスト ボックスを使用しました。「名前」は一意のキーです。[OK] ボタンをクリックすると、名前が存在しない場合はデータを xml に保存する必要があります。それ以外の場合は更新します。重複を作成せずに以前の名前.xml ファイル内のすべての名前がリスト ボックスに表示されます.特定の名前の日付は、リスト ボックスの選択した項目のデータを削除する削除ボタンで削除できます.私がしようとしたコードは次のとおりです: -

親切に私を助けてください。

0 投票する
1 に答える
3895 参照

javascript - Photoshop ScriptUI: ダイアログ ウィンドウを表示して閉じ、再度表示すると空のフル サイズのウィンドウが表示される

JavaScript で記述された Photoshop CC 2015 (Windows 10) 用のスクリプトで、アクティブなドキュメントのすべてのレイヤーをループで処理しており、各ステップで設定ダイアログを表示したいと考えています。

簡単にするために、次の作業例を取り上げます。ウィンドウはループの外側で定義され、ここで取り除かれる他のステップの中で、ウィンドウはループ内のステップごとに 1 回表示されます。

実行すると、予想どおり、[OK] ボタンが 1 つだけある小さなダイアログ ウィンドウが表示されます。「OK」ボタンで閉じることができます。しかし、連続するたびw.show()に、画面全体をほぼ埋め尽くす空白のウィンドウが生成され、コントロールはまったくありません。ESCキーでしか閉じることができません。

イベントをオーバーライドしてb.onClick手動で呼び出してみましclose()たが、何も変わりませんでした。

変数を調べると、それぞれとが何らかの形で変更されwていることが明らかです。これらの値を以前の状態にリセットしようとしたところ、ウィンドウ サイズが復元されました。ただし、ボタンはまだ表示されません。boundslocationsize

何か不足していますか?ダイアログ ウィンドウが複数回正しく表示されるようにするにはどうすればよいですか?