MovieClip.onEnterFrame

onEnterFrameをネタにいろいろ書いていこうと思います。まずは、オブジェクト指向っぽく、その基本から。

最近は仕事でFlashを使うことが多くなったのですが、Flashも、オーサリングツールを使わずにAcrionScriptだけで作ろうと思ったら、Javaアプレットとあんまり変わりないなぁ、と思いはじめてきました。
でもMovieClip.onEnterFrameだけは、他にない発想のイベントハンドラーです。このメソッドがFlashのFlashたるゆえんか。

ということで、このメソッドの利用方法を書いていこうというのがこのカテゴリの主旨です。

onEnterFrameは

MovieClip.onEnterFrame(またはonClipEvent(enterframe) )は、
1秒に1回、必ず実行されるメソッドです。
こう理解しておけば、まず間違いないと思います。

MovieClipサブクラスをActionScriptで定義する

1.好みの画像やグラフィックをムービークリップに変換しておく。

2.ActionScriptで、MovieClipを継承したサブクラスを作る。


 class MyClip extends MovieClip{
  function onEnterFrame(){
  }
 }

と書いて、ファイル名をMyClip.asとして、flaファイルと同じフォルダに保存。

3.作ったムービークリップとActionScriptクラスをリンクする。ライブラリパネルから、作ったムービークリップを右クリックして「プロパティ」で入力できます。


4.ムービークリップをステージに配置。

これで準備完了。次に、MyClip.onEnterFrameにいろいろ書いて試してみます。

簡単なプロパティいじり

MovieClipのプロパティの値を、1秒に1回変えてみます。たとえば_alphaを、こんな風に。


 class MyClip extends MovieClip{
  var interval = 5;//変化幅を定義しておく
  function onEnterFrame(){
    if( this._alpha < 50 || this._alpha > 100 ){
      this.interval = -this.interval;//反転
    }
    this._alpha += this.interval; //変化幅を加算
  }
 }

_rotationなら、

 class MyClip extends MovieClip{
   var interval = 5;
   function onEnterFrame(){
   if( this._rotation < -20 || this._rotation > 20 )
      this.interval = -this.interval;
   this._rotation += interval;
   }
 }


タイムラインのトーウィンを使ってアニメーションを作るよりは、こっちのやり方のほうが簡単だと思いますし、応用が利きます。それに、動きも滑らかにしやすいです。

あとはアイディア次第だす。


コメント
ah
2006/06/03
大学でFlashを使ってオブジェクト指向を教えてたのを思い出した。4年くらい前。
武田ソフト
2006/06/05
ahさん、遠いところありがとうございます。

4年ね。いい数字が出ました。関東で使われるようになったソフトウェア技術や製品が、大阪・名古屋に普及するのは2年後、仙台・福岡に普及するのがさらにその2年後、というのは私の体感速度です。
インフラの普及はタイムラグがないのに。山形でもワンセグすぐに始まります。この差はいったいなんでしょう。

私にもいろいろ教えてください。よろしくお願いします。

コメントしてください

closed.