Главная / Action Script 3
Пакетflash.display
Классpublic final dynamic class ShaderParameter
НаследованиеShaderParameter Inheritance Object

Экземпляр ShaderParameter представляет единственный параметр ввода ядра затенения. При выполнении ядра можно заставить его работать с нулем, одним или несколькими параметрами, используемыми при выполнении ядра. ShaderParameter предоставляет сведения о параметре, например ожидаемый тип данных. В нем также заложен механизм, позволяющий указывать значение параметра для использования при выполнении операции затенения. Чтобы задать одно или несколько значений параметра затенения, создайте массив с одним или несколькими значениями и назначьте его свойству value.

Доступ к экземпляру ShaderParameter, представляющему параметр экземпляра Shader, осуществляется в качестве свойства data экземпляра Shader. В коде затенения имя свойства ShaderParameter совпадает с именем параметра. Например, если затенение задает параметр с именем radius, то экземпляр ShaderParameter, представляющий параметр radius, будет доступен в качестве свойства radius. Пример:

var radiusParam:ShaderParameter = myShader.data.radius;

В дополнение в заданным свойствам класса ShaderParameter каждый экземпляр ShaderParameter обладает дополнительными свойствами, соответствующими любым метаданным, определенным для параметра. Эти свойства применяются к объекту ShaderParameter при его создании. Имена свойств совпадают с именами метаданными, указанными в исходном коде затенения. Типы данных каждого свойства различаются в зависимости от типов данных соответствующих метаданных. Значение метаданных текста "описание" является экземпляром String. Свойство метаданных, содержащее не строковое значение (например, minValue или defaultValue), является экземпляром Array. Количество элементов и типов данных элементов совпадает со значениями метаданных.

Предположим, в затенение входит два следующих объявления параметров:

  parameter float2 size
  <
      description: "The size of the image to which the kernel is applied";
      minValue: float2(0.0, 0.0);
      maxValue: float2(100.0, 100.0);
      defaultValue: float2(50.0, 50.0);
  >;
  
  parameter float radius
  <
      description: "The radius of the effect";
      minValue: 0.0;
      maxValue: 50.0;
      defaultValue: 25.0;
  >;
  

В дополнение ко встроенным свойствам в экземпляре ShaderParameter, который соответствует параметру size, присутствуют следующие свойства метаданных:

Имя свойстваТип данныхЗначение
name String "size"
description String "Размер изображения, к которому применяется ядро"
minValue Array [0, 0]
maxValue Array [100, 100]
defaultValue Array [50, 50]

ShaderParameter, соответствующий параметру radius, обладает следующими дополнительными свойствами:

Имя свойстваТип данныхЗначение
name String "radius"
description String "Радиус действия"
minValue Array [0]
maxValue Array [50]
defaultValue Array [25]

Обычно, в коде разработчика прямое создание экземпляра ShaderParameter не заложено. При создании экземпляра Shader экземпляр ShaderParameter создается автоматически для каждого параметра затенения.

См. также

flash.display.ShaderData
flash.display.Shader.data
Указание значений параметров затенения


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  index : int
[только для чтения] Отсчитываемое от нуля значение индекса для параметра.
ShaderParameter
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  type : String
[только для чтения] Тип данных параметра согласно заданному типу в затенении.
ShaderParameter
  value : Array
Значение или значения, передаваемые в качестве значений параметра затенения.
ShaderParameter
Общедоступные методы
 МетодОпределено
  
Создает экземпляр ShaderParameter.
ShaderParameter
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
indexсвойство
index:int  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Отсчитываемое от нуля значение индекса для параметра.



Реализация
    public function get index():int
typeсвойство 
type:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Тип данных параметра согласно заданному типу в затенении. Набор возможных значений свойства type определяется константами класса ShaderParameterType.



Реализация
    public function get type():String

См. также

valueсвойство 
value:Array  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Значение или значения, передаваемые в качестве значений параметра затенения. Свойство value является индексированным массивом. Число и тип элементов массива соответствует типу данных параметра и задается с помощью свойства type.

В следующей таблице указан тип параметра и соответствующие значение числа и типа данных value элементов массива:

Тип параметраЧисло элементовТип данных элементов
float (ShaderParameterType.FLOAT)1Number
float2 (ShaderParameterType.FLOAT2)2Number
float3 (ShaderParameterType.FLOAT3)3Number
float4 (ShaderParameterType.FLOAT4)4Number
int (ShaderParameterType.INT)1int или uint
int2 (ShaderParameterType.INT2)2int или uint
int3 (ShaderParameterType.INT3)3int или uint
int4 (ShaderParameterType.INT4)4int или uint
bool (ShaderParameterType.BOOL)1Boolean
bool2 (ShaderParameterType.BOOL2)2Boolean
bool3 (ShaderParameterType.BOOL3)3Boolean
bool4 (ShaderParameterType.BOOL4)4Boolean
float2x2 (ShaderParameterType.MATRIX2X2)4Number
float3x3 (ShaderParameterType.MATRIX3X3)9Number
float4x4 (ShaderParameterType.MATRIX4X4)16Number

Если используются параметры типа "матрица", то массив заполняется сначала по горизонтали, затем по вертикали. Предположим, что следующая строка ActionScript используется для заполнения параметра float2x2 с именем myMatrix:

myShader.data.myMatrix.value = [.1, .2, .3, .4];

Значения элементов матрица в заголовке затенения:



Реализация
    public function get value():Array
    public function set value(value:Array):void
Сведения о конструкторе
ShaderParameter()Конструктор
public function ShaderParameter()

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Создает экземпляр ShaderParameter. В коде разработчика прямой вызов конструктора ShaderParameter не производится. При создании экземпляра Shader экземпляр ShaderParameter создается автоматически для каждого параметра затенения.