使用Javascript自定义Flash Player控制器

时间:2012-10-02 05:44:43

标签: javascript embed flash

我想知道是否有可能删除或自定义Flash播放器控制器的某些部分。 我有一个嵌入式标签,可以从Ustream生成视频。案例是有一个共享按钮,我不希望它在那里。目前,流媒体提供商不允许用户禁用它。

enter image description here

我也试过在jwplayer上播放视频,但他们不支持它,这是因为一些跨域限制。所以我在想Javascript是否有能力为我删除按钮。如果没有,有人可以给我一些替代品吗?

这是我生成的嵌入标记

<object width="320" height="260">
<param name="flashvars" value="autoplay=false&amp;vid=1234" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.ustream.tv/flash/viewer.swf" />
<embed 
    flashvars="autoplay=false&amp;vid=1234" 
    width="320" 
    height="260" 
    allowfullscreen="true" 
    allowscriptaccess="always" 
    src="http://www.ustream.tv/flash/viewer.swf" 
    type="application/x-shockwave-flash" />
</object>

1 个答案:

答案 0 :(得分:1)

除非播放器有某种ExternalInterface API供您使用(不太可能),否则您无法通过JavaScript隐藏按钮。您可以将其整个播放器加载到您自己的另一个swf中,例如使用Loader组件(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html):

var url:String = "http://www.ustream.tv/flash/viewer.swf?autoplay=false&vid=1234";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);

玩家加载后,您可以通过加载器的content属性访问它。访问权限可能取决于swf的版本和安全设置,您可能需要在加载网址请求之前设置LoaderContext的安全域和应用域。

假设您可以访问加载的swf,则需要沿着DisplayObjects树向下走,直到找到要隐藏的按钮。这可能是一个反复试验的案例。一旦你完成它,只需设置visible=false;

或者,您可以使用CSS在按钮顶部放置一些彩色DIV。但是,这看起来不太可能。