我在jsp中写了一个js方法,希望通过该方法调用flex中的某一个方法,具体代码如下所示:(jsp的页面是通过action跳转过来的)
<script type="text/javascript">
function addMethod()
{
alert(document.getElementById("login").width);
var s= document.getElementById("login").addTo100(2);
alert(s);
}
</script>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="login" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="login.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="login.swf" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="login" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</head>
<%@ include file="../../../public/base.jsp" %>
<body marginwidth="0" marginheight="0" oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onbeforecopy="return false" >
--------------------------------------------------------------------------
<a href="#" onclick="addMethod()" >进入会场 </a>
Flex(login.mxml)代码如下:
public function init():void{
ExternalInterface.addCallback("addTo100",add);
}
public function add(ss:int):int{
var i:int;
var sum:int=0;
for(i=1;i<=ss;i++)
{
sum+=i;
}
return sum;
}
但是在点击按钮后,老提示网页错误:对象不支持此属性或者方法,我的sdk为3.2版本的,ie用的7.0,flex编译后的东西和jsp页面在同一目录下
<script type="text/javascript">
function addMethod()
{
alert(document.getElementById("login").width);
var s= document.getElementById("login").addTo100(2);
alert(s);
}
</script>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="login" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="login.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="login.swf" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="login" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</head>
<%@ include file="../../../public/base.jsp" %>
<body marginwidth="0" marginheight="0" oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onbeforecopy="return false" >
--------------------------------------------------------------------------
<a href="#" onclick="addMethod()" >进入会场 </a>
Flex(login.mxml)代码如下:
public function init():void{
ExternalInterface.addCallback("addTo100",add);
}
public function add(ss:int):int{
var i:int;
var sum:int=0;
for(i=1;i<=ss;i++)
{
sum+=i;
}
return sum;
}
但是在点击按钮后,老提示网页错误:对象不支持此属性或者方法,我的sdk为3.2版本的,ie用的7.0,flex编译后的东西和jsp页面在同一目录下
{
alert(document.getElementById("login").width);
var s= document.getElementById("login").addTo100(2);
alert(s);
}
改成
function addTo100(num)
{
alert(document.getElementById("login").width);
var s= document.getElementById("login").addTo100(num);
alert(s);
}
________________________________________________
js:function 函数名
ExternalInterface.addCallback("函数名",add);
这两个函数名要相同的
——————————————————————————
上面说相同的名字错了,可以不相同,
是你的swf没有被加载,建议使用绝对路径
id="login" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="login.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="login.swf" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="login" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
中的凡是.swf的路径全部改成相对路径