クラスについて勉強中
とりあえず基本的な形
//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;
}
}
■ダイナミッククラス
ダイナミッククラスは変数や関数を入れて使えるもの、利用するときあるかなぞ