Javascript with Flash(AS3)Image Uploader,ExternalInterface.call

时间:2012-05-21 07:12:43

标签: javascript actionscript-3 flash image-uploading

我正在制作的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文件?我非常感谢任何建议。

2 个答案:

答案 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