包 | flash.display |
类 | public final dynamic class ShaderParameter |
继承 | ShaderParameter Object |
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
| String |
"size"
|
description
| String |
"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
| String |
"radius"
|
description
| String |
"The radius of the effect"
|
minValue
| Array |
[0]
|
maxValue
| Array |
[50]
|
defaultValue
| Array |
[25]
|
通常,开发人员代码不直接创建 ShaderParameter 实例。在创建 Shader 实例时,将为着色器的每个参数创建一个 ShaderParameter 实例。
另请参见
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
index : int [只读 (read-only)] 参数的从 0 开始的索引。 | ShaderParameter | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
type : String [只读 (read-only)] 着色器中定义的参数的数据类型。 | ShaderParameter | ||
value : Array 以参数值形式传入到着色器的一个或多个值。 | ShaderParameter |
方法 | 定义方 | ||
---|---|---|---|
创建 ShaderParameter 实例。 | ShaderParameter | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
index | 属性 |
index:int
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
参数的从 0 开始的索引。
public function get index():int
type | 属性 |
type:String
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
着色器中定义的参数的数据类型。type
属性的可能值的集合由 ShaderParameterType 类中的常量定义。
public function get type():String
另请参见
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]
: .1
myMatrix[0][1]
: .2
myMatrix[1][0]
: .3
myMatrix[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 实例。