1kBでここまで動かせる!!ASで動かすケシコミ [Edit]


F-site次回セミナーでFLASHバナーをやることになりましたので、前座もどき(笑ということでバナー関連の現場で使える系を一つ。

ただでさえFLASHバナーはファイル制限が厳しいです。出来ればモーション的な部分はファイルサイズを極力下げて、その分画質の向上に当てたいところです。
僕が今回紹介させて頂くのは、FLASHバナー製作等のときに”ケシコミ的”な動きを求めらること、使いたいとき、実は結構ありませんか。しかし、こういう少し凝った動きを付けようとすると、結構ファイルサイズかさばります。
ファイル制限的に厳しいときは、工夫してスクリプトでやっちゃいましょう。1KB台(背景画像、ペン画像を除く。)でここまで動かせます!!
※Tweenと書いていますが別にTweenクラスは使っていません。

ケシコミ自体の細かな表現方法に関しては以前にF-siteでA.e.Suckさんが取り上げていますのでこちらを参考にしてください。

メインタイムラインはこんな感じです。
・ASレイヤー:ASがまとめて書いてあります。
・penレイヤー:pen:MovieClipが置いてあります。
・textレイヤー:keshikomi:MovieClipが置いてあります。
・bgレイヤー:背景画像が置いてあります。
ASに関しては下で書きます。

keshikomi:MovieClipの中身です。
・mazkレイヤー:mazk:MovieClipが置いてあります。
・txtレイヤー:文字のシェイプが置いてあります。

mazk:MovieClipの中身です。●マスクで文字を覆ってあります。今回の例だと約150個、1レイヤーに1つです。最初に1つのレイヤーの中に、書き順通りに●マスクで文字を覆って行き、最後に【●マスクを全て選択して右クリック→レイヤーに配分】とやれば自動的に書き順が早いほどレイヤーが上になり、1レイヤーに1MCとなります。

ASは以下です。ポイントはfor inを使い、●マスクを配列にいれといて、後で使うことでpen:MovieClipの_x,_yを●マスクの座標にあわせるところです。
これによりペンは自動的にアニメーションされているように見えます。
01| init();
02| animID = setInterval(animClips, 30);
03| 
04| function init(){
05|     clipList = new Array();
06|     for (i in keshikomi.mazk){
07|         obj = eval(keshikomi.mazk[i]);
08|         clipList.push(obj);
09|         obj._xscale = 0;
10|     } 
11|     myNum = maxNum = clipList.length;
12| } 
13| 
14| function animClips(){
15|     myClip = clipList[myNum];
16|     myClip._xscale = 100;
17|     pen._x = myClip._x;
18|     pen._y = myClip._y;
19|     myNum--;
20|     /////本来必要ない繰り返しの部分/////
21|     if(myNum<0){
22|         init();
23|         myNum=maxNum;
24|     }
25|     ////////////////////////////////
26| }

FLAファイルはこちらです。
http://www.muraken.biz/f-site/ban/ban.fla

▽免責事項▽ このサンプルを使用した場合、または使用できなかった等のいかなる損害も、
制作者 むらけん 及び F-site は、その責を負いません。
ご自身の責任においてご使用ください。

コメント

この記事にコメントを書く

記事に対するテクニカルな質問はご遠慮ください(利用規約)。

その他の記事