0

所以我知道 as3 没有指针,但我认为可能有一种方法可以将对象变量用作指针。

现在我依靠传递一个获取 get 函数的函数,这不是一个非常优雅的解决方案,如下所示:

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

另一种选择是将所有获取和设置方法更改为获取和设置函数,或者添加这些函数。我还可以创建一个只存储名称的链接类,但这只是一个更令人头疼的问题。

任何人都可以为我确认,真的没有办法在不做任何比这更复杂的事情的情况下获得对象变量的最新值吗?


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

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

它比这更复杂一些,但这就是它的要点。在 Flex 中,您可以进行数据绑定,但那是 flex 而不是 AS3,它也不完全是指针。

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

4

3 回答 3

1

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

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

您可以将它们存储在您创建的某种 Binding 类中,并且在每次调用 AddBinding 时,将其添加到集合中,可能确保给定的“propertyNameOnView”不存在重复项。当您需要响应数据对象上的属性更新事件时,您可以像下面这样进行分配,除了您要从 Binding 对象中获取字符串,可能会遍历整个 Bindings 集合以执行完全更新风景:

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

但更像是这样的绑定对象:

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

您甚至可以将此代码直接放在通过 Update 方法公开的 Binding 对象本身中,这样您只需在特定绑定上调用 Update(),它会将数据从数据模型的属性带到视图的属性。

如果您不熟悉动态属性,这是一些关于动态属性的信息,可以帮助您入门:http: //www.colettas.org/?p=17

于 2010-02-01T07:21:18.553 回答
0

一种获取对象变量的最新值的方法 -Daniel

目前尚不清楚您要完成什么。也许如果你能解释为什么简单地这样做不能满足你的要求?

myvar = return objectName.getVarValue;
于 2010-01-30T01:18:29.720 回答
0

为什么不直接点击对象以获得价值?除非您在特定时间想要特定值,否则为什么需要存储在另一个变量中?

于 2010-01-30T01:12:45.390 回答