年龄前我发现了一个从Flash中获取数据的脚本,并将Flash阶段保存为图像...由于某种原因,此脚本不再起作用,我不知道为什么它没有被修改
这是剧本;
if(isset($ GLOBALS [“HTTP_RAW_POST_DATA”])){
// get bytearray
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
// add headers for download dialog-box
header('Content-Type: image/jpeg');
header("Content-Disposition: attachment; filename=".$_GET['name']);
echo $jpg;
} else echo'发生错误。';
这是ActionScript;
function createPNG(fileName:String) { var PNGSource:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0); PNGSource.draw(Pimp_mc);
var PNGStream:ByteArray = PNGEncoder.encode(PNGSource);
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
//Make sure to use the correct path to jpg_encoder_download.php
var PNGURLRequest:URLRequest = new URLRequest ("jpg_encoder_download.php?name=" + fileName + ".png");
PNGURLRequest.requestHeaders.push(header);
PNGURLRequest.method = URLRequestMethod.POST;
PNGURLRequest.data = PNGStream;
var PNGURLLoader:URLLoader = new URLLoader();
navigateToURL(PNGURLRequest, "_self");
}
任何帮助都将不胜感激。
答案 0 :(得分:1)
这是IE中的一个问题,因为它已更新到Flash 13.0.0.214,因此不仅仅是Chrome问题,而且即使使用上述解决方法,也很可能是一个问题。
我们已经开发了一个内部工具,因此我将使用ExternalInterface.call进行测试(" window.open",url);如上所述。
此致 利安
答案 1 :(得分:1)
Flash 13.0.0.214在发送标头信息时中断了navigateToURL()。尝试删除标题。参考:https://forums.adobe.com/message/6391632
(不要认为此修复程序在Win11中使用Flash 13.0.0.214在IE11中工作(除非激活了开发人员工具),但Chrome,FF和其他IE的效果不错。)
答案 2 :(得分:0)
Chrome上的嵌入式Flash Player似乎存在问题,称为“胡椒”。
如果你使用非嵌入式插件,它可以工作: 安装external plugin of flash for non-IE browsers,启用官方插件并在Chrome上的插件配置中禁用嵌入式插件,您将看到它有效。
要禁用插件,您需要在网址栏上输入 about:plugins ,然后按下胡椒网下方的禁用链接。检查这个截图(这是西班牙人抱歉)。
更改后关闭并打开浏览器再试一次。附件将显示在Firefox中。
我确信这不是一个解决方案,因为网站的用户应该手动执行,但它证明了Chrome上的问题,而不是代码中的问题。
这是Google代码页上的错误:
https://code.google.com/p/chromium/issues/detail?id=277210
在上一个链接上有一条评论说你可以打电话给: ExternalInterface.call( “window.open”,URL);