Actionscript 3 Img下载&;拯救模块应用程序中的不同行为。。。。
我不久前开发了一个应用程序。用于将图像下载到AIR桌面上,效果非常好!然而,当我想在大型AIR应用程序中的许多模块中的一个模块中使用它时,我克服了文件流无法保存的问题 因此,我构建了另一个应用程序。使用我保存的一个DB代码(如下所示),该代码在应用程序中包含FileStream问题后没有错误消息。对于模块,这次出现的错误是(错误#2044;未处理的IOErrorEvent:text=error#2035:URL未找到) 我想不出为什么这样做不起作用,或者更好,为什么文件没有打开,或者为什么在这种情况下找不到URL???因为两者在各自的应用程序中都可以正常工作 任何帮助都将不胜感激!问候阿克特尔Actionscript 3 Img下载&;拯救模块应用程序中的不同行为。。。。,actionscript-3,apache-flex,air,Actionscript 3,Apache Flex,Air,我不久前开发了一个应用程序。用于将图像下载到AIR桌面上,效果非常好!然而,当我想在大型AIR应用程序中的许多模块中的一个模块中使用它时,我克服了文件流无法保存的问题 因此,我构建了另一个应用程序。使用我保存的一个DB代码(如下所示),该代码在应用程序中包含FileStream问题后没有错误消息。对于模块,这次出现的错误是(错误#2044;未处理的IOErrorEvent:text=error#2035:URL未找到) 我想不出为什么这样做不起作用,或者更好,为什么文件没有打开,或者为什么在这种
.......................................................................................
creationComplete="loadRemoteImage(textInputOne.text)">
<mx:Script>
<![CDATA[
import mx.graphics.codec.JPEGEncoder;
private var _bitmapDataOne:BitmapData;
private function loadRemoteImage(url:String):void {
var loaderOne:Loader = new Loader();
loaderOne.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loaderOne.load(new URLRequest(url));
}
private function completeHandler(event:Event):void {
var loaderInfoOne:LoaderInfo = event.target as LoaderInfo;
imgOne.source = loaderInfoOne.content;
var bitmapOne:Bitmap = loaderInfoOne.content as Bitmap;
_bitmapDataOne = bitmapOne.bitmapData;
saveImage();
}
private function saveImage():void {
var extensionOne:String;
var imgByteArrayOne:ByteArray;
if(textInputOne.text.indexOf('.jpg') != -1) {
var jpegEncoderOne:JPEGEncoder = new JPEGEncoder(100);
imgByteArrayOne = jpegEncoderOne.encode(_bitmapDataOne);
extensionOne = '.jpg';
}
else
return;
var fileOne:File = File.desktopDirectory.resolvePath('Files/test'+ extensionOne);
var fileStreamOne:FileStream = new FileStream();
fileStreamOne.open(fileOne, FileMode.WRITE);
fileStreamOne.writeBytes(imgByteArrayOne);
fileStreamOne.close();
}
]]>
</mx:Script>
<mx:TextInput
id="textInputOne"
text="com/waterfront.jpg"
visible="false"/>
<mx:SWFLoader
id="imgOne"/>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
creationComplete=“loadRemoteImage(textInputOne.text)”>
您是否100%确定url正确无误?你能用错误代码和完整的消息堆栈跟踪粘贴你得到的确切的流错误吗错误代码就是我上面写的!不多不少!是的,URL也是用来测试的&Img也在那个URL上,这就是为什么它让我困惑的原因!它只是在一个模块中不起作用,否则就太完美了!错误何时出现?加载图像还是保存?您是否尝试在loadRemoteImage函数中跟踪url?好了,终于找到了使这一切都能正常工作的地方!在阅读了几篇文章后,我发现并得到了这篇文章。。。。,这让我有了两(2)步尝试的想法(Flash Player 10以后),我也在其他地方读过,所以效果非常好!!!感谢aktell****Flex 10–在Flash player中使用URLRequest上载文件,在版本10之前,仅通过FileReference.upload方法上载文件是可能的(有一些难看的漏洞–例如在外部iframe中上载)。直接使用FileReference.upload上载文件存在一些严重问题。特别是在Firefox上,FlashPlayer插件创建自己的请求(不同的用户代理、会话等),以便在不同的会话中处理服务器上的请求。必须发送所有参数,或者进行一些黑客攻击(我为每个请求手动设置jsessionid)****