【发布时间】:2014-03-04 01:52:35
【问题描述】:
我知道有很多关于这个问题的文章和论坛帖子,其中很多都不起作用并且没有得到答复。有些教程声称他们的代码可以工作,但有些教程没有下载页面,有些教程有下载页面,链接不起作用。另外,也许有一种新的方法可以做到这一点,并且我发现的代码不再受支持。
这是我的代码:HTML 和 Javascript
<html>
<head><title>Javascript to SWF</title>
<script language="JavaScript">
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function callToActionscript()
{
getFlashMovie("jscallswf").setMouseXY();
}
callToActionscript();
</script>
</head>
<body style="background:red;">
<body>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="450" id="jscallswf" align="middle" data="jscallswf.swf" style="height: 250">
<param name="allowScriptAccess" value="sameDomain">
<param name="allowFullScreen" value="false">
<param name="movie" value="jscallswf.swf">
<param name="quality" value="High"><param name="bgcolor" value="#ffffff">
<embed src="jscallswf.swf" quality="High" bgcolor="#ffffff" width="400" name="jscallswf" align="middle" allowscriptaccess="sameDomain" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" style="height: 250">
</object>
</body>
</body>
</html>
AS3 代码:
import flash.external.ExternalInterface;
ExternalInterface.addCallback("setMouseXY", rotateCam);
function rotateCam()
{
td.text = "NEWTEXT";
}
这是另一种 Javascript 方法:
<html>
<head><title>Javascript to SWF</title>
<style type="text/css">
#jscallswf {
margin:300px;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"> </script>
<script type="text/javascript" src="swfobject.js"></script>
<script language="JavaScript">
// JS Code
// Embedding through SWFObject rocks in comparison with Adobe's garbage:
var flashvars = {};
var params = {};
params.menu = "false";
params.salign = "t";
params.scale = "noscale";
params.wmode = "transparent";
params.allowScriptAccess = "always";
var attributes = {};
attributes.id = "jscallswf";
swfobject.embedSWF("jscallswf.swf", "flashDiv", "274", "246", "9.0.0", "", flashvars, params, attributes);
// Functions needed for calling Flex ExternalInterface
function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1)
{
return window[movieName];
}
else
{
return document[movieName];
}
}
function callFlashMethod()
{
thisMovie("jscallswf").setMouseXY();
}
$(document).ready(function(){
callFlashMethod();
});
</script>
</head>
<body style="background:red;">
<body>
<div id="flashDiv" style="margin:200px;"></div>
</body>
</body>
</html>
在控制台中都返回错误“Uncaught TypeError: Cannot call method 'setMouseXY' of undefined”
【问题讨论】:
-
也许你打电话给他们太早了?
标签: javascript actionscript-3 flash