終了

scriptUIパネルのキー入力無効化

ゲスト
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

illustratorのscriptUIを使ってpanel(常に表示しておくタイプ)を作成したのですが、

スペースキーを押すと選択しているエリアのボタンが、勝手に動作してしまいます。

キー入力を無効にすることは可能でしょうか?

キーワード
スクリプティング

表示

348

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

これ、ご使用のOSやIllustratorのバージョンを明記いただくのが必須な案件ですね。

ScriptUIはCC2015、CC2019と節目ごとに挙動が怪しくなってきてますが、

2020でエレメントの表示が逆順になったりと、かなり要注意な感じになってきています。

差し支えなければボタンをWindowオブジェクト直下に配置する(Groupなどに入れない)、

CEPエクステンションへの移行を検討するなど必要かもしれません。

とりあえずは、バージョンがわからない、コードの開示がないとなんも言えません。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ゲスト
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

OS 10.11.6

CS6で進めていましたが、試しにCC2018でやっても同じ現象です。

CC2018だと文字が切れてたりしますが、とりあえず簡略版ソースです。

セットボタンや実行ボタンを押した後にスペースキーを押すと各々直近に使用したボタンがが反応します。

 

var mainDlg;
mainDlg=new Window('palette', 'test' , [0, 0, 181, 234]);
mainDlg.center();
setBtn=mainDlg.add('button' , [123, 26, 165, 49] , 'セット');
stText=mainDlg.add('statictext' , [28.5, 31, 98.5, 49] , '未選択' , {multiline : false});
mainDlg.add('panel' , [10, 59, 170, 102] , '垂直方向');
var grpV=mainDlg.add('group' , [10, 59, 170, 102] );
dlgRB_V["T"]=grpV.add('radiobutton' , [15, 18, 45, 36] , '上');
dlgRB_V["C"]=grpV.add('radiobutton' , [49, 18, 79, 36] , '中');
dlgRB_V["B"]=grpV.add('radiobutton' , [83, 18, 113, 36] , '下');
dlgRB_V["N"]=grpV.add('radiobutton' , [117, 18, 147, 36] , '無');
applyBtn=mainDlg.add('button' , [10, 206, 60, 226] , '実行' , {name: 'ok'});
mainDlg.show();

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

※未定義エラーが出たので、8行目の前に

var dlgRB_V = {};

を追加して実行してみました。

macOSX10.14.6、CC2019で試してみましたが、

おっしゃる通りの挙動となりました。

 

これ、実は自分もInDesign用ScriptUIで同様の挙動に悩んで英語のほうのフォーラムで外人どもの知見を頼ったのですが、ACPのロクに試しもしない心のこもっていないリプライがついたのみでスレッドが流れていきました。諦めてCEP開発に取り組んでいます。

こちらはCC2015を区切りにおかしな動きとなりました。現在も解決に至っておりません。

 

お力になれず申し訳ございません。

有志の剽軽な回避策が出ればありがたいですね。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ゲスト
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

やはり仕様というかバグというか、そんな感じなのですかね。

実現したい機能に対しては何気にちょっとやっかいな現象ですね。

とりあえず別の解決策を探ってみます。

 

CEPは以前に一度試しましたが、

社内で他の機械に入れるとか考えると何かと面倒っぽかったのでそれ以来試していません。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 22, 2020 Dec 22, 2020

リンクをクリップボードにコピー

コピー完了

バタバタして良いのなら各ボタンonClickでmainDlgをcloseしてから再度showするとか…

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 23, 2020 Dec 23, 2020

リンクをクリップボードにコピー

コピー完了

いけてますね。

var mainDlg;
mainDlg=new Window('palette', 'test' , [0, 0, 181, 234]);
mainDlg.center();
setBtn=mainDlg.add('button' , [123, 26, 165, 49] , 'セット');
stText=mainDlg.add('statictext' , [28.5, 31, 98.5, 49] , '未選択' , {multiline : false});
mainDlg.add('panel' , [10, 59, 170, 102] , '垂直方向');
var grpV=mainDlg.add('group' , [10, 59, 170, 102] );
var dlgRB_V = {};
dlgRB_V["T"]=grpV.add('radiobutton' , [15, 18, 45, 36] , '上');
dlgRB_V["C"]=grpV.add('radiobutton' , [49, 18, 79, 36] , '中');
dlgRB_V["B"]=grpV.add('radiobutton' , [83, 18, 113, 36] , '下');
dlgRB_V["N"]=grpV.add('radiobutton' , [117, 18, 147, 36] , '無');
applyBtn=mainDlg.add('button' , [10, 206, 60, 226] , '実行' , {name: 'ok'});

setBtn.onClick = function(){
    alert("set");
    duscess();
    }

applyBtn.onClick = function(){
    alert("aply");
    duscess();
    }

function duscess(){
    mainDlg.close();
    mainDlg.show();
    }
mainDlg.show();

 

あと、ものがPaletteなのでapplyBtnの{name: 'ok'} は当初から機能していないようです。

 

関係ないですが自分のスレッド発掘しましたw よろしければこちらも

https://community.adobe.com/t5/indesign/how-to-keep-edittext-active-after-an-event-on-cc/m-p/1154409...

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ゲスト
Dec 23, 2020 Dec 23, 2020

リンクをクリップボードにコピー

コピー完了

ありがとうございます。

ajabonさんの改訂版を試させていただいたところ、

CC2018の方は大丈夫でしたが

CS6は押したボタンがアクティブのままになってしまいますね…

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ゲスト
Dec 23, 2020 Dec 23, 2020

リンクをクリップボードにコピー

コピー完了

ajabonさんの過去スレを参考にボタンを押した時に

ラジオボタンを強制的にアクティブにしてみたらいけそうな感じです。

とりあえずラジオボタングループのtrueを制的にアクティブにしてしまえば

問題なく使えそうなのでそれでやってみます。

 

ありがとうございました。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 23, 2020 Dec 23, 2020

リンクをクリップボードにコピー

コピー完了

再度showした時にpaletteのactiveプロパティをfalseにするとどうでしょう?

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ゲスト
Dec 23, 2020 Dec 23, 2020

リンクをクリップボードにコピー

コピー完了

最新
mainDlg.active = falseを追加したらいけました。
助かりました。ありがとうございます。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines