Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > MovieClip > scale9Grid (MovieClip.scale9Grid プロパティ) | |||
public scale9Grid : Rectangle
ムービークリップの 9 つの拡大・縮小領域を定義する矩形の領域。null に設定すると、任意の拡大・縮小変形を適用した際、ムービークリップ全体が通常どおり拡大・縮小します。
ムービークリップの scale9Grid プロパティを定義すると、グリッドの中央領域を定義する scale9Grid 矩形に基づき、ムービークリップが 9 つの領域を持つグリッドに分割されます。グリッドには、他に次の 8 つの領域があります。
矩形で定義される中心以外の 8 つの領域は、ムービークリップの拡大・縮小時に特別な規則が適用される額縁のようなものと考えることができます。
scale9Grid プロパティが設定されている場合にムービークリップを拡大・縮小すると、すべてのテキストと子のムービークリップは、配置されている scale9Grid の領域に関係なく、通常どおり拡大・縮小します。ただし、他の種類のオブジェクトでは、次の規則が適用されます。
ムービークリップを回転すると、その後の拡大・縮小は通常どおりになります。また、scale9Grid プロパティは無視されます。
たとえば、次のムービークリップと、そのムービークリップの scale9Grid プロパティとして適用される矩形があるとします。
|
ムービークリップ。 |
赤の矩形は |
ムービークリップを拡大・縮小または伸縮すると、矩形内のオブジェクトは通常どおり拡大・縮小しますが、矩形外のオブジェクトは scale9Grid の規則に従って拡大・縮小します。
|
75% に縮小 : |
|
|
50% に縮小 : |
|
|
25% に縮小 : |
|
|
水平方向に 150% 伸長 : |
|
通常、scale9Grid は、コンポーネントの拡大・縮小時にエッジの線を同じ幅に保つようコンポーネントを設定するときに使用します。
Adobe Flash のオーサリング環境では、ライブラリ内にあるムービークリップシンボルの 9 つのスライスの拡大・縮小のガイドを有効にできます。このガイドにより、オブジェクトの scale9grid をグラフィックで確認しながら決定できます。シンボルの 9 つのスライスの拡大・縮小を設定すると、そのシンボルのすべてのインスタンスの scale9grid プロパティが自動的に設定されます。9 つのスライスの拡大・縮小が有効なシンボルでは、SWF ファイルを作成するとき、9 つのスライスの拡大・縮小グリッドの複数の領域にまたがる曲線は、領域ごとに別の曲線に分割されます。たとえば、9 つのスライスの拡大・縮小が有効なムービークリップシンボルにある曲線と、9 つのスライスの拡大・縮小が有効でないムービークリップシンボルにある同じ曲線とを比較してみます。
|
シンボルの 9 つのスライスの拡大・縮小が有効になっている場合 |
|
|
シンボルの 9 つのスライスの拡大・縮小が有効になっていない場合 |
|
Flash で SWF ファイルが作成されるとき、図の最初のムービークリップの曲線は 3 つの曲線に分割されます。これは、9 つのスライスの拡大・縮小が有効になっていない 2 番目のムービークリップには該当しません。2 番目のムービークリップの scale9Grid を、最初のムービークリップの scale9Grid と一致する矩形に設定しても、Flash が最初のムービークリップの曲線を分割する方法により、2 つのムービークリップを拡大・縮小した結果は異なります。
|
9 つのスライスの拡大・縮小が有効になっているシンボルを 150% に拡大した場合 |
|
|
9 つのスライスの拡大・縮小が有効になっていないシンボルを 150% に拡大した場合 |
|
対応バージョン : ActionScript 2.0、Flash Player 8
次の例では、20 ピクセルの線 (境界を形成) とグラデーションの塗りを含むムービークリップを作成します。ムービークリップは、マウスの位置に基づいて拡大・縮小します。またムービークリップで設定されている scale9Grid により、20 ピクセルの線の太さは、ムービークリップの拡大・縮小時に変化しません。ただし、ムービークリップ内のグラデーションは拡大・縮小します。
import flash.geom.Rectangle;
import flash.geom.Matrix;
this.createEmptyMovieClip("my_mc", this.getNextHighestDepth());
var grid:Rectangle = new Rectangle(20, 20, 260, 260);
my_mc.scale9Grid = grid ;
my_mc._x = 50;
my_mc._y = 50;
function onMouseMove()
{
my_mc._width = _xmouse;
my_mc._height = _ymouse;
}
my_mc.lineStyle(20, 0xff3333, 100);
var gradient_matrix:Matrix = new Matrix();
gradient_matrix.createGradientBox(15, 15, Math.PI, 10, 10);
my_mc.beginGradientFill("radial", [0xffff00, 0x0000ff],
[100, 100], [0, 0xFF], gradient_matrix,
"reflect", "RGB", 0.9);
my_mc.moveTo(0, 0);
my_mc.lineTo(0, 300);
my_mc.lineTo(300, 300);
my_mc.lineTo(300, 0);
my_mc.lineTo(0, 0);
my_mc.endFill();
Rectangle (flash.geom.Rectangle)
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001967.html