« とっかえパッていしおん。 | トップページ | このPassでもそのパッていしおん。 »

2012年4月 5日 (木)

var oFuck = Dictionary.GetObject( "preferences.rendering.region_display_mode" );oFuck.value = oFuck.value === 1 ? 2 : 1;。

またもやコードはタイトルに。
JScript です。



レンダリジョンの表示を、RGB と Alpha でトグルする高級スクリプトです。


Rgb_a_toggle
この左右の状態を行き来するというだけです。


リジョンの左上の三角クリック > Display > RGB Only とかやってらんないじゃないですか。 めんどくさいんですよ。


だからショートカットにでも割り当ててやりたかったんですよ。
ボタン化するときにでもコマンドとして登録してやって、ショートカットから起動できるようにすればいいですかね。





このスクリプトも過去に何度も書いては紛失し、そのたびに書き直すという実に無駄なことを繰り返してきたので、とうとうブログに書いておきます。失くしたらここに来ます。


昔作ったリージョンさんというプラグインの中にもこの機能はありますが、まあ、単体でサッとできた方が圧倒的に便利ですね。








var oFuck = Dictionary.GetObject( "preferences.rendering.region_display_mode" );oFuck.value = oFuck.value === 1 ? 2 : 1;



このコードですが、Preference の中のリジョンの表示の設定をいじっていることになりますね。 ビューごとではないので、複数のリジョンがあったら全部に影響があります。


値が 0 と 1 のトグルだったら、ToggleValue コマンドとかでやってやるのがラクなんでしょうけど、俺は RGB と A でトグルしたく、これが 1 と 2 のトグルなんですよ。 1 だったら 2 にしなさい、そうでなければ 1 にしなさい、というコードにする必要がある。 なので、過去にブールのトグルの記事を書いた時に頂いたコメントからパクりました。


A = A === X ? Y : X


という書き方をすると、「A の値が X だったら Y を新たに A に入れろよ。 そうじゃなきゃ X を入れろよ」 という意味になるようです。どうやら。 三項演算子っていうんですか。さっぱりわかりませんが、上記の挙動でたぶん合っていると思います。今後のスクリプト書きでガンガン活用したいと思います。 教えてくれた anamorph さんに感謝します。






あ、いや、違った。

俺はスクリプトとか無い国へ移住します。





.

|

« とっかえパッていしおん。 | トップページ | このPassでもそのパッていしおん。 »

コメント

「=」 は3回になってる理由はなんですか?
自分はいつも A = A == X? Y : A みたいな書き方しています。
さっき試してみたら結果は同じだったけど、何かが違うんですかね?

投稿: myara | 2012年4月 5日 (木) 16時55分

え? = は2つでいいの?
いやあ、俺、なんにも知らないんだw ごめん
記事中にも書いたけど、anamorph さんが教えてくれたやつを、そのまんまコピペしてるの。
anamorph さんが書いたのは = が3つだから、3つ必要なんだろうって思い込んでた。

2つの方が一般的なのかな?
3つでもたまたま動くけど、ほんとは2つが正しい、とか?

ごめん、俺、ほんとに何も知らないままスクリプト書いているんだ。。。
教えて欲しいです

投稿: 潤樹 | 2012年4月 5日 (木) 23時38分

こんにちは。

== は左右の値のデータ型を自動的に変換して比較
=== は左右の値のデータ型を変換せずに比較するので同じデータ型でないと等しいとは評価されない。 (厳密等価っていうみたいです)

という違いがあるようです。
なので以下のスクリプトを実行してみると具体的に分かりやすいです。

a = 0;
b = "0"

logmessage("■==では■")
if(a == b){
logmessage("等しい")
}else{
logmessage("等しくない")
}

logmessage("■===では■")
if(a === b){
logmessage("等しい")
}else{
logmessage("等しくない")
}

Jscriptだとデータ型をほぼ意識しないで記述できますから、データ型まで考慮したい時用にあるのかもしれないですね。

http://msdn.microsoft.com/ja-jp/library/9z64ekta%28v=vs.80%29.aspx

ここに詳しく書かれてます。
自分も知らないの多いので勉強しなくてはです(;;;´Д`)ゝ

投稿: モチオ | 2012年4月 6日 (金) 03時23分

わー なるほど
モチオさんいつもありがとう

マーティン、そういうことなんだって。
なるほどねえ

投稿: 潤樹 | 2012年4月 6日 (金) 18時36分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/217974/54383455

この記事へのトラックバック一覧です: var oFuck = Dictionary.GetObject( "preferences.rendering.region_display_mode" );oFuck.value = oFuck.value === 1 ? 2 : 1;。:

« とっかえパッていしおん。 | トップページ | このPassでもそのパッていしおん。 »