2011-08-10 10 views
0

私は1つのswfを埋め込んでいます3つの回video.swfという名前です。javascriptを使用してswfの名前を取得するには?

SWFの名前がビデオ1VIDEO2VIDEO3です。

swfを再生すると、現在再生中のswfの名前を取得したいのですか?

可能ですか?

私は通信にjavascriptを使用しています。

+0

を少し曖昧です:まず、SWF間の通信について述べておきますが、現在再生しているSWF名を取得したいと述べています。あなたは明確にしていただけますか?また、あなたはどんな名前を指していますか? SWFファイル名?乾杯。 – amn

+0

あなたは今私を得ることができますか? – Benny

+0

本当にありませんが、私はあなたに大きな脂肪の答えを与え、そこから踊ることができます。 – amn

答えて

1

私はこのプロジェクトにworkのために非常に似た何かをしなければならなかったSwatch/MTV(ページに複数の埋め込みプレーヤーを有する唯一の演奏一度に1つのクリップ(別のクリップを再生する、他の人が一時停止するなど)

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(); 
      } 

私は、私が以前にZEHフェルナンドの優秀なガイドを使用して(ActionScriptで作成されたJSを実行する)知りませんでした小ぎれいなトリック使ってきたIDを取得する:あなたの質問Getting the SWF’s HTML object/embed id from within the Flash movie itself

HTH

1

同じswfファイルを3回使用している場合、swfにどのインスタンスが(video1、video2、またはvideo3)かを知らせるためにflash varを渡す必要があります。次に、video.swfインスタンスの再生が開始されると、AS3のExternalInterfaceを使用してJavaScriptを呼び出し、そのSWFインスタンスを現在再生中のものとしてマークします。あなたはこのようにJavaScriptでのFlashVarsを設定することができ、ページ内のSWFを埋め込むためにSWFObjectを使用し

:それぞれのswf内

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, {}, {}); 

は、あなたが今にLoaderInfoを介してアクセスすることができる「名前」、VARがあるでしょう:

var name:String = LoaderInfo(this.root.loaderInfo).parameters.name; 

そして、あなたはそのようにフラッシュからのExternalInterfaceを呼び出します。

ExternalInterface.call("videoPlaying", name); 

これは、引数として名前で「videoPlaying」と呼ばれるJavaScript関数を呼び出します。

function videoPlaying(name) { 
    // do something with the name arg 
} 
+0

私はflashVarsについて考えなかった.... gr8 ....ありがとう。 – Benny

関連する問題