質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

Q&A

解決済

1回答

3527閲覧

引数が無効というエラーについて

sor

総合スコア17

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

0グッド

0クリップ

投稿2017/12/26 02:37

編集2017/12/26 02:41

Photoshopのスクリプト(javascriptのようです)でもこちらで質問しても大丈夫でしょうか?
問題自体は解決したものの、どうして解決できたのかが分かっておらず
今後のためにも違いを分かっておきたいと思い質問させていただきます。

###前提・実現したいこと
ステージ枠にガイドを引くスクリプトを入れたいと思い検索したところ、
下記の2サイト様が見つかりました。
(1)http://blog.sakurachiro.com/2010/04/canvas-guidejsx/
(2)http://dearps.lovwar.com/2009/06/script/

上のサイト様で紹介しているスクリプトで試したところ、
途中でエラーが出てしまい、2つ目のサイト様のスクリプトを試したところ無事成功しました。
同じ処理をしているように見えるのですが、何が違ったのでしょうか?

###(1)のサイト様で紹介しているスクリプト

var posArr=[0,50,100];//位置% var dirArr=["Vrtc","Hrzn"];//向き function guideWrap(direction,position){ var id1 = charIDToTypeID( "Mk " ); var desc1 = new ActionDescriptor(); var id2 = charIDToTypeID( "Nw " ); var desc2 = new ActionDescriptor(); var id3 = charIDToTypeID( "Pstn" ); var id4 = charIDToTypeID( "#Prc" ); desc2.putUnitDouble( id3, id4, position ); var id5 = charIDToTypeID( "Ornt" ); var id6 = charIDToTypeID( "Ornt" ); var id7 = charIDToTypeID( direction ); desc2.putEnumerated( id5, id6, id7 ); var id8 = charIDToTypeID( "Gd " ); desc1.putObject( id2, id8, desc2 ); executeAction(id1,desc1,DialogModes.NO); } for(var i=0;i<posArr.length;i++){ for(var j=0;j<dirArr.length;j++){ guideWrap(dirArr[j],posArr[i]); } }

実行したところ無効な引数と言われてしまいます。

エラー1220:無効な引数 ライン:5 -> var id1 = charIDToType("Mk ");

###(2)のサイト様で紹介しているスクリプト

// ======================================================= var id18 = charIDToTypeID( "Mk " ); var desc3 = new ActionDescriptor(); var id19 = charIDToTypeID( "Nw " ); var desc4 = new ActionDescriptor(); var id20 = charIDToTypeID( "Pstn" ); var id21 = charIDToTypeID( "#Prc" ); desc4.putUnitDouble( id20, id21, 0.000000 ); var id22 = charIDToTypeID( "Ornt" ); var id23 = charIDToTypeID( "Ornt" ); var id24 = charIDToTypeID( "Vrtc" ); desc4.putEnumerated( id22, id23, id24 ); var id25 = charIDToTypeID( "Gd " ); desc3.putObject( id19, id25, desc4 ); executeAction( id18, desc3, DialogModes.NO ); // ======================================================= var id26 = charIDToTypeID( "Mk " ); var desc5 = new ActionDescriptor(); var id27 = charIDToTypeID( "Nw " ); var desc6 = new ActionDescriptor(); var id28 = charIDToTypeID( "Pstn" ); var id29 = charIDToTypeID( "#Prc" ); desc6.putUnitDouble( id28, id29, 100.000000 ); var id30 = charIDToTypeID( "Ornt" ); var id31 = charIDToTypeID( "Ornt" ); var id32 = charIDToTypeID( "Vrtc" ); desc6.putEnumerated( id30, id31, id32 ); var id33 = charIDToTypeID( "Gd " ); desc5.putObject( id27, id33, desc6 ); executeAction( id26, desc5, DialogModes.NO ); // ======================================================= var id34 = charIDToTypeID( "Mk " ); var desc7 = new ActionDescriptor(); var id35 = charIDToTypeID( "Nw " ); var desc8 = new ActionDescriptor(); var id36 = charIDToTypeID( "Pstn" ); var id37 = charIDToTypeID( "#Prc" ); desc8.putUnitDouble( id36, id37, 100.000000 ); var id38 = charIDToTypeID( "Ornt" ); var id39 = charIDToTypeID( "Ornt" ); var id40 = charIDToTypeID( "Hrzn" ); desc8.putEnumerated( id38, id39, id40 ); var id41 = charIDToTypeID( "Gd " ); desc7.putObject( id35, id41, desc8 ); executeAction( id34, desc7, DialogModes.NO ); // ======================================================= var id42 = charIDToTypeID( "Mk " ); var desc9 = new ActionDescriptor(); var id43 = charIDToTypeID( "Nw " ); var desc10 = new ActionDescriptor(); var id44 = charIDToTypeID( "Pstn" ); var id45 = charIDToTypeID( "#Prc" ); desc10.putUnitDouble( id44, id45, 0.000000 ); var id46 = charIDToTypeID( "Ornt" ); var id47 = charIDToTypeID( "Ornt" ); var id48 = charIDToTypeID( "Hrzn" ); desc10.putEnumerated( id46, id47, id48 ); var id49 = charIDToTypeID( "Gd " ); desc9.putObject( id43, id49, desc10 ); executeAction( id42, desc9, DialogModes.NO );

こちらのコードでは問題なく実行できました。
なんとなく処理自体は同じことをしているのではと思うのですが、
何か違いがありましたらどうかご教示いただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

|Method|Parameter type|Returns|What it does|

|---|---|---|---|
|charIDToTypeID(charID)|string|number|Converts from a four character code (character ID) to a runtime ID|

http://wwwimages.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref-2015.pdf

とのこと。前者のコードは3文字ですね。

投稿2017/12/26 02:56

Lhankor_Mhy

総合スコア36104

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sor

2017/12/26 03:01

なるほど、コードの書き方ではなく設定したIDの文字数自体に問題があったのですね。 とてもすっきりしました。 早急なご解答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問