创作环境: Adobe Flex Builder 2 (本例)/ Adobe Flash CS3
症状:
上传/下载对话框打开,服务端脚本正确,安全沙箱无错,执行操作后无上传/下载的文件!
原因:
(引自FLASH帮助)
FileReference.upload() 和 FileReference.download() 函数是非阻塞式的,
若 FileReference 对象离开作用域,则对该对象尚未完成的上载或下载操作将在它离开作用域后被取消。
解决方法:
将FileReference实例定义到函数体外部,作用域尽量最大化!
复制内容到剪贴板
代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:tool="net.flash8.cat" layout="absolute" creationComplete="init()">
<mx:script>
<![CDATA[
//将down定义在这里,确保上传或下载时FileReference 实例保留在作用域内!
private var down:FileReference=new FileReference();
private function init():void{
var _str:String="ttp://space.flash8.net/bbs/images/default/logo.gif";
var _url:URLRequest=new URLRequest(_str);
//down不要定义到这里.防止上传或下载时FileReference实例离开作用域!
//var down:FileReference=new FileReference();
down.download(_url);
}
]]>
</mx:script>
</mx:Application>[
本帖最后由 猫大哥 于 2007-11-5 14:56 编辑 ]