第18回 カスタムクラスを定義する

第18回←教材はこれ!

  • かなり脱初心者っぽいテーマ!
  • ASファイルを別に用意するあたりが玄人っぽいですね☆
  • そしてクラスの概念がイマイチ掴めてないこと思い出した★
  • 定義の書式はこれ。

package [パッケージ名] { ←パッケージ名はオプション
 class クラス名 {
   function クラス名() { ←コンストラクタメソッド
  }
 }
}

  • クラスを定義するとクラス名が3カ所で使われる。特にASファイルは「クラス名.as」で保存する必要がある。
    1. クラス名
    2. コンストラクタメソッド名
    3. ActionScript(AS)ファイル名
  • なんとなく形は理解したけど(関数定義とほぼ一緒)、次の記述がよくわからない。

なお,コンストラクタメソッドはクラスのインスタンスを返すが,戻り値(returnステートメント)とそのデータ型は指定しないことに注意してほしい。

  • 「クラスのインスタンスを返す」の意味がいまいち。
  • そして次のページでアクセス範囲の指定について。mixiを例に出されたら分かったつもりになる。
  • とりあえずpublicを付けなさいと言うことね。

// ActionScript 3.0クラス定義ファイル: MyClass.as
package {
public class MyClass { // コンストラクタメソッド
  function MyClass() {
  }
 }
}

  • そして3ページ目では新たに定義したクラスにメソッドとプロパティを!これでクラスの概念がなんとなく分かるか?!
  • そんなわけで次のスクリプト

// ActionScript 3.0クラス定義ファイル: MyTimer.as
package {
public class MyTimer {
private var my_date:Date;
public function MyTimer() {
my_date = new Date();   ←クラスを生成した時の時刻をゲット
  }
public function getElapsedTime():Number {
   var current_date:Date = new Date();
   var nElapsedTime:Number = current_date.time-my_date.time; ←現在の時刻との差を取って経過時間を計算
   return nElapsedTime;
  }
 }
}

  • キッチンタイマーアプリみたいなのがこれで作れるのかな。
  • ここでアクセス範囲のおさらい
private
定義されたクラス内からのみ,アクセスすることができる。
public
任意のクラスやタイムラインから,アクセスすることができる。コンストラクタメソッドは,このpublic属性しか指定できない。
  • コンストラクタメソッドが外部から呼び出せなかったらそもそもクラス定義する意味無いっちゅーことですな。
  • クラスって結局、うーん、関数群?ツールパレット的な?
  • 次回持ち越しです(´Д⊂