[英]How to detect when a Flash movie gets focus in Javascript code?
是否可以創建這樣的事件? 如果是,怎么辦?
Flash電影的標記類似於下一個。 無需更改Flash電影的ActionScript代碼。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="32" height="32">
<param name="movie" value="file://test.swf">
<param name="quality" value="high">
<embed src="file://test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="32" height="32">
</embed>
</object>
是的,您可以使用JavaScript進行操作。
首先,使用swfobject處理跨瀏覽器Flash問題是一個好主意。 這是一個用於控制SWF對象的JavaScript庫。 您可以在這里下載: https : //code.google.com/p/swfobject/downloads/list
基本示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject - low level dynamic publishing example</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
if (swfobject.hasFlashPlayerVersion("6.0.0")) {
var fn = function() {
var att = { data:"test.swf", width:"780", height:"400" };
var par = { flashvars:"foo=bar" };
var id = "replaceMe";
var myObject = swfobject.createSWF(att, par, id);
};
swfobject.addDomLoadEvent(fn);
}
</script>
</head>
<body>
<div id="replaceMe">Alternative content</div>
</body>
</html>
接下來,只需在att變量中使用id擴展示例,如下所示:
var att = { data:"test.swf", width:"780", height:"400", id:"myId" };
您可以使用getElementById()
或jQuery選擇器$("#myId")
訪問對象
然后將事件附加到焦點上,如下所示:
jQuery :(推薦)
$('#myId').focus(function() {
alert('SWF is in focus');
});
要么
標准:
object.onfocus=function(){ alert('SWF is in focus'); }
您可以將播放器放在div中,然后使用javascipt選擇div。 這里還有更多信息: https : //github.com/englandrp/Cross-browser-Flash-tabbing-and-focus-solution
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.