Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Smokescreen/JavaScript将Flash转换为图像_Javascript_Flash - Fatal编程技术网

如何使用Smokescreen/JavaScript将Flash转换为图像

如何使用Smokescreen/JavaScript将Flash转换为图像,javascript,flash,Javascript,Flash,我有一个简单的脚本,可以在我的网站上显示天气按钮: 我喜欢这个按钮显示的简单方式。这正是我想要的 但是,生成的按钮是Adobe Flash格式(swf),并且不会显示在大多数移动设备上,因为iOS和Windows Phone不支持,也不支持从Google Play应用商店下载 我想我在一个名为that has的开源项目中找到了一个解决方案 我不需要这个来复制flash电影。我所需要的只是一个简单的基于javascript的flash按钮到平面图像的转换,该图像可以显示在任何可以执行javasc

我有一个简单的脚本,可以在我的网站上显示天气按钮:

我喜欢这个按钮显示的简单方式。这正是我想要的

但是,生成的按钮是Adobe Flash格式(swf),并且不会显示在大多数移动设备上,因为iOS和Windows Phone不支持,也不支持从Google Play应用商店下载

我想我在一个名为that has的开源项目中找到了一个解决方案

我不需要这个来复制flash电影。我所需要的只是一个简单的基于javascript的flash按钮到平面图像的转换,该图像可以显示在任何可以执行javascript的浏览器中,包括移动设备

但是关于如何在他们的GitHub站点上使用Smokescreen的文档和描述充其量是很少的,而且我不是javascript专家,无法让它工作

我正在拨打的从AccuWeather获取Flash图像的电话是:

<script src='http://netweather.accuweather.com/adcbin/netweather_v2/netweatherV2ex.asp
   ?partner=netweather&tStyle=whteYell&logo=0&zipcode=NAM|CA|MB|WINNIPEG|
   &lang=eng&size=7&theme=blue&metric=1&target=_self'>
</script>

有谁能告诉我,使用Smokescreen将上述代码生成的flash图像显示为图像,javascript是什么


如果Smokescreen无法做到这一点,那么还有其他方法可以在网页上实时做到这一点吗?

在github上快速搜索会发现一些不错的纯javascript替代方案。

我认为这一个看起来最有希望:


这个simpleweatherjs演示还显示了一个不错的图标:

不幸的是,javascript无法处理swf,特别是在移动设备上,如whith ios或windows phone上,因为javascript在您的设备上运行

您可以尝试使用swfobject,它被描述为javascript的一种变通方法


您是否考虑过使用类似的无头浏览器?您可以使用类似Selenium的东西来支持开箱即用的插件,但是

这种软件的美妙之处在于它可以自动化任何用户任务(这就是为什么它被用于测试)。比如登录到一个网站并执行一个搜索,而这个搜索通常由于反伪造代币而无法从外部获得。或者通过查看产品的DOM元素值是否发生了变化来检查产品的价格是否发生了变化。或者访问您的网上银行,查看您的余额是否为素数,并将您的信用卡账单呈现为分形形式

我的意思是,如果你想在天气小部件上走这么远,你可能需要超级用户:)

…Accuweather似乎也做了类似的工作。如果不是100%一样,你可以问


编辑:检查他们的T&C,出于法律原因,移动友好的代码片段实际上可能是唯一的选择。

刚刚用你发布的页面的SWF测试了smokescreen,但它不起作用,如果你仍然想使用该站点,你需要在服务器端解析SWF

  • 我打开了开发控制台,并从iframe中找到了SWF
  • 把文件复制到我的电脑里,然后
  • 克隆了github repo和
  • 编辑
    player.html
    (来自github repo),指向我下载的文件
这是我下载的SWF:


编辑:这是我从开发人员控制台得到的错误消息:

TypeError: this.defineEditText is not a function [loader.js:136](https://github.com/cesmoak/smokescreen/blob/master/src/player/loader.js#L136)

我的系统请求获得允许SWF连接到
netwx.acuweather.com

的许可,但Smokescreen声称他们的javascript可以处理SWF。我的问题是如何正确调用Smokescreen,这样我至少可以测试一下它是否有效。@lkessler,刚刚用您发布的页面的SWF测试了Smokescreen,但它不起作用,如果您仍然想使用该站点,您需要在服务器端解析SWF。@AstDerek-我很高兴您尝试了并发现了这一点。但在我的问题中,我只是简单地问,为了尝试它,我必须进行哪些javascript调用,因为我想使用它。显然,你知道需要什么样的电话。如果您仍然可以提供此信息作为答案,我将接受它。我打开了开发控制台,从iframe跟踪SWF,将文件复制到我的计算机中,然后克隆了github repo并编辑了
player.html
(来自github repo),指向我下载的文件。这是我下载的SWF:@AstDerek-你在评论中给我的一点比这里给出的所有答案都要好。如果你能将此作为一个答案(现在在1天的宽限期内-不确定你能),我会给你奖金。你给了我其他选择(丑陋的),但没有回答我关于如何正确调用Smokescreen的问题。不幸的是,他们的手机片段只有美国的位置。我现在明白了,在我的问题中,我没有给出我正在使用的法律片段的链接。我现在已经修复了它,我使用的代码片段是合法的,并且来自:它允许国际定位,但只生成flash按钮。我不明白phantomjs解决方案会做什么。它似乎必须生成整个网页,然后对其拍照并返回照片。我只想转换整个网页。只有flash按钮。@lkessler:phantomjs或类似浏览器允许在服务器上呈现页面。然后,您就可以拍摄一个屏幕截图(或者,更确切地说,只需提供API的按钮的部分屏幕截图),并使用它做任何您想做的事情,比如将其作为图像保存到临时存储中,并为您的移动用户提供服务。最棒的是,该按钮将呈现与浏览器中完全相同的效果,甚至不会意识到它是沙盒(不能保证对smokescreen具有相同的效果…特别是因为我找不到它的工作演示:)并且找不到工作演示,甚至是关于如何使用烟幕的说明都是我提出这个问题的原因。你让我开始了,但看起来我还需要一点时间来解决这个问题。这可能是可以做到的,但演示似乎在调用一个“玩家”,这是一个简单的图像。所以可能会有不同的电话或其他什么