【发布时间】:2012-07-05 18:00:51
【问题描述】:
我正在学习 flex/flash,但我迷失了这一点。我在一堆视图中使用了“数据”,效果很好。由于某种原因,它在这里不起作用。
我在这里将一个字段设置为一个字符串:
function LoginLoaded (e:Event):void {
trace(e.target.data);
var ServerReturn:String;
ServerReturn = new String(e.target.data);
data.UserCommonReturnData = ServerReturn;
navigator.pushView(CommonPlaces, data);
}
在公共场所视图中,我尝试将其加载回来:
var CommonPlacesData:String = new String();
var CurrentSelect:String = new String();
CommonPlacesData = new String(data.UserCommonReturnData);
这给出了错误“访问未定义的属性数据”我不明白,因为调用类似 data.PickUpTime(也是一个字符串)的东西在其他视图中工作正常。
数据从第一个视图开始,如下所示:
[Bindable] public var User:ObjectProxy = new ObjectProxy();
User.ID = "2314084";
navigator.pushView(TaxiNowOrLaterView, User);
然后在以后的视图中我这样调用它:(工作正常)
var PickUpString:String = new String(data.ID);
任何帮助都会很棒!谢谢!!!
【问题讨论】:
-
你能告诉我们“数据”是哪个类的定义吗?
-
当然,我已经在我的问题中添加了上面的代码
-
你让我有点困惑。我可以看到“用户”的类定义,但看不到“数据”的类定义。从您的代码中,我认为“用户”是“数据”的代理。看看用“用户”替换“数据”是否有效
-
什么是e.target?也就是说,如果您跟踪(e.target)它输出什么,您能否显示处理程序注册为侦听器的代码。事件的目标将是最初调度事件的对象(它冒泡的地方)。如果该对象没有数据,那么您将收到此错误。在不知道 e.target 是什么的情况下,任何人都无法提供帮助。
-
data 和其他属性一样只是一个属性,它的类型为 Object,AS3 中任何实现 IDataRenderer 的类都有一个 getter/setter 对。就像你说的,许多类都实现了这个接口,所以在很多情况下,你可以使用 data 属性作为一种手段,将一些有效负载从一个视图传送到另一个视图,或者以其他方式。
标签: actionscript-3 flash apache-flex flash-builder mxml