所以我知道as3没有指针,但我认为可能有一种方法可以使用对象变量作为指针。
现在我依靠传递一个获取get函数的函数,这不是一个非常优雅的解决方案:
myvar = function():int{return objectName.getVarValue};
另一种选择是将所有获取和设置方法更改为get和set函数,或者添加这些函数。 我还可以创建一个只存储名称的链接类,但这只是一个更大的问题。
任何人都可以向我确认,如果没有做比这更复杂的事情,真的没有办法获得对象变量的最新值吗?
基本上涉及三方,几乎像MVC。我的一个对象是控制器,它告诉“视图”的哪个值与任何数据键匹配。 视图有点愚蠢,数据/模型也是如此,所以一切都是通过控制器完成的,并且按照这些事件重叠的顺序完成。因此,我将数据抓取委托给datakey,通过在开头定义所有不同的参数,稍后我可以调用更新并选择数据键并获取数据。 现在我通过我正在创建的函数链接到值的构造函数
onUpdate:function():int{return objectName.getVarValue};
它比这更复杂,但这是它的要点。 在Flex中你可以做数据绑定,但这是一个灵活的东西,而不是AS3,它也不是一个指针。
我希望as3可以做指针,也许在as4?我认为可能有一种方法可以将getter检索为我不知道的函数。
答案 0 :(得分: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(),并将数据从数据模型的属性中提取到视图的属性中。 / p>
如果您不熟悉动态属性,这可以帮助您入门: http://www.colettas.org/?p=17
答案 1 :(得分:0)
为什么不直接点击对象的值?除非您想在特定时间使用特定值,否则为什么需要存储在另一个变量中?
答案 2 :(得分:0)
获取最新值的方法 对象的变量-Daniel
你想要完成的事情并不是很清楚。也许如果你能解释为什么不能简单地满足你的要求呢?
myvar = return objectName.getVarValue;