- 2009-03-20 (金) 23:08
- ActionScript3.0 | Progression
ProgressionにはgetSceneByIdというクラスが用意されています。
これを使ってあげると、シーン間でデータの受け渡しが簡単に出来るようになります。
例えば、IndexSceneとAboutSceneがあって、IndexSceneで定義されている変数に、AboutSceneでアクセスしたい時に(このクラスは)重宝します。
getSceneByIdを使うには、以下のような手順を踏みます。
- シーン(SceneObject)にユニークなIDを付けておく
- 値(変数)を取得したいシーンで、getSceneById(”ユニークなID”)の様に使う
こんな感じになります。
publicな変数の場合
★IndexScene
public var _str:String = "ほげほげ";
(略)
//コンストラクタ
public function IndexScene() {
//ユニークなIDをつけておく
id = "uniq";
}
★AboutScene
var a:IndexScene = IndexScene(getSceneById("uniq"));
trace(a._str);
このように設定してあげると…
ほげほげ
と出力パネルに表示されます。
privateな変数の場合
変数をpublicではなくprivateに設定してある場合は、getter、setterを使ってあげます。
★IndexScene
private var _str:String = "ほげほげ";
(略)
//コンストラクタ
public function IndexScene() {
//ユニークなIDをつけておく
id = "uniq";
}
//getterを定義
public function get str():String{
return _str;
};
//setterを定義
public function set str(value:String):void{
_str = value;
}
★AboutScene
var a:IndexScene = IndexScene(getSceneById("uniq"));
trace(a.str);
a.str = "ユニークな一意の名前";
trace(a.str);
これを実行してあげると…
ほげほげ
ユニークな一意の名前
こんな感じでSingletonクラスを使わないでも、シーン間で値(データ)の受け渡しが出来ちゃいます!
便利ですねぇ…
- Newer: getSceneBySceneIdでも同じことが…
- Older: extends Progression 応募開始されました!
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://flabaka.com/blog/wp-trackback.php?p=571
- Listed below are links to weblogs that reference
- getSceneByIdを使ってデータを受け渡す from flabaka
- pingback from 09年03月27日 今日の Web ページメモ « Web、プログラミングの技術など - gentenzero blog 09-03-28 (土) 0:01
-
[...] flabaka – getSceneByIdを使ってデータを受け渡す Singleton クラスを使用しない方法。 (tags: actionscript progression) [...]