我正在制作的Flash项目要求我拍摄舞台的一系列截图并将这些截图上传到服务器。我编写了下面粘贴的AS3代码,将截图(转换为jpegs)发送到php处理脚本(imageprocess.php)。
for (var i:int=0; i<sourceArray.length; i++)
{
var jpgEncoder:JPGEncoder = new JPGEncoder(10);
var jpgStream:ByteArray = jpgEncoder.encode(sourceArray[i]);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("imageprocess.php?name=drawing" + i +".jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank"); //switch to ExternalInterface.call("someJS")
}
不幸的是,我发现navigateToURL每帧只能运行一次(http://www.actionscript.org/forums/showthread.php3?t=250594)。看起来我将不得不使用ExternalInterface.call加上一些Javascript来上传多个屏幕截图,但我不确定这个Javascript代码会是什么样子。有没有人能够提供一些示例JS,它可以采取我转换的每个截图并将它们发送到php文件?我非常感谢任何建议。
答案 0 :(得分:0)
您不必使用JavaScript来上传图像,为什么不创建一个JavaScript函数来在浏览器中打开新链接(如弹出窗口)? navigateToURL
函数的副本,但随后是JavaScript?我认为这将是一个更快的解决方案?使用JavaScript打开窗口,阅读this链接。
答案 1 :(得分:0)
URLLoader可能会解决您的问题。没有使用navigatetourl上传,真的很有趣。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html