包 | flash.display |
类 | public final dynamic class ShaderParameter |
继承 | ShaderParameter Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
value
属性。
表示 Shader 实例的参数的 ShaderParameter 实例将作为 Shader 实例的 data
属性的一个属性进行访问。ShaderParameter 属性的名称与着色器代码中参数的名称相同。例如,如果着色器定义一个名为 radius
的参数,则表示 radius
参数的 ShaderParameter 实例可作为 radius
属性使用,如下所示:
var radiusParam:ShaderParameter = myShader.data.radius;
除了 ShaderParameter 类的已定义属性外,每个 ShaderParameter 实例还具有与为参数定义的任何元数据对应的附加属性。创建 ShaderParameter 对象时会将这些属性添加到该对象中。这些属性的名称与着色器源代码中指定的元数据名称相匹配。每个属性的数据类型因对应元数据的数据类型而异。文本元数据值(如“description”)是 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; >;
对应于 size
参数的 ShaderParameter 实例除了其内置属性外还具有以下元数据属性:
属性名称 | 数据类型 | 值 |
---|---|---|
name
| 字符串 |
"size"
|
description
| 字符串 |
"The size of the image to which the kernel is applied"
|
minValue
| Array |
[0, 0]
|
maxValue
| Array |
[100, 100]
|
defaultValue
| Array |
[50, 50]
|
对应于 radius
参数的 ShaderParameter 具有以下附加属性:
属性名称 | 数据类型 | 值 |
---|---|---|
name
| 字符串 |
"radius"
|
description
| 字符串 |
"The radius of the effect"
|
minValue
| Array |
[0]
|
maxValue
| Array |
[50]
|
defaultValue
| Array |
[25]
|
通常,开发人员代码不直接创建 ShaderParameter 实例。在创建 Shader 实例时,将为着色器的每个参数创建一个 ShaderParameter 实例。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
index : int [只读]
参数的从 0 开始的索引。 | ShaderParameter | ||
type : String [只读]
着色器中定义的参数的数据类型。 | ShaderParameter | ||
value : Array
以参数值形式传入到着色器的一个或多个值。 | ShaderParameter |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建 ShaderParameter 实例。 | ShaderParameter | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
index | 属性 |
type | 属性 |
value | 属性 |
value:Array
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
以参数值形式传入到着色器的一个或多个值。value
属性为索引数组。数组元素的数量和类型对应于参数的数据类型(可使用 type
属性确定)。
下表表示参数类型以及 value
数组元素的对应数量和数据类型:
参数类型 | 元素数量 | 元素数据类型 |
---|---|---|
float (ShaderParameterType.FLOAT ) | 1 | Number |
float2 (ShaderParameterType.FLOAT2 ) | 2 | Number |
float3 (ShaderParameterType.FLOAT3 ) | 3 | Number |
float4 (ShaderParameterType.FLOAT4 ) | 4 | Number |
int (ShaderParameterType.INT ) | 1 | int 或 uint |
int2 (ShaderParameterType.INT2 ) | 2 | int 或 uint |
int3 (ShaderParameterType.INT3 ) | 3 | int 或 uint |
int4 (ShaderParameterType.INT4 ) | 4 | int 或 uint |
bool (ShaderParameterType.BOOL ) | 1 | Boolean |
bool2 (ShaderParameterType.BOOL2 ) | 2 | Boolean |
bool3 (ShaderParameterType.BOOL3 ) | 3 | Boolean |
bool4 (ShaderParameterType.BOOL4 ) | 4 | Boolean |
float2x2 (ShaderParameterType.MATRIX2X2 ) | 4 | Number |
float3x3 (ShaderParameterType.MATRIX3X3 ) | 9 | Number |
float4x4 (ShaderParameterType.MATRIX4X4 ) | 16 | Number |
对于矩阵参数类型,数组元素将填充矩阵的行,然后填充列。例如,假设使用以下 ActionScript 行来填充名为 myMatrix
的 float2x2
参数:
myShader.data.myMatrix.value = [.1, .2, .3, .4];
在着色器内,矩阵元素具有以下值:
myMatrix[0][0]
: .1myMatrix[0][1]
: .2myMatrix[1][0]
: .3myMatrix[1][1]
: .4
实现
public function get value():Array
public function set value(value:Array):void
ShaderParameter | () | 构造函数 |
public function ShaderParameter()
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
创建 ShaderParameter 实例。开发人员代码不直接调用 ShaderParameter 构造函数。在创建 Shader 实例时,将为着色器的每个参数创建一个 ShaderParameter 实例。
Tue Jun 12 2018, 11:04 AM Z