用javascript或html更改flash嵌入大小?

时间:2011-10-29 19:21:55

标签: javascript html flash

我正在尝试将此视频缩放到640x360。当我改变宽度和高度时,视频不会变大。我尝试添加参数scale =“aspect”,scale =“exactfit”,scale =“default”。他们都没有工作。

有没有办法将其缩放到640x360?

嵌入代码:

<object width="416" height="374" classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" />
<embed src="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" type="application/x-shockwave-flash" allowscriptaccess="always" width="416" height="374">
</embed>
</object>

这也不起作用:

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<object width="416" height="374" classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" />
<embed src="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" type="application/x-shockwave-flash" allowscriptaccess="always" width="416" height="374">
</embed>
</object>

<script>
function testcode () {
    $('object').attr('width','640');
    $('object').attr('height','500');

    $('object embed').attr('width','640');
    $('object embed').attr('height','500');
}

</script>

<br>
<a href="#" onclick="testcode()">click to test</a>

显示为:

enter image description here

3 个答案:

答案 0 :(得分:2)

您可以使用以下jQuery脚本:

$(window).resize(function(){


    $('object').attr('width','640');
    $('object').attr('height','360');

    $('object embed').attr('width','640');
    $('object embed').attr('height','360');

});

查看JSFiddle

上的结果

OR

您可以使用SWF Object。它是一种易于使用且标准友好的嵌入Flash内容的方法,它使用一个小的JavaScript文件。

<强>编辑:

<html>
<head><title>SWF example by jQuery</title></head>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<object width="416" height="374" classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" />
<embed src="http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr" type="application/x-shockwave-flash" allowscriptaccess="always" width="416" height="374">
</embed>
</object>

<script>
function testcode () {
    $('object').attr('width','640');
    $('object').attr('height','500');

    $('object embed').attr('width','640');
    $('object embed').attr('height','500');
}

</script>

<br>
<a href="#" onclick="testcode()">click to test</a>

</body>
</html>

答案 1 :(得分:2)

问题在于您正在调整浏览器/ DOM的嵌入元素的大小,但实际上并未缩放嵌入的内容(Flash动画)。

查看您引用的SWF网址:cnn_416x234_embed.swf。动画被硬编码为416x234,无论你对它周围的HTML做什么,它都会以这个大小播放。

有几种方法可以做你想做的事:

a)查找编译为所需大小的CNN嵌入URL,640x360。然后,只需将HTML嵌入元素硬编码为该大小(除非您有其他原因要使用Javascript)。

b)打开Flash,创建一个“动画”,只需将CNN SWF加载到一个帧中,然后将其缩放到您想要的大小。保存并导出到SWF,并将此动画嵌入到您的页面中。

c)Flash可通过ActionScript完全编写脚本(Javascript和ActionScript都只是ECMAscript),并且由于您已设置allowscriptaccess="always",因此您应该能够使用Javascript操作动画。在调试器中运行CNN SWF,找出需要调整大小的元素,然后缩放它们。

解决方案(a)显然是最简单和最好的,假设它存在,因为您想要使用实际以您想要的大小编码的视频,而不是以416px宽度编码然后缩放。就个人而言,如果这不起作用,我真的不同意将视频缩放1.5倍,它看起来不会很好。

编辑/添加:请参阅下面的评论。由于跨域问题,遗憾的是答案是不可能操纵第三方SWF(CNN,在这种情况下)内的对象大小。如果这是您的SWF,或者在system.Security中启用了跨域访问,则建议的解决方案将起作用。但在这种情况下,CNN的SWF被锁定,以便不允许跨域访问。

所以,不幸的是,答案是,如果CNN没有发布你想要的大小的视频小部件(我的(a)解决方案),那你就不走运了,抱歉。做你想做的事是不可能的。我将在这里留下完整的答案,以防它帮助其他人。

答案 2 :(得分:1)

查看您要嵌入的.swf文件的网址。该大小在所有.swf文件中都是硬编码的。 http://i.cdn.turner.com/cnn/.element/apps/cvp/3.0/swf/cnn_416x234_embed.swf?context=embed&videoId=us/2011/10/28/dnt-mom-learns-death-thru-facebook.wsyr

这只是其中之一,但那个大小是硬编码的老兄。我想如果你知道动作脚本,你可以起床,但我不知道。也许你可以做到,实际上你可以我不知道怎么用javascript。