Java 如何在Flex中从本地XML文件读取数据

Java 如何在Flex中从本地XML文件读取数据,java,actionscript-3,apache-flex,Java,Actionscript 3,Apache Flex,我有一个包含flash部分的java web应用程序。目前,.swf文件正在从projectsrc文件夹读取xml文件。我想从本地文件系统(在C://驱动器中)访问xml文件。如何从C://驱动器访问xml数据。目前,我的java web应用程序正在从C://驱动器访问相同的xml文件。我可以通过javascript将xml数据传递到.swf文件吗。 在Flex中,从本地文件系统访问XML文件的最佳实践是什么 非常感谢您的帮助。如果您的swf位于web应用程序中,您将无法自由访问硬盘。不过,有两

我有一个包含flash部分的java web应用程序。目前,
.swf
文件正在从project
src
文件夹读取
xml
文件。我想从本地文件系统(在
C://
驱动器中)访问
xml
文件。如何从
C://
驱动器访问xml数据。目前,我的java web应用程序正在从
C://
驱动器访问相同的
xml
文件。我可以通过javascript将
xml
数据传递到
.swf
文件吗。 在Flex中,从本地文件系统访问XML文件的最佳实践是什么


非常感谢您的帮助。

如果您的swf位于web应用程序中,您将无法自由访问硬盘。不过,有两种选择:

文件引用 通过该命令,您可以允许用户从本地系统中选择文件并加载或上载。 如果您选择
加载
它,您将可以通过
字节数组
访问它的
数据

外部接口
ExternalInterface允许您通过javascript与浏览器进行通信。您可以使用设置响应程序。检查。你说这是一个Java web应用程序。所以,一种方法是将XML文件放在服务器上,然后进行服务调用以在Flex中读取它

var httpService:HTTPService = new HTTPService();
httpService.url = path; //The URL of the XML file goes here
httpService.resultFormat = "e4x";
httpService.addEventListener(FaultEvent.FAULT, onFaultHttpService);
httpService.addEventListener(ResultEvent.RESULT, onResultHttpService);
httpService.send();
您必须定义
onFaultHttpService
onResultHttpService
方法


好的,除非您使用AIR,否则无法在Flex中直接访问文件系统。

谢谢您的回答。我可以将xml内容作为参数传递给swfobject.embedSWF()吗?在您应该使用的示例中,
thismvie(“ExternalInterfaceExample”)。sendToActionScript(值)但是是的,您只需将其作为字符串发送即可。对于swfobject,我不明白为什么不能将XML作为字符串作为参数发送。请注意,使用此方法,您只能在创建swf之前执行此操作,而不能在创建swf之后执行。我的java web应用程序位于服务器上,XML文件位于C:drive-in服务器内。是否可以访问。如果可以,如何指定路径。通过“将其放在服务器上”,我的意思是您可以(如果可能),将xml文件复制到Java web项目中的WebContent目录。(您的swf文件可能也位于该目录中)。然后,您将能够使用URL而不是文件系统路径访问xml文件。现在xml位于web项目的src文件夹中。但要求从C:Drive访问xml。刚才看到了更新的问题。这使得我的答案无效:)但正如我所说的,在FlexWeb应用程序中没有直接访问文件系统的方法。我的直觉告诉我你所做的不是一个好方法。但这在很大程度上取决于你想要完成什么。