« 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年8月10日 22:20