[補(bǔ)檔]bilibili播放器特殊彈幕語言-Display.createGraphic.graphics
標(biāo)題:Display.createGraphic.graphics
轉(zhuǎn)自:docs.bilibili.tv

目錄
1 beginFill
? ? 1.1 參數(shù)
2 beginGradientFill
? ??2.1 參數(shù)
3 clear
4 curveTo
? ??4.1 參數(shù)
? ??4.2 示例
5 drawCircle
? ??5.1 參數(shù)
6 drawEllipse
? ??6.1 參數(shù)=
? ??6.2 示例
7 drawRect
? ??7.1 參數(shù)
8 drawRoundRect
? ??8.1 參數(shù)
9 endFill
10 lineGradientStyle
? ??10.1 示例
11 lineStyle
? ??11.1 參數(shù)
12 lineTo
? ??12.1 參數(shù)
? ??12.2 示例
13 moveTo
? ??13.1 參數(shù)
? ??13.2 示例
14 參閱

beginFill
public function beginFill(color:uint, alpha:Number = 1.0):void
指定一種簡單的單一顏色填充,可將該填充用于隨后調(diào)用對象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。 該填充將保持有效,直到您調(diào)用 beginFill() 或 beginGradientFill() 方法。 調(diào)用 clear() 方法會清除填充。
在調(diào)用 endFill() 方法之前,不會呈現(xiàn)填充。
參數(shù)
color:uint — 填充的顏色 (0xRRGGBB)。
alpha:Number (default = 1.0) — 填充的 Alpha 值(從 0.0 到 1.0)。

beginGradientFill
public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
指定一種漸變填充,可將該填充用于隨后調(diào)用對象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。 該填充將保持有效,直到您調(diào)用 beginFill() 或 beginGradientFill() 方法。 調(diào)用 clear() 方法會清除填充。
在調(diào)用 endFill() 方法之前,不會呈現(xiàn)填充。
參數(shù)
type:String — 用于指定要使用哪種漸變類型的 GradientType 值:linear 或 radial。
colors:Array — 要在漸變中使用的 RGB 十六進(jìn)制顏色值數(shù)組(例如,紅色為 0xFF0000,藍(lán)色為 0x0000FF,等等)。 可以至多指定 15 種顏色。 對于每種顏色,請確保在 alphas 和 ratios 參數(shù)中指定對應(yīng)的值。
alphas:Array — colors 數(shù)組中對應(yīng)顏色的 alpha 值數(shù)組;有效值為 0 到 1。 如果值小于 0,則默認(rèn)值為 0。 如果值大于 1,則默認(rèn)值為 1。
ratios:Array — 顏色分布比例的數(shù)組;有效值為 0 到 255。 該值定義 100% 采樣的顏色所在位置的寬度百分比。 值 0 表示漸變框中的左側(cè)位置,255 表示漸變框中的右側(cè)位置。
注意:該值表示漸變框中的位置,而不是最終漸變的坐標(biāo)空間,坐標(biāo)空間可能比漸變框?qū)捇蛘?為 colors 參數(shù)中的每個值指定一個值。
例如,對于包括藍(lán)和綠兩種顏色的線性漸變,下例顯示了基于不同 ratios 數(shù)組值的漸變中的顏色配比:

數(shù)組中的值必須持續(xù)增加;例如,[0, 63, 127, 190, 255]。
matrix:Matrix (default = null) — 一個由 Matrix 類定義的轉(zhuǎn)換矩陣。 Matrix 類包括 createGradientBox() 方法,通過該方法可以方便地設(shè)置矩陣,以便與 beginGradientFill() 方法一起使用,亦可使用$.createGradientBox()。
spreadMethod:String (default = "pad") — 用于指定要使用哪種 spread 方法的 值:pad、reflect 或 repeat。
例如,請考慮兩種顏色之間的簡單線性漸變:
此示例將 pad 用于 spread 方法,并且漸變填充看起來將類似于下圖:

如果將 reflect 用于 spread 方法,則漸變填充看起來將類似于下圖:

如果將 repeat 用于 spread 方法,則漸變填充看起來將類似于下圖:

interpolationMethod:String (default = "rgb") — 用于指定要使用哪個值的 值:linearRGB 或 rgb
例如,假設(shè)有兩種顏色之間的簡單線性漸變(spreadMethod 參數(shù)設(shè)置為 reflect)。 不同的插值方法對外觀的影響如下所示:

focalPointRatio:Number (default = 0) — 一個控制漸變的焦點(diǎn)位置的數(shù)字。 0 表示焦點(diǎn)位于中心。 1 表示焦點(diǎn)位于漸變圓的一條邊界上。 -1 表示焦點(diǎn)位于漸變圓的另一條邊界上。 小于 -1 或大于 1 的值將舍入為 -1 或 1。 例如,下例顯示 focalPointRatio 設(shè)置為 0.75:


clear
public function clear():void
清除繪制到此 Graphics 對象的圖形,并重置填充和線條樣式設(shè)置。

curveTo
public function curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
通過由 (controlX, controlY) 指定的控制點(diǎn),使用當(dāng)前線條樣式繪制一條從當(dāng)前繪畫位置開始到 (anchorX, anchorY) 結(jié)束的曲線。 當(dāng)前繪畫位置隨后設(shè)置為 (anchorX, anchorY)。 如果正在其中繪制的影片剪輯包含用 Flash 繪畫工具創(chuàng)建的內(nèi)容,則調(diào)用 curveTo() 方法將在該內(nèi)容下面進(jìn)行繪制。 如果在調(diào)用 moveTo() 方法之前調(diào)用了 curveTo() 方法,則當(dāng)前繪畫位置的默認(rèn)值為 (0, 0)。 如果缺少任何一個參數(shù),則此方法將失敗,并且當(dāng)前繪畫位置不改變。
繪制的曲線是二次貝塞爾曲線。 二次貝塞爾曲線包含兩個錨點(diǎn)和一個控制點(diǎn)。 該曲線內(nèi)插這兩個錨點(diǎn),并向控制點(diǎn)彎曲。

參數(shù)
controlX:Number — 一個數(shù)字,指定控制點(diǎn)相對于父顯示對象注冊點(diǎn)的水平位置。
controlY:Number — 一個數(shù)字,指定控制點(diǎn)相對于父顯示對象注冊點(diǎn)的垂直位置。
anchorX:Number — 一個數(shù)字,指定下一個錨點(diǎn)相對于父顯示對象注冊點(diǎn)的水平位置。
anchorY:Number — 一個數(shù)字,指定下一個錨點(diǎn)相對于父顯示對象注冊點(diǎn)的垂直位置。
示例
下面的示例在顯示對象注冊點(diǎn) (0, 0) 右側(cè) 250 個像素的位置繪制一個綠色圓形對象,寬度和高度為 100 個像素。 繪制 4 條曲線以生成一個圓,并將其填充為綠色。
請注意,由于二次貝塞爾方程式所具有的特性,此對象并不是完美的圓。 繪制圓的最佳方法是使用 Graphics 類的 drawCircle() 方法。
下面的示例使用 curveTo() 方法繪制一個新月。
繪制兩條 1 個像素粗的曲線,并將兩條曲線之間的區(qū)域填充為白色。 moveTo() 方法用于將當(dāng)前繪制位置放在坐標(biāo) (100, 100) 上。 第一條曲線將繪制位置移到 (100, 200),這是其目標(biāo)點(diǎn)。 第二條曲線將該位置恢復(fù)為開始位置 (100, 100),這是其目標(biāo)點(diǎn)。 水平控制點(diǎn)決定了不同的曲線大小。
下面的示例使用 curveTo() 方法繪制一把扇。

drawCircle
public function drawCircle(x:Number, y:Number, radius:Number):void
繪制一個圓。 您必須在調(diào)用 drawCircle() 方法之前,通過調(diào)用 linestyle()、lineGradientStyle()、beginFill() 或 beginGradientFill() 方法來設(shè)置線條樣式和/或填充。
參數(shù)
x:Number — 相對于父顯示對象注冊點(diǎn)的圓心的 x 位置(以像素為單位)。
y:Number — 相對于父顯示對象注冊點(diǎn)的圓心的 y 位置(以像素為單位)。
radius:Number — 圓的半徑(以像素為單位)。

drawEllipse
public function drawEllipse(x:Number, y:Number, width:Number, height:Number):void
繪制一個橢圓。 您必須在調(diào)用 drawEllipse() 方法之前,通過調(diào)用 linestyle()、lineGradientStyle()、beginFill() 或 beginGradientFill() 方法來設(shè)置線條樣式和/或填充。
參數(shù)
x:Number — 相對于父顯示對象注冊點(diǎn)的橢圓圓心的 x 位置(以像素為單位)。
y:Number — 相對于父顯示對象注冊點(diǎn)的橢圓圓心的 y 位置(以像素為單位)。
width:Number — 橢圓的寬度(以像素為單位)。
height:Number — 橢圓的高度(以像素為單位)。
示例
下面的示例使用 drawEgg() 函數(shù)繪制三個不同大小的雞蛋(三種尺寸的橢圓),具體取決于 eggSize 參數(shù)。 構(gòu)造函數(shù)調(diào)用 drawEgg() 函數(shù),并為應(yīng)該繪制雞蛋的位置傳遞水平和垂直參數(shù)以及雞蛋類型 (eggSize)。 (可使用雞蛋(橢圓形)高度和寬度來確定其顯示位置。) drawEgg() 函數(shù)繪制不同大小的橢圓,并使用 beginFill() 方法將其填充為白色。 沒有事先為此函數(shù)編寫錯誤處理代碼。

drawRect
public function drawRect(x:Number, y:Number, width:Number, height:Number):void
繪制一個矩形。 您必須在調(diào)用 drawRect() 方法之前,通過調(diào)用 linestyle()、lineGradientStyle()、beginFill() 或 beginGradientFill() 方法來設(shè)置線條樣式和/或填充。
參數(shù)
x:Number — 一個表示相對于父顯示對象注冊點(diǎn)的水平位置的數(shù)字(以像素為單位)。
y:Number — 一個表示相對于父顯示對象注冊點(diǎn)的垂直位置的數(shù)字(以像素為單位)。
width:Number — 矩形的寬度(以像素為單位)。
height:Number — 矩形的高度(以像素為單位)。

drawRoundRect
public function drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
繪制一個圓角矩形。 您必須在調(diào)用 drawRoundRect() 方法之前,通過調(diào)用 linestyle()、lineGradientStyle()、beginFill() 或 beginGradientFill() 方法來設(shè)置線條樣式和/或填充。
參數(shù)
x:Number — 一個表示相對于父顯示對象注冊點(diǎn)的水平位置的數(shù)字(以像素為單位)。
y:Number — 一個表示相對于父顯示對象注冊點(diǎn)的垂直位置的數(shù)字(以像素為單位)。
width:Number — 圓角矩形的寬度(以像素為單位)。
height:Number — 圓角矩形的高度(以像素為單位)。
ellipseWidth:Number — 用于繪制圓角的橢圓的寬度(以像素為單位)。
ellipseHeight:Number — 用于繪制圓角的橢圓的高度(以像素為單位)。 (可選)如果未指定值,則默認(rèn)值與為 ellipseWidth 參數(shù)提供的值相匹配。

endFill
public function endFill():void
對從上一次調(diào)用 beginFill() 或 beginGradientFill() 方法之后添加的直線和曲線應(yīng)用填充。 Flash 使用的是對 beginFill() 或 beginGradientFill() 方法的先前調(diào)用中指定的填充。 如果當(dāng)前繪畫位置不等于 moveTo() 方法中指定的上一個位置,而且定義了填充,則用線條閉合該路徑,然后進(jìn)行填充。

lineGradientStyle
public function lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
指定一種線條樣式的漸變,F(xiàn)lash Player 可將該漸變用于隨后調(diào)用對象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。 線條樣式仍然有效,直到使用不同的參數(shù)調(diào)用 lineStyle() 方法或 lineGradientStyle() 方法為止。 可以在繪制路徑的中間調(diào)用 lineGradientStyle() 方法以為路徑中的不同線段指定不同的樣式。
在調(diào)用 lineGradientStyle() 之前調(diào)用 lineStyle() 以啟用筆觸,否則線條樣式的值仍然是 undefined。
調(diào)用 clear() 會將線條樣式設(shè)置回 undefined。
參數(shù)
type:String — 用于指定要使用哪種漸變類型的 GradientType 類的值:GradientType.LINEAR 或 GradientType.RADIAL。
colors:Array — 要在漸變中使用的 RGB 十六進(jìn)制顏色值數(shù)組(例如,紅色為 0xFF0000,藍(lán)色為 0x0000FF 等等)。
alphas:Array — colors 數(shù)組中對應(yīng)顏色的 alpha 值數(shù)組;有效值為 0 到 100。 如果值小于 0,F(xiàn)lash Player 將使用 0。 如果值大于 100,F(xiàn)lash Player 將使用 100。
ratios:Array — 顏色分布比率的數(shù)組;有效值為 0 到 255。 該值定義 100% 采樣的顏色所在位置的寬度百分比。 值 0 表示漸變框中的左側(cè)位置,255 表示漸變框中的右側(cè)位置。 該值表示漸變框中的位置,而不是最終漸變的坐標(biāo)空間,坐標(biāo)空間可能比漸變框?qū)捇蛘?為 colors 參數(shù)中的每個值指定一個值。
例如,對于包括藍(lán)和綠兩種顏色的線性漸變,下例顯示了基于不同 ratios 數(shù)組值的漸變中的顏色配比:

數(shù)組中的值必須持續(xù)增加;例如,[0, 63, 127, 190, 255]。
matrix:Matrix (default = null) — 一個由 Matrix 類定義的轉(zhuǎn)換矩陣。 Matrix 類包括 createGradientBox() 方法,通過該方法可以方便地設(shè)置矩陣,以便與 beginGradientFill() 方法一起使用,亦可使用$.createGradientBox()。
spreadMethod:String (default = "pad") — 用于指定要使用哪種 spread 方法的 值:

interpolationMethod:String (default = "rgb") — 用于指定要使用哪個值的 值:linearRGB 或 rgb
例如,假設(shè)有兩種顏色之間的簡單線性漸變(spreadMethod 參數(shù)設(shè)置為 reflect)。 不同的插值方法對外觀的影響如下所示:

focalPointRatio:Number (default = 0) — 一個控制漸變的焦點(diǎn)位置的數(shù)字。 0 表示焦點(diǎn)位于中心。 1 表示焦點(diǎn)位于漸變圓的一條邊界上。 -1 表示焦點(diǎn)位于漸變圓的另一條邊界上。 小于 -1 或大于 1 的值將舍入為 -1 或 1。 例如,下例顯示 focalPointRatio 設(shè)置為 0.75:

示例
下面的示例繪制一個矩形和一個圓,它們使用從紅色到綠色、再到藍(lán)色的漸變筆觸。
Matrix 類中的方法 createGradientBox() 用于將漸變框定義為 200 個像素寬、40 個像素高。 線條粗細(xì)設(shè)置為 5 個像素。 必須為 lineGradientStyle() 方法定義筆觸粗細(xì)。 漸變設(shè)置為線性。 漸變顏色設(shè)置為紅色、綠色和藍(lán)色。 顏色透明度(Alpha 值)設(shè)置為 1(不透明)。 漸變的分布是均勻的,其中在 0(漸變框中的左側(cè)位置)、128(漸變框的中間位置)和 255(漸變框中的右側(cè)位置)處的顏色采樣率為 100%。 矩形寬度范圍內(nèi)包含漸變的所有色譜;而圓包含色譜中間的 50%。

lineStyle
public function lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void
指定一種線條樣式,F(xiàn)lash 可將該樣式用于隨后調(diào)用對象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。 線條樣式仍然有效,直到使用不同的參數(shù)調(diào)用 lineGradientStyle() 方法或 lineStyle() 方法為止。 可以在繪制路徑的中間調(diào)用 lineStyle(),以便為路徑中的不同線段指定不同的樣式。
注意:調(diào)用 clear() 方法會將線條樣式設(shè)置回 undefined。
參數(shù)
thickness:Number — 一個整數(shù),以磅為單位表示線條的粗細(xì);有效值為 0 到 255。 如果未指定數(shù)字,或者未定義該參數(shù),則不繪制線條。 如果傳遞的值小于 0,則默認(rèn)值為 0。 值 0 表示極細(xì)的粗細(xì);最大粗細(xì)為 255。 如果傳遞的值大于 255,則默認(rèn)值為 255。
color:uint (default = 0) — 線條的十六進(jìn)制顏色值(例如,紅色為 0xFF0000,藍(lán)色為 0x0000FF 等)。 如果未指明值,則默認(rèn)值為 0x000000(黑色)。 可選。
alpha:Number (default = 1.0) — 表示線條顏色的 Alpha 值的數(shù)字;有效值為 0 到 1。 如果未指明值,則默認(rèn)值為 1(純色)。 如果值小于 0,則默認(rèn)值為 0。 如果值大于 1,則默認(rèn)值為 1。
pixelHinting:Boolean (default = false) — 用于指定是否提示筆觸采用完整像素的布爾值。 它同時影響曲線錨點(diǎn)的位置以及線條筆觸大小本身。 在 pixelHinting 設(shè)置為 true 的情況下,F(xiàn)lash Player 將提示線條寬度采用完整像素寬度。 在 pixelHinting 設(shè)置為 false 的情況下,對于曲線和直線可能會出現(xiàn)脫節(jié)。 例如,下圖顯示了 Flash Player 如何呈現(xiàn)兩個相同的圓角矩形,不同之處是用于 lineStyle() 方法的 pixelHinting 參數(shù)設(shè)置不同(將圖像放大 200% 以強(qiáng)調(diào)差異):

如果未提供值,則線條不使用像素提示。
scaleMode:String (default = "normal") — 用于指定要使用哪種縮放模式的 LineScaleMode 類的值:
normal -- 在縮放對象時總是縮放線條的粗細(xì)(默認(rèn)值)。
none -- 從不縮放線條粗細(xì)。
vertical -- 如果僅 垂直縮放對象,則不縮放線條粗細(xì)。 例如,考慮下面的圓形,它們是用一個像素的線條繪制的,每個圓的 scaleMode 參數(shù)都被設(shè)置為 vertical。 左邊的圓僅在垂直方向上縮放,而右邊的圓則同時在垂直和水平方向上縮放:

horizontal -- *如果僅 水平縮放對象,則不縮放線條粗細(xì)。 例如,考慮下面的圓形,它們是用一個像素的線條繪制的,每個圓的 scaleMode 參數(shù)都被設(shè)置為 horizontal。 左邊的圓僅在水平方向上縮放,而右邊的圓則同時在垂直和水平方向上縮放:

caps:String (default = null) — 用于指定線條末端處端點(diǎn)類型的 CapsStyle 類的值。 有效值為:none、round 和 square。 如果未指示值,則 Flash 使用圓頭端點(diǎn)。
例如,以下圖示顯示了不同的 capsStyle 設(shè)置。 對于每種設(shè)置,插圖顯示了一條粗細(xì)為 30 的藍(lán)色線條(應(yīng)用 capsStyle 的線條),以及重疊于其上的粗細(xì)為 1 的黑色線條(未應(yīng)用 capsStyle 的線條):

joints:String (default = null) — JointStyle 類的值,指定用于拐角的連接外觀的類型。 有效值為:bevel、miter 和 round。 如果未指示值,則 Flash 使用圓角連接。
例如,以下圖示顯示了不同的 joints 設(shè)置。 對于每種設(shè)置,插圖顯示了一條粗細(xì)為 30 的帶拐角的藍(lán)色線條(應(yīng)用 jointStyle 的線條),以及重疊于其上的粗細(xì)為 1 的帶拐角的黑色線條(未應(yīng)用 jointStyle 的線條):

注意:對于設(shè)置為 JointStyle.MITER 的 joints,您可以使用 miterLimit 參數(shù)限制尖角的長度。
miterLimit:Number (default = 3) — 一個表示將在哪個限制位置切斷尖角的數(shù)字。 有效值的范圍是 1 到 255(超出該范圍的值將舍入為 1 或 255)。 此值只可用于 jointStyle 設(shè)置為 "miter" 的情況下。 miterLimit 值表示向外延伸的尖角可以超出角邊相交所形成的結(jié)合點(diǎn)的長度。 此值表示為線條 thickness 的因子。 例如,miterLimit 因子為 2.5 且 thickness 為 10 像素時,尖角將在 25 像素處切斷。
例如,請考慮下列帶拐角的線條,每個線條都以 thickness 20 進(jìn)行繪制,但它們的 miterLimit 分別設(shè)置為 1、2 和 4。 重疊在其上的黑色參考線條顯示了結(jié)合處的聯(lián)結(jié)點(diǎn):

請注意,對于給定的 miterLimit 值,會有一個被切斷的尖角的特定最大角度。 下表列出了部分示例:

lineTo
public function lineTo(x:Number, y:Number):void
使用當(dāng)前線條樣式繪制一條從當(dāng)前繪畫位置開始到 (x, y) 結(jié)束的直線;當(dāng)前繪畫位置隨后會設(shè)置為 (x, y)。 如果正在其中繪制的顯示對象包含用 Flash 繪畫工具創(chuàng)建的內(nèi)容,則調(diào)用 lineTo() 方法將在該內(nèi)容下面進(jìn)行繪制。 如果在對 moveTo() 方法進(jìn)行任何調(diào)用之前調(diào)用了 lineTo(),則當(dāng)前繪畫的默認(rèn)位置為 (0, 0)。 如果缺少任何一個參數(shù),則此方法將失敗,并且當(dāng)前繪畫位置不改變。
參數(shù)
x:Number?— 一個表示相對于父顯示對象注冊點(diǎn)的水平位置的數(shù)字(以像素為單位)。
y:Number?— 一個表示相對于父顯示對象注冊點(diǎn)的垂直位置的數(shù)字(以像素為單位)。
示例
下面的示例使用 lineTo() 方法繪制一個梯形,從像素 (100, 100) 開始。
線條粗細(xì)設(shè)置為 10 個像素,顏色為金色且不透明,線條終點(diǎn)設(shè)置為 none(因為聯(lián)接了所有線條),兩條線之間的聯(lián)接點(diǎn)設(shè)置為 MITER 并將尖角限制設(shè)置為 10 以繪制尖銳的邊角。

moveTo
public function moveTo(x:Number, y:Number):void
將當(dāng)前繪畫位置移動到 (x, y)。 如果缺少任何一個參數(shù),則此方法將失敗,并且當(dāng)前繪畫位置不改變。
參數(shù)
x:Number — 一個表示相對于父顯示對象注冊點(diǎn)的水平位置的數(shù)字(以像素為單位)。
y:Number — 一個表示相對于父顯示對象注冊點(diǎn)的垂直位置的數(shù)字(以像素為單位)。
示例
下面的示例使用 moveTo() 和 lineTo() 方法繪制一條 3 個像素粗的虛線。
通過使用 lineStyle() 方法,將線條粗細(xì)設(shè)置為 3 個像素。 還將其設(shè)置為不進(jìn)行縮放。 顏色設(shè)置為紅色,并且不透明度為 25%。 CapsStyle 屬性設(shè)置為 square(默認(rèn)值為 round)。

參閱
