« 暗黙的なgetterメソッドとsetterメソッド | メイン | 静的(static)クラスの拡張 »
ビルトインクラスの拡張
Dateクラス、String、Soundクラスといったビルトインクラス(Flash標準装備のクラス)をスーパークラスにすることで、ビルトインクラスを拡張したサブクラスを作ることができます。次の例ではDateクラスを拡張して今日の曜日名を漢字で返すgetYoubi()関数と”年月日(曜日)”で日付を返すgetLongDate()関数を組み込んでいます。
sample→ex04-03/yoDateフォルダ
クラス定義ファイル:YoDate.as
//Dateクラスを拡張する
class YoDate extends Date {
var youbiList:Array = ["日", "月", "火", "水", "木", "金", "土"];
var y:Number;
var m:Number;
var d:Number;
var youbi:String;
var longdate:String;
//コンストラクタ
function YoDate() {
}
//今日の曜日を返す
function getYoubi():String {
youbi = youbiList[this.getDay()];
return (youbi);
}
//長い日付を返す
function getLongDate():String {
y = this.getFullYear();
m = this.getMonth() + 1;
d = this.getDate();
youbi = this.getYoubi();
longdate = y + "." + m + "." + d + " (" + youbi + ")";
return (longdate);
}
}
では、実際にYoDateクラスを試してみましょう。YoDateクラスはDateクラスを継承しているので、YoDateクラスでインスタンスthedayを作ると今日の日付のDateオブジェクトが作られます。続いてインスタンスthedayに対してYoDateクラスで定義した2つの関数とDateクラスのsetFullYear()関数を実行してみます。この結果からYoDateクラスはDateクラスをスーパークラスとして確かに継承していることが確認できます。
フレームアクション:yodate.fla
var theday:YoDate = new YoDate();
//YoDateクラスで定義した関数
youbi = theday.getYoubi();
trace(youbi); // 出力→ 金
longdate = theday.getLongDate();
trace(longdate); // 出力→ 2005.1.14 (金)
//Dateクラスの関数
theday.setFullYear(2005, 3, 3);
longdate = theday.getLongDate();
trace(longdate); // 出力→ 2005.4.3 (日)
投稿者 oshige : 2005年2月23日 10:35