我注意到视图之间无法使用可绑定的公共变量,在整个应用程序中查看中央变量集的最佳做法是什么。
提前致谢并感谢您的帮助。 克雷格
答案 0 :(得分:1)
偶然遇到了这个问题,也许我有一个答案。即使问题本身已有几个月了。
我通过使用模型来解决您的问题。使用MVC模式,无论何处,您都可以使用变量的“存储库”。根据您的项目规格,掌握或感觉舒适的图案后,您可以灵活选择您拥有的模型数量。原谅简单,因为您可以而且应该好好规划您的结构以适应您的项目。
举个简单的例子:
。让我们假设您有2个视图:“v1”和“v2”
。我们创建一个单例模型 - 让我们称之为“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