バインド可能なパブリック変数がビュー間で使用できないことに気付きました。これは、アプリケーション全体で変数の中央セットを表示するためのベストプラクティスです。
よろしくお願いいたします。クレイグ
バインド可能なパブリック変数がビュー間で使用できないことに気付きました。これは、アプリケーション全体で変数の中央セットを表示するためのベストプラクティスです。
よろしくお願いいたします。クレイグ
偶然この質問に出くわしました、そして多分私は答えを持っています。質問自体が数か月前のものであっても。
モデルを使用して問題を回避します。MVCパターンを使用すると、どこにいてもアプリケーションで常に使用できる変数の「リポジトリ」を持つことができます。パターンをマスターした後、または快適に感じた後は、プロジェクトの仕様に応じて、モデルの数に柔軟に対応できます。プロジェクトに対応するために構造を適切に計画することができ、またそうすべきであるため、単純さを許してください。
簡単な例として:
。「v1」と「v2」の2つのビューがあると仮定します
。シングルトンモデルを作成します-それを「myNinjaModel.as」と呼びましょう:
package modelo
{
// your imports here
[Bindable]
public class myNinjaModel
{
private static const _instance:myNinjaModel = new myNinjaModel( SingletonLock );
public static function get instance():myNinjaModel
{
return _instance;
}
public function myNinjaModel( lock:Class )
{
// Verify that the lock is the correct class reference.
if ( lock != SingletonLock )
{
throw new Error( "Invalid Singleton access. Use Model.instance." );
}
}
// you can add some function here that you can access from anywhere in your application
// but be aware of data/logic separation, etc.
// also some nice variables here
var myNameAnywhere:String = "lawrence waterhouse";
} // end class
} // end package
class SingletonLock
{
} // end class
。いずれかのビューでこのモデルの関数または変数を使用する場合:
import modelo.myNinjaModel;
[Bindable]
private var smodelo:AModel=AModel.instance;
。変数にアクセスする場合は、次のようにします。
trace(smodelo.myNameAnywhere); // this will output lawrence waterhouse
何かをタイプミスした場合は申し訳ありませんが、私はこれを心からやっています。
私はあなたがあなたの問題を解決した以上のものを持っているに違いないと思いますが、これが何らかの形で役立つことを願っています。:-)
ここでMVCについて少し読むことができます(理論):
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller