プロパティトゥイーン(単独動作バージョン)
hikatsukaMotionSingle(mc, X, Y, W, H, A, R, F, E1, E2, EF);
ムービークリップを指定のプロパティの値までアニメーションします。
| パラメータ | 属性 | 対応プロパティ | 説明 | 備考 |
|---|---|---|---|---|
| mc | MovieClip | 対象となるムービークリップのインスタンス名 | ||
| X | Number | _x | X座標の数値 | [null]で無視 |
| Y | Number | _y | Y座標の数値 | [null]で無視 |
| W | Number or String |
_xscale or _width |
水平スケールの数値 ※文字列(String)で「100px」等とすると幅の指定になります。 |
[null]で無視 |
| H | Number or String |
_yscale or _height |
垂直スケールの数値 ※文字列(String)で「100px」等とすると高さの指定になります。 |
[null]で無視 |
| A | Number | _alpha | 透明度の数値 ※0(完全な透明)~ 100(完全な不透明) |
[null]で無視 |
| R | Number | _rotation | 回転角度の数値 | [null]で無視 |
| F | Number | アニメーションの継続フレームを示す数値 | ||
| E1 | String | イージングの種類 none:等速 in:加速(最初は遅く、最後は早く) out:減速(最初は早く、最後は遅く) inout:加速-減速(最初は遅く- 中間で早く-最後は遅く) outin:減速-加速(最初は早く- 中間で遅く-最後は早く) |
||
| E2 | Number | イージングの強さ 0~100 ※0だとイージングの種類に関係なく等速 |
||
| EF | Function | アニメーション終了後の実行する定義関数の指定 | 省略可能 |
説明・解説
ムービークリップを任意の座標や大きさまでてアニメーションさせることができます。
その際、継続フレームの指定やイージングの指定、さらにアニメーション終了時に特定の関数を実行させることも可能です。
主な使用例
使用例1
ムービークリップ「mc」に対して、異なるプロパティと継続数で「hikatsukaMotionSingle」を使用。ボタンを押すたびに、その指定のプロパティまでアニメーションします。
このFlashのサンプル(340K)
※FLAファイルは、Flash MX 2004 ドキュメントです。
※このサンプルを正常に動作させるためには、こちらの hikatsuka.swf が必要です。
【テスト1ボタンの処理】 hikatsukaMotionSingle(mc, 200, null, 150, 150, 50, null, 10, "out", 100); 【テスト2ボタンの処理】 hikatsukaMotionSingle(mc, 400, 50, 80, 80, null, null, 10, "in", 30); 【テスト3ボタンの処理】 hikatsukaMotionSingle(mc, 100, 80, 150, 150, 100, null, 40, "inout", 60);
各プロパティを上記のように指定するだけでアニメーションされます。
使用例2
ムービークリップ「mc」に対して、「hikatsukaMotionSingle」を使用。アニメーション終了後にまた異なる「hikatsukaMotionSingle」が実行されます。
このFlashのサンプル(175K)
※FLAファイルは、Flash MX 2004 ドキュメントです。
※このサンプルを正常に動作させるためには、こちらの hikatsuka.swf が必要です。
【テスト1ボタンの処理】
EndF = function () {
hikatsukaMotionSingle(mc, 400, 80, 150, 150, 100, null, 15, "inout", 100);
delete EndF;
}
hikatsukaMotionSingle(mc, 200, 20, 150, 150, 50, null, 30, "out", 100, EndF);
【テスト2ボタンの処理】
EndF = function () {
hikatsukaMotionSingle(mc, 100, 50, 50, 50, 100, null, 15, "out", 100);
delete EndF;
}
hikatsukaMotionSingle(mc, 350, 20, 150, 150, 50, null, 30, "out", 100, EndF);
アニメーション終了後、「EndF」で定義させた関数が実行されます。終了後に再度アニメーション指定を行うことで2段階のアニメーションが実現可能になります。
「EndF」が1回きりの動作であれば、「delete」で削除処理も記述しておきましょう。
使用例3
ムービークリップ「mc」に対して、「hikatsukaMotionSingle」を使用。アニメーション終了後に「mc」のプロパティを変更します。
このFlashのサンプル(173K)
※FLAファイルは、Flash MX 2004 ドキュメントです。
※このサンプルを正常に動作させるためには、こちらの hikatsuka.swf が必要です。
EndF = function ( target_mc ) {
target_mc._alpha = 50;
target_mc._x = 400;
delete EndF;
}
hikatsukaMotionSingle(mc, 200, 50, null, null, 100, null, 20, "inout", 100, EndF);
終了後の定義関数に、アニメーションを実行させたムービークリップをパラメータとして受け取ることが可能です。パラメータが必要ない場合は省略可能です。また、「target_mc」は「mc」などと変数名を変更できます。
使用例4
パネルの表示・非表示をマウスカーソルのロールオーバー・アウトで。「hikatsukaMotionSingle」を使用して作成したものです。
このFlashのサンプル( 30K)
※FLAファイルは、Flash MX 2004 ドキュメントです。
※このサンプルを正常に動作させるためには、こちらの hikatsuka.swf が必要です。
/*============================================================
三角を点滅させる
============================================================*/
hikatsukaMotionBlink(trArr, 0, 100, 6);
/*============================================================
パネル移動処理
============================================================*/
//ロールオーバー
panel.onRollOver = function():Void {
//パネル下にくるボタンを無効に
this.useHandCursor=false;
//パネル表示移動
hikatsukaMotionSingle(this._parent, -20, null, null, null, null, null, 20, "out", 100);
//点滅三角のアルファを0に
hikatsukaMotionSingle(trArr,null,null,null,null,0,null,10,"none",100);
//三角の点滅処理を停止
hikatsukaMotionBlinkDelete(trArr);
}
//ロールアウト
panel.onRollOut = function():Void {
//パネルの範囲内にマウスカーソルがあるかどうかを判別
if (this.hitTest(_level0._xmouse,_level0._ymouse,true)==false) {
//パネルの外にマウスカーソルがあれば、パネル非表示移動
hikatsukaMotionSingle(this._parent, -180, null, null, null, null, null, 20, "out", 100);
//三角のアルファを0に
trArr._alpha=0;
//三角の点滅処理を開始
hikatsukaMotionBlink(trArr, 0, 100, 5);
}
}
ロールオーバー時とロールアウト時に応じて、それぞれのスクリプト処理を記述します。ロールアウト時は、「hitTest」を使用することで、パネルの範囲内にマウスがあるかどうかを確認できるようになります。
このようにインターフェイス作成時に「hikatsukaMotionSingle」をうまく組み込んでいくことで、簡単にインタラクティブな動作を実現することが可能になります。
使用例5
トゥイーンモーションを使用せずにアニメーション生成(ランダム)。
このFlashのサンプル(648K)
※FLAファイルは、Flash MX 2004 ドキュメントです。
※このサンプルを正常に動作させるためには、こちらの hikatsuka.swf が必要です。
【最初のフレーム】
stop();
//アニメーション終了処理
var endPlay:Object=function() {
play();
delete endPlay;
}
//ランダム
var X:Number = Math.random()*Stage.width;
var Y:Number = Math.random()*Stage.height;
var S:Number = Math.random()*100+100;
hikatsukaMotionSingle(mc, X, Y, S, S, null, null, 20, "out", 100, endPlay);
【次のフレーム】
stop();
//待ち時間関数
function WaitTime() {
clearInterval( WaitTimeId );
prevFrame();
}
//数秒間停止させる
WaitTimeId = setInterval(WaitTime, 500);
XY座標とスケールをランダム値で取得。「hikatsukaMotionSingle」実行後、次のフレームへ再生されます。次のフレームでは、タイマー関数を使用して一定時間経つと前のフレームへ戻る処理を記述します。これでランダムのループアニメーションが再生されます。
※タイマーを使うことで、その記述したフレームを一定時間停止させることができます。これはこれで何かと応用できるかと思います。
