0

私は JavaScript でスクリプトを書き始めたばかりで、私の知識はごくわずかです。

ソリッドを作成する数行のコードがありますが、ユーザーが色を選択できるように GUI カラー ピッカーを表示させたいと考えています。以下に例を示します。

var myComp = app.project.item(1); //points to my comp

var mySolid = myComp.layers.addSolid([10,10,10],"Shape", 10, 10, 1.0); // creates a 10 pixel shape

addSolid の最初のパラメーターの 1 つは、RGB 値で識別される配列値に入力する色です。カラー ピッカー GUI にアタッチされた変数でこの値をオーバーライドできるかどうか疑問に思っています。簡単にカラー ピッカーを作成できるオブジェクトまたはメソッドは、extendscript ユーティリティ内にありますか? ただ疑問に思っています。

私の質問が明確であることを願っています。ありがとうございました

4

1 に答える 1

3

http://yearbookmachine.github.io/esdocs/#/Javascript/$/colorPickerをチェックしてください

colorPicker(Number color)
プラットフォーム固有の色選択ダイアログを呼び出し、選択された色を返します。
パラメータ Number color ダイアログで事前に選択される色。0xRRGGBB、またはプラットフォームのデフォルトの場合は -1 です。

var color = $.colorPicker();
alert(color);

編集1:

AE は主に、0 から 1 [r、g、b、a] までの値を持つ 4 つの値の配列で色を使用しますが、ソリッドはアルファ値を持つことはできません。

Edit2 (完全で使いやすいものにするため):

// check out [http://yearbookmachine.github.io/esdocs/#/Javascript/$/colorPicker](http://yearbookmachine.github.io/esdocs/#/Javascript/$/colorPicker)

// colorPicker(Number color)  
// Invokes the platform-specific color selection dialog, and returns the selected color.  
// Parameters Number color The color to be preselected in the dialog, as 0xRRGGBB, or -1 for the platform default.  

// convert a hexidecimal color string to 0..255 R,G,B
// found here https://gist.github.com/lrvick/2080648
var hexToRGB = function(hex) {
  var r = hex >> 16;
  var g = hex >> 8 & 0xFF;
  var b = hex & 0xFF;
  return [r, g, b];
};

var color_decimal = $.colorPicker();
$.writeln(color_decimal);

var color_hexadecimal = color_decimal.toString(16);
$.writeln(color_hexadecimal);

var color_rgb = hexToRGB(parseInt(color_hexadecimal, 16));
$.writeln(color_rgb);

var color_that_ae_add_solid_understands = [color_rgb[0] / 255, color_rgb[1] / 255, color_rgb[2] / 255];
$.writeln(color_that_ae_add_solid_understands);

// also check out the AE scripting guide on addSolid and its parameters
// https://blogs.adobe.com/aftereffects/files/2012/06/After-Effects-CS6-Scripting-Guide.pdf?file=2012/06/After-Effects-CS6-Scripting-Guide.pdf

var comp = app.project.items.addComp(name = "new comp",
  width = 100,
  height = 100,
  pixelAspect = 1,
  duration = 1,
  frameRate = 25);

var solid = comp.layers.addSolid(color_that_ae_add_solid_understands,
  name = "solid",
  width = 10,
  height = 10,
  pixelAspect = 1,
  duration = 1);
于 2014-09-10T19:54:27.423 に答える