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

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

ただいまの
回答率

90.86%

  • JavaScript

    14220questions

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

  • Photoshop

    94questions

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

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 224

sor

score 9

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 );


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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+3

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 12:01

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

    キャンセル

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

  • ただいまの回答率 90.86%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    14220questions

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

  • Photoshop

    94questions

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