我已经嵌入了一个名为video.swf的单个swf 三次次。
swfs名称为 video1 , video2 和 video3 。
如果我打瑞士法郎,我想获得当前正在播放的瑞士法郎的名字?
有可能吗?
我正在使用javascript进行交流。
答案 0 :(得分:1)
如果您使用相同的swf文件三次,则必须传入flash var以让swf知道它是哪个实例(video1,video2或video3)。然后当video.swf实例开始播放时,使用AS3的ExternalInterface来调用JavaScript并将该swf实例标记为当前正在播放的实例。
使用SWFObject将swfs嵌入到页面中,您可以在JavaScript中设置flashvars,如下所示:
var flashvars1 = {
name: "video1",
};
swfobject.embedSWF("video1.swf", "flashContent1", "640", "480", "10.0.0", false, flashvars1, {}, {});
var flashvars2 = {
name: "video2",
};
swfobject.embedSWF("video2.swf", "flashContent2", "640", "480", "10.0.0", false, flashvars2, {}, {});
var flashvars3 = {
name: "video3",
};
swfobject.embedSWF("video3.swf", "flashContent3", "640", "480", "10.0.0", false, flashvars3, {}, {});
在每个swf中你现在都有一个'name'var,可以通过LoaderInfo访问:
var name:String = LoaderInfo(this.root.loaderInfo).parameters.name;
你可以像这样从Flash调用ExternalInterface:
ExternalInterface.call( "videoPlaying", name );
这将调用一个名为'videoPlaying'的JavaScript函数,其名称为参数:
function videoPlaying(name) {
// do something with the name arg
}
答案 1 :(得分:1)
我必须在work的项目上为Swatch/MTV执行非常类似的操作(在页面上有多个嵌入式播放器并且一次只播放一个剪辑(播放不同的剪辑,会暂停其他等) e.g。
var vids = ['video/file/72066f40bfcaea46e10460585b4e4bcb.mp4','video/file/3d5db6b87f9cdacb016c9c55afed1e08.mp4','video/file/c18b04a1a548cbf20609de70a106d7cc.mp4','video/file/4568a11f3f6a7ff467a85fefe2ac08e6.mp4','video/file/b91081d37a81692194c0e34580958c51.mp4']; for(var i = 0 ; i < vids.length; i++){
var flashvars = {};
flashvars.video_url = 'http://www.swatchmtvplayground.com/'+vids[i];
flashvars.video_id = i;
flashvars.locale = "gb";
flashvars.skin = 'upperBackground:0xf8c3c4,lowerBackground:0xe2e2e2,generalControls:0x000000,slider:0xb58f8f,progress:0xe2e2e2';
var params = {};
var attributes = {};
attributes.id = "mediaplayer"+i;
so = swfobject.embedSWF("http://www.swatchmtvplayground.com/flash/mediaplayer/mediaplayer.swf", "mediaplayer"+i, "578", "345", "10.0.0", false, flashvars, params, attributes);
}
function pauseAllPlayers(exceptThisOne){
for(var i = 0 ; i < vids.length ; i++) if(exceptThisOne != "mediaplayer"+i) document.getElementById("mediaplayer"+i).pause();
}
获取id我使用Zeh Fernando的优秀指南Getting the SWF’s HTML object/embed id from within the Flash movie itself
使用了一个我以前从未了解过的巧妙的小技巧(使用actionscript执行JS)HTH