| 套件 | 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"
|
描述
| 字串 |
"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"
|
描述
| 字串 |
"The radius of the effect"
|
minValue
| Array |
[0]
|
maxValue
| Array |
[50]
|
defaultValue
| Array |
[25]
|
一般而言,開發人員程式碼不會直接建立 ShaderParameter 實體。ShaderParameter 實體會在建立 Shader 實體時針對每一個著色器的參數建立。
相關 API 元素
| 屬性 | 定義自 | ||
|---|---|---|---|
![]() | constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | |
| index : int [唯讀]
以零為基底的參數索引。 | 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 屬性是一個索引的 Array。Array 的數目與元素類型對應至參數的資料類型,後者可透過 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):voidShaderParameter | () | 建構函式 |
public function ShaderParameter()| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | Flash Player 10, AIR 1.5 |
建立 ShaderParameter 實體。開發人員程式碼不會直接呼叫 ShaderParameter 建構函式。ShaderParameter 實體會在建立 Shader 實體時針對每一個著色器的參數建立。
Tue Jun 12 2018, 03:47 PM Z
隱藏繼承公用屬性
顯示繼承公用屬性