Flexのエフェクトの使い方

2010年2月14日

Flexのエフェクトには以下のようなものがあります。

  • トゥイーンエフェクト
    Move/Resize/Fade/Glow/Blur/Zoomなど、コンポーネントの形状を変化させる。
  • マスクエフェクト
    Iris/Wipeなど、コンポーネントを部分的に表示・非表示状態にするもの。
  • サウンドエフェクト
    ボリュームなどを変化させることができる、音に関するエフェクト。

今日は、トゥイーンエフェクトについて、解説してみます。

いろいろなエフェクトがあって、使い方が複雑そうだと戸惑うところがありますが、 

覚えてしまえば若干のクラス間の差はあれど共通した概念が多いので

まずはひとつずつ使い方を覚えていきましょう。


例えば、Moveエフェクト。


座標(x1, y1)から(x2, y1)にコンポーネントを移動させたいとき、以下のようにします。 

ここでは、mxmlでの説明はいたるところにあるので、AS3.0での実装方法について説明します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 親Canvasを定義
var cvs: Canvas = new Canvas();
cvs.width = 200;
cvs.height = 100;
// エフェクトをかける対象となるUIComponentを定義
uc = new UIComponent();
uc.graphics.beginFill(0x0000ff, 0.5);
uc.graphics.drawRect(x1, y1, 100, 50);
uc.alpha = 0.5;
uc.graphics.endFill();
//Canvasにコンポーネントを登録
cvs.addChild(uc);

var me: Move = new Move(uc);
// 3000ms 
me.duration = 3000;
me.xFrom = x1;
me.yFrom = y1;
// 移動距離:50pxを設定
me.xBy = 50;
// 0を設定すると、リピート回数が無限に設定される
me.repeatCount = 0;
// 1200ms 
me.repeatDelay = 1200;
// エージング:Cubicで、Moveの移動量を制御する
me.easingFunction = Cubic.easeInOut;
// Moveエフェクト開始
me.play();
これで、(x1, y1) -> (x2, y1)へコンポーネントucを移動させることができます。


この例では異動先の定義を、「me.xBy」でおこなっていますが、これは起点からの相対量を指定 するときに用います。

絶対座標で異動先を定義することもできて、

そのときは「me.xTo, me.yTo」にて (x2, y1)のそれぞれの座標値を指定すればOKです。

以上が簡単なエフェクトの設定方法ですが、どんどんクールなエフェクトをかけたく なってきますよね?

例えば、移動させながら拡大縮小とかフェードアウトとか。。。


次回は、複数のエフェクトを連結する方法について解説したいと思います。