我终于让我的 Flash Builder 来查看我的远程服务,但现在我有一个问题,我的远程信息应该是相同的,除了更多的条目,只显示标题为 [object Object] 我有一个环顾四周,我看看我是否在本地测试服务,它正在工作,因为它调用了响应名称“对象”和响应值“对象”下的所有信息
在我的本地主机配置中,这显示了我的对象项中的名称。我怎样才能解决这个问题?
我终于让我的 Flash Builder 来查看我的远程服务,但现在我有一个问题,我的远程信息应该是相同的,除了更多的条目,只显示标题为 [object Object] 我有一个环顾四周,我看看我是否在本地测试服务,它正在工作,因为它调用了响应名称“对象”和响应值“对象”下的所有信息
在我的本地主机配置中,这显示了我的对象项中的名称。我怎样才能解决这个问题?
[object Object] 是 Object 的 toString() 方法的结果。如果您收到此信息,则可能意味着您的自定义对象类型作为通用对象从远程 AMF 服务返回。很多事情可能是造成这种情况的原因。这里有几个要检查的:
1) 确保您的自定义对象类型已编译到应用程序中。如果对象从未明确使用过,Flex 编译器不会将其放入最终的 SWF。您可以通过创建一个假变量来做到这一点:
private var myUnusedObject : MyCustomObjectType;
或者,我相信,有一个编译器标志可以强制将未使用的类编译到 SWF 中。
2) 您可能必须在您的服务器上添加一个正式的映射。这主要取决于您使用的服务器端技术。在 AS3 中,您将 RemoteAlias 元数据添加到类。在 ColdFusion 中,您在 cfcomponent 标签上使用别名标签。我相信在 WerbORB.NET 中,我必须在 XML 配置文件中添加映射 [但我已经有好几年没有这样做了]。我假设替代技术使用类似的方法。
3) 检查您的服务器代码的路径名是否区分大小写,并确保别名(在 2 中提到)匹配。
4) 在 ColdFusion AMF 中,您必须确保您的公共属性和类型匹配。它们在您的 AS3 类中的顺序必须与它们在远程 CFC 中的顺序相同。属性类型必须匹配。字符串到字符串;布尔到布尔等...我假设其他 AMF 实现也有类似的限制。