獲取顏色值
假如有這樣一個(gè)數(shù) 0xFF55F3,要從中提取 red,green,blue 的值。下面請(qǐng)看公式,首先是24位色彩: red = color24 >> 16; green = color24 >> 8 & 0xFF; blue = color24 & 0xFF;
一句句來看。首先,大家也許會(huì)猜到 >> 是按位右移運(yùn)算符,用于將二進(jìn)制位向右移動(dòng)。如果這些位向右移動(dòng)得過多,那么這些數(shù)字就會(huì)消失,就沒有數(shù)了。 下面從 red 開始: 111111110101010111110011 將顏色值向右移動(dòng)16位,結(jié)果如下: 11111111,或是0xFF(255) 對(duì)于 green,向右移動(dòng)8位,結(jié)果如下: 1111111101010101
這里已經(jīng)得出了 blue 的值,但是 red 值還留在一旁。這里就是要使用與(And)操作符的地方,與(OR)操作符相同,都是對(duì)兩組數(shù)值的比較,可以這樣解釋“兩個(gè)數(shù)相比較,如果兩個(gè)都是1那么結(jié)果就為1,如果其中有一個(gè)為0,那么結(jié)果就為0”。我們把它與0xFF進(jìn)行比較: 1111111101010101 0000000011111111
因?yàn)樗械?red 位的數(shù)字都與0相比較,所以它們的結(jié)果均為0,只有當(dāng)兩個(gè)數(shù)都為1時(shí)結(jié)果才為 1,所以結(jié)果如下: 0000000001010101
對(duì)于 blue 則不需要執(zhí)行右移操作,只需要讓它和 0xFF 執(zhí)行與(AND)操作即可。對(duì)于32位色彩,方法也是相同的,只不過需要一點(diǎn)小小的改動(dòng): alpha = color32 >> 24; red = color32 >> 16 & 0xFF; green = color32 >> 8 & 0xFF; blue = color32 & 0xFF;
這里,獲取 alpha 的值需要向右移動(dòng)24位,F(xiàn)在我們已經(jīng)學(xué)到了很多 Flash 的色彩知識(shí),下面就要開始進(jìn)行應(yīng)用了。
繪圖 API
先說一下 API 是什么,它是應(yīng)用程序接口(application programming interface)的縮寫?偟膩碚f,API 是指在程序中使用的一些屬性和方法來訪問某些相關(guān)的行為和屬性。繪圖 API 允許我們使用 ActionScript 繪制直線,曲線,填充色,漸變填充的一些屬性和方法。在這個(gè) API 中有些讓人驚訝的方法,我們還要學(xué)習(xí)很多這方面的知識(shí)和靈活的技巧。 直至 Flash MX,已經(jīng)擁有了如下這些繪圖方法:
- clear()
- lineStyle(width, color, alpha)
- moveTo(x, y)
- lineTo(x, y)
- curveTo(x1, y1, x2, y2)
- beginFill(color, alpha)
- endFill()
beginGradientFill(fillType, colors, alphas, ratios, matrix)
在 Flash 8 中,又為 lineStle 和 beginGradientFill 增加了幾種新的方法,同時(shí)也加入了 beginBitmapFill 和 lineGradientStyle 方法。在 AS 3中,也增加了幾種非常有用的方法:
- drawCircle(x, y, radius)
- drawEllipse(x, y, width, height)
- drawRect(x, y, width, height)
- drawRoundRect(x, y, width, height, ellipseWidth, ellipseHeight)
先來預(yù)覽一下這些方法,稍后再對(duì)每種方法進(jìn)行詳細(xì)的介紹。
繪圖對(duì)象
在 Flash 早期版本中,繪圖 API 方法是影片剪輯(MovieClip)類中的方法,可以在影片剪輯實(shí)例中直接調(diào)用,代碼如下:
myMovieClip.lineTo(100, 100);
影片剪輯和 Sprite 都可以訪問繪圖 API,只是實(shí)現(xiàn)起來有些不同。目前,Sprite 影片和影片剪輯都有一個(gè)名為 graphics 的屬性,用于訪問繪圖 API 的方法。為了直接訪問繪圖方法,我們可以這樣寫:
mySprite.graphics.lineTo(100, 100);
下面在示例中看看這些方法的基本使用。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁(yè) 渲染技術(shù) [2] 下一頁(yè) 渲染技術(shù) [4]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|