前回の続きです。
MovieClipサブクラスにマウスイベントを追加する
class MyClip extends MovieClip{
function onRelease(){//クリックしたとき実行
}
function onRollOver(){//ポインタをあてたとき実行
}
function onEnterFrame(){//1秒に1回実行
}
}
実装例
onEnterFrameでは「ある条件になったら何もしない」ことにします。
「ある条件」は、MyClipのインスタンス変数に定義しておきます。
マウスイベントで、「ある条件」を変えます。
例:
class MyClip extends MovieClip{
var interval = 10; //変化幅
var __stop = false; //onEnterFrameを止める条件。
//クリックすると条件を反転
function onRelease(){
this.__stop = !this.__stop;
}
//ポインタをあてると変化幅を反転
function onRollOver(){
this.interval = -this.interval;
}
function onEnterFrame(){
if( this.__stop ) return;//ある条件になったら何もしない
if( this._alpha < 0 || this._alpha > 100 ){
this.interval = -this.interval;
}
this._alpha += this.interval;
}
}
このクラスを
リンクしたムービークリップシンボルを数コ配置してみると、
ちょっとだけ条件やいじるプロパティを変えて、いっぱい配置してみると、
などとなります。・・・なんか、田舎の垢抜けないFlash使い、みたいですね。
いや、ここで言いたいのは、
再利用こそオブジェクト指向の醍醐味
シンボルとActionScriptクラスとのリンクは、簡単で強力です。
上のFlashの製作時間は、MyClipクラスを書くのに2分、シンボルを作ってリンクするのに1分、インスタンスをいっぱいコピペするのに1分、など、計5分。オーサリングツールだけで作業していては、なかなかこの素早さは出ません。
作ったMyClipクラスは、どんなムービークリップにもリンクできるので、オリジナルライブラリとして蓄えていけばいいですね。