在AS3中传递getter函数或棘手的指针

在AS3中传递getter函数或棘手的指针

问题描述:

所以我知道as3没有指针,但我认为可能有一种方法使用对象变量作为指针。在AS3中传递getter函数或棘手的指针

现在我依靠传递一个获取get函数的函数,它不是一个很优雅的解决方案是这样的:

myvar = function():int{return objectName.getVarValue}; 

另一种选择是改变所有的得到和设置方法进入获取和设置功能,或者添加这些功能。 我也可以创建一个只存储名称的链接类,但这只是一个更大的头痛。

任何人都可以证实我确实没有办法获得对象变量的最新值,而没有做任何比这更复杂的事情吗?


基本上有三方参与,几乎就像一个MVC。一个对象是控制器,它告诉哪个“视图”的值与哪个数据键匹配。 视图有点愚蠢,数据/模型也是如此,所以一切都是通过控制器完成的,并且是以这些事件重叠的顺序完成的。因此,我将数据抓取委托给数据键,通过在开始时定义所有不同的参数,稍后我可以调用更新并选择数据键并获取数据。 现在我有通过功能链接到值的构造我创建这样

onUpdate:function():int{return objectName.getVarValue};

它比这更复杂一点,但是这是它的要点。 在Flex中你可以做数据绑定,但这是一个弹性的东西,而不是AS3,它也不完全是一个指针。

我希望as3可以做指针,也许在as4中?我认为可能有一种方法可以将getter作为我不知道的函数进行检索。

+0

您可以添加到您的例子什么是你需要myVar的呢?你是否将它传递给另一个函数或构造函数,以便该对象可以间接访问getter? – AaronLS 2010-01-30 01:27:51

+0

我的不好,我现在增加了更多信息。 – Daniel 2010-01-30 03:40:42

我只是传递对象本身,因为引用的行为最像一个指针。您可以使用动态属性制作自己的数据绑定。如果要将视图连接到数据模型,控制器将创建与数据源对象的数据绑定,以及要在数据源上绑定的属性的名称以及要在视图上绑定的属性的名称:

view.AddBinding(dataObjectName, "somePropertyOnObject", "propertyNameOnView"); 

您可以在某种创建Binding类存储这些,并在每次调用AddBinding,你把它添加到集合,大概要确保没有重复的给定的“propertyNameOnView”的存在。当您需要响应数据对象上的属性更新事件时,您可以像下面那样进行分配,除非您从Binding对象中获取字符串,也许遍历整个Bindings集合来执行完整更新观点:

this["propertyNameOnView"] = dataObjectName["somePropertyOnObject"]; 

但更多像这样的一个绑定对象:

someBinding.DestinationObject[someBinding.DestinationProperty] = 
    someBinding.DataSource[someBinding.SourceProperty]; 

你甚至可以直接把这个代码本身就是通过Update方法暴露,这样你只需要调用更新绑定对象( )在特定的绑定上,它将数据从数据模型的属性中提取到视图的属性中。

这是动态特性的一些信息,让你开始,如果你不熟悉他们: http://www.colettas.org/?p=17

为什么不直接点击对象的值?为什么需要存储另一个变量,除非你想在特定的时间具体的价值?

一种方式来获得

这不是真正清楚你希望完成什么样的 对象的变量-Daniel向上的最新值。也许如果你能解释为什么不简单地做到这一点符合你的要求?

myvar = return objectName.getVarValue;