« p213, p217 | メイン | p269 »

p.213〜p.218

クラスメンバーを参照するには、「クラス名. クラスメンバー」の書式を使いますが、クラス定義内では自身のクラスメンバーをクラスメンバー名だけで参照できました。
p.213で掲載しているShowcaseクラス定義では、インスタンスメソッドからselectedObjクラスプロパティを参照する際にShowcase .selectedObjあるいはShowcase .selectedObj.eject()のようにクラス名を付けて参照しています。これでも正しく動作しますが、クラス名を省略し、それぞれselectedObj、selectedObj.eject()と簡素に記述することができます。
したがって、p.213のShowcaseクラス定義のスクリプトは次のように書き換えることができます。(p.215〜p.218の解説ページも同様に読み替えてください)

Showcaseクラス定義
class Showcase extends Zoom {
//Showcaseクラスで共通のクラスプロパティ
static var selectedObj:Object;
//インスタンスプロパティ
var homept:Object;
var homexs:Number;
var homeys:Number;
//コンストラクタ
function Showcase(targetMC:MovieClip, n:Number) {
// スーパークラスの初期化
super(targetMC, n);
/* Showcaseのプロパティ */
//元の座標とスケール
homept = {_x:mc._x, _y:mc._y};
homexs = mc._xscale;
homeys = mc._yscale;
}
//カレントオブジェクトのエントリー処理
function entry(pt:Object, xs:Number, ys:Number):Void {
if (selectedObj == this) {
//自分をイジェクトする
selectedObj.eject();
//} else if (_global.selectedObj != this) {
} else {
//現在のカレントオブジェクトをイジェクトする
selectedObj.eject();
//自分をエントリーする
selectedObj = this;
this.zoomTo(pt, xs, ys);
}
}
//自分をイジェクトする
function eject():Void {
selectedObj = undefined;
this.zoomTo(homept, homexs, homeys);
}
}

投稿者 oshige : 2005年08月10日 22:20