Actionscript3.0でガラスっぽいモノを作ってみる

Flexコンポーネントを使ってアプリケーションを組み立てていくだけならば、あまりGraphicsクラスを触る機会がないと思います。
しかし、このGraphicsクラスが既存のコンポーネントの描画もやってますし、カスタムコンポーネントをUIComponentから作る場合は、外観の作成時には必須となるでしょう。

そんなこんなでGraphicsクラスをあまり使ってこなかったので練習がてら、ガラスっぽいものを作ってみた。

こんな感じです。

beginGradientFillで最下層に丸いグラディエーションを描いて
その上に垂直方向のグラディエーションを描くという感じです。

var w:int = 200;
var h:int = 200;
var border:int = int(h*0.015);
var g:Graphics = graph.graphics;
var ratios:Array = [0, 255];
var matrix:Matrix = new Matrix();

matrix.createGradientBox(w, h*2, Math.PI/2, -0.5, -h);
g.beginGradientFill(GradientType.RADIAL, [0x6F86A8, 0x6F86A8, 0x000000], [1, 1, 1], [0, 253, 255], matrix, "pad", "rgb", -1);
g.drawRect(0, 0, w, h);

 matrix.createGradientBox(w, h, Math.PI/2);
g.beginGradientFill(GradientType.LINEAR, [0x000000, 0x000000, 0x6F86A8, 0x6F86A8, 0x000000], [1, 1, 1, 1, 1], [0, 20, 90, 160, 170], matrix, "pad", "rgb", 1);
g.drawRect(border, border, w-border*2, h-border*2); 

もっとわかりやすいくガラスっぽいものがよかったですね。