套件 | 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):void
ShaderParameter | () | 建構函式 |
public function ShaderParameter()
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
建立 ShaderParameter 實體。開發人員程式碼不會直接呼叫 ShaderParameter 建構函式。ShaderParameter 實體會在建立 Shader 實體時針對每一個著色器的參數建立。
Tue Jun 12 2018, 03:47 PM Z