1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <script type="text/javascript"> function rightClick(){ var el = document.getElementById("dd"); if(el.addEventListener){ el.addEventListener("mousedown",function(event){ if(event.button == 2){ event.stopPropagation(); //for firefox event.preventDefault(); //for chrome thisMovie("FlashID").jsToFlash(event.layerX+" "+event.layerY); } },true); }else{ el.attachEvent("onmousedown",function(){ if(event.button == 0 || event.button == 2){ el.setCapture(); } }); el.attachEvent("onmouseup",function(){ el.releaseCapture(); }); el.oncontextmenu = function(){ thisMovie("FlashID").jsToFlash(event.offsetX+" "+event.offsetY); return false; }; } } function clicked(){ thisMovie("FlashID").jsToFlash("abel"); } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } </script> </head> <body onload="rightClick()"> <div id="dd" style="width:550px;height:400px;position:relative;float:left;"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="FlashID" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"> <param name="movie" value="tt.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="wmode" value="opaque" /> <embed src="tt.swf" quality="high" width="550" height="400" name="FlashID" wmode="opaque" quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> </embed> </object> </div> <input type="button" value="button" onclick="clicked()" /> |
昨晚的问题已经解决了。。
目前已经完美支持IE Firefox Chrome等浏览器
并实现在当右键点下时,往Flash中发送信息
此应用可以尽情扩展。。
如此以来就可以在Flash中生成自己的右键菜单了。。哇哈哈。。
不过 各位最好不要用swfobject.js或者DW CS4之类的嵌Flash
我不知道哪里问题 反正之前都是用DW CS4直接嵌入Flash的
但是就FF就一直兼容不了。。
显示是没问题 但是交互的话 估计没有embed标签 在FF下就无法找到FLASH对象了。。
所以还是原始一点吧。。
还有就是 用JS取html中的元素用getElementById这个方法是可以
但取FLASH就不行了。。涉及到要调用Flash里方法的就得用thisMovie这一类兼容性强一点的方法了。。
No related posts.