Flex 4.6移动应用程序中的可变持久性

时间:2012-10-05 14:31:40

标签: actionscript-3 variables flex flex4.6 persist

我注意到视图之间无法使用可绑定的公共变量,在整个应用程序中查看中央变量集的最佳做法是什么。

提前致谢并感谢您的帮助。 克雷格

1 个答案:

答案 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