Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 是否可以从服务器检索xml,保存到设备并将该本地文件用于我的HTTPService url?_Actionscript 3_Apache Flex_Flash Builder_Flash Builder4.5 - Fatal编程技术网

Actionscript 3 是否可以从服务器检索xml,保存到设备并将该本地文件用于我的HTTPService url?

Actionscript 3 是否可以从服务器检索xml,保存到设备并将该本地文件用于我的HTTPService url?,actionscript-3,apache-flex,flash-builder,flash-builder4.5,Actionscript 3,Apache Flex,Flash Builder,Flash Builder4.5,我有一个从我运行的服务器检索XML的应用程序。。。我试图限制对服务器的呼叫(如果可能的话),以提高应用程序的响应能力,并降低用户出错的可能性。如果数据流由于任何原因无法成功完成行程,我会遇到一些间歇性的网络监视器错误,这可能是由于我认为我遇到了一些wifi通道冲突,但这仍然是整个过程中的一个潜在弱点,如果我能解决这个问题,每次用户在应用程序中执行“操作”时,我都需要调用服务器 我想做的是使用设备上的本地存储(在应用程序启动时)检索并保存XML数据,然后将我的httpservice url更改为本

我有一个从我运行的服务器检索XML的应用程序。。。我试图限制对服务器的呼叫(如果可能的话),以提高应用程序的响应能力,并降低用户出错的可能性。如果数据流由于任何原因无法成功完成行程,我会遇到一些间歇性的网络监视器错误,这可能是由于我认为我遇到了一些wifi通道冲突,但这仍然是整个过程中的一个潜在弱点,如果我能解决这个问题,每次用户在应用程序中执行“操作”时,我都需要调用服务器

我想做的是使用设备上的本地存储(在应用程序启动时)检索并保存XML数据,然后将我的httpservice url更改为本地文件

我以前用过一些代码来成功地将配置设置写入和读取到本地文本文件,所以我很确定这是可以实现的,只是不确定具体怎么做


感谢大家对这个或任何可以分享的代码示例的介绍。

默认情况下,从
应用程序存储目录
加载它,如果它不存在,则加载xml并将其保存到
应用程序存储目录

要加载:

var xmlFile:File = File.applicationStorageDirectory.resolvePath("data.xml");
if (xmlFile.exists)
{
   var fileStream:FileStream = new FileStream();
   fileStream.open(xmlFile, FileMode.READ);
   var xml:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));// you will want to declare outside this scope, its just for show
   fileStream.close();
}else{
  downloadAndSaveXML();// if it doesnt exist dowload it then save it and call load again!
}
要保存:

//download .xml first and save in the onComplete handler, im calling the file "xml"
var file:File = File.applicationStorageDirectory.nativePath("data.xml");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes(xml.toXMLString());
stream.close();
明白了吗

您还需要此编译器参数,以便HTTPService不会联机查找xml

-locale en_US -use-network=false
您不必一开始就加载文件,而只是将其嵌入到应用程序中


除了必须将其拼凑起来以满足我的需要之外,您提供的代码绝对有意义,而且比我想象的要简单。。。明亮的太棒了-谢谢。。。我会试试这个。由于服务器上实时数据库的更新速度,需要定期从服务器获取数据——我将首先确保本地保存的副本不超过24小时。那时不应使用编译器参数,而应使用本地xml文件。我现在正在努力解决的问题是如何获取xml通过httpservice获得的数据,并将其放入本地文件或另存为本地文件。在httpservice的结果事件中
var xml:xml=response.result作为xml您还可以使用URLRequest而不是HTTPService