as2.0クラス勉強 メモ

クラスについて勉強中

とりあえず基本的な形

//MyClass02クラス
class MyClass02 {
//プロパティ
var r:Number = 100;
//円の半径
var d:Number = 10;
//回転速度
var mc:MovieClip;
//対象のムービークリップインスタンス
//コンストラクタ
function MyClass02(target:MovieClip) {
mc = target;
}
//常に中心を向くように円周を回る
function circle(x:Number, y:Number):Void {
//d度ずつ回転
mc._rotation += d;
var rad = mc._rotation * Math.PI / 180;
//中心座標(x,y)、半径rの円のradラジアン回転した点の座標
mc._x = x + r * Math.cos(rad);
mc._y = y + r * Math.sin(rad);
}
}

呼ぶとき

var centerobj:MyClass02 = new MyClass02(center_mc);

centerobj.circle(x,y);

みたいな感じ

■importについて

import pets.* でpetsフォルダのclassファイルを全部読む

■クラスメンバー (クラスの変数)

static var seqNo:Number = 0;

クラスメンバーはクラスが保持する変数なので、通し番号などに使える。
クラスの処理が何回行われたかなど。。。

■getterメソッドとsetterメソッド

クラスの外から、参照や書き換えを行う

//読み取り専用
function get player(){

}

//カキコミ専用
function set point(){

}

■継承 (スーパークラスとサブクラス)
継承は extends を使う

class B extends A {

}

これでAがスーパー(親)、Bが子になる。
BはAのメソッドも使える。

基本的に、子の方が能力が高い
※補足
Aの中にプライベート変数があっても、Bから普通に呼べる

■ビルトインクラスの拡張
ビルトインクラスってのはFlashに元からあるクラスのこと、Dateクラスとか・・・

class YoDate extendes Date {
function test(){
youbi = this.getFullYear();
}
}

これでDateクラスのメソッドが使える

■静的クラスの拡張がわかんない!!!!!

■オーバーライド/ポリモーファズム
たとえば、Mathクラスのroundメソッドを

class YoMath extends Math {

static function round(v:Number,kate:Number) {
処理
}

}

にした場合、サブクラスで定義したround()が優先される

■movieClipクラスの拡張
movieClipクラスを拡張する場合は、リンケージプロパティでクラスファイル定義する

class Rollover extends MovieClip {

//ロールオーバーしたら150%サイズ

fuction onRollover() {
_xscale = 150;
_yscale = 150;
}

}

■ダイナミッククラス

ダイナミッククラスは変数や関数を入れて使えるもの、利用するときあるかなぞ