我正在使用StageWebView加载mp4&我的iPhone应用程序中的pdf文件(Adobe Air 3.2 for iOS,Flash CS5.5)
下面是我用来加载pdf文件的代码(加载mp4文件的代码相同)。
我需要将文件保存在iPhone上,所以下次用户打开应用程序时,我会检查文件是否存在,我将使用FileStream.open(filePath,FileMode.READ)加载它; 有没有办法保存使用StageWebView加载的文件?如果没有,那么最好的方法是什么。
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.filesystem.File;
var fPath:String = "http://www.bloomerangs.com/Axor/Water-Bath-Design Museum - short version.pdf";
var webView = new StageWebView();
webView.stage = stage;
webView.viewPort = new Rectangle(0, 32, 320, 480);
webView.addEventListener(Event.COMPLETE, onComplete);
webView.loadURL( fPath );
function onComplete(event:Event):void{
trace("event = ", event);
trace("event.target = ", event.target);
}
提前致谢! :)
答案 0 :(得分:1)
你想节省带宽(缓存几个文件),对吧?然后你可以下载(保存)文件到File.applicationStorageDirectory(使用URLStream),稍后用StageWebView(http://forums.adobe.com/thread/928558)打开它
答案 1 :(得分:0)
谢谢Pavelfljōt。
我已使用URLLoader进行文件下载。
import flash.events.Event;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.filesystem.File;
var urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(ProgressEvent.PROGRESS, onLoadFileProgress);
urlLoader.addEventListener(Event.COMPLETE, onLoadFileComplete);
urlLoader.load(new URLRequest("http://www.yourdomain.com/videos/myVideo.mp4"));
function onLoadFileProgress(e:ProgressEvent):void{
var loadedPct:uint = Math.round(100 * (e.bytesLoaded / e.bytesTotal));
trace_txt.text = loadedPct + "% loaded.";
}
function onLoadFileComplete(e:Event):void{
trace_txt.text = "File loaded";
var file:File = File.documentsDirectory.resolvePath("myVideo_copied.mp4")
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.WRITE);
fileStream.addEventListener(OutputProgressEvent.OUTPUT_PROGRESS, outputProgressHandler);
fileStream.addEventListener(Event.CLOSE, onVideoSaveClose);
fileStream.writeBytes(e.target.data);
fileStream.close();
}
function outputProgressHandler(event:OutputProgressEvent):void{
if (event.bytesPending == 0){
trace_txt.text = "File is completely written";
}
}
var stageWebView = new StageWebView();
function onVideoSaveClose(event:Event):void {
trace("closed");
stageWebView.stage = this.stage;
stageWebView.viewPort = new Rectangle(0, 0, 1024, 768);
var file:File = File.documentsDirectory.resolvePath("myVideo_copied.mp4")
stageWebView.loadURL(file.url);
}