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