在html页面中使用swf,as调用js的函数没有被调用??

Nina_Nina_Nina 2012-06-26 10:09:15
RT!我的浏览器是chorme;
as中有一个回调函数asfunc();

if(ExternalInterface.available)
{
ExternalInterface.addCallback("asfunc",JStoAS);
ExternalInterface.call("asready");
trace("ExternalInterface.available==true");
}
else
{
trace("ExternalInterface.available==false");
}

但是,我在我的js脚本中调用asfunc()

function asf(webstr,realwebstr,para)
{
if (navigator.appName.indexOf("Microsoft") != -1)
{
window["aaa"].asfunc(webstr,realwebstr,para);
}
else
{
var f1=document.getElementById("aaa");
f1.asfunc(webstr,realwebstr,para);
}
}

我看第二个错误的提示大概就是我在as中注册的asfunc有时候不能被js正常调用。

PS1:asfunc不能被调用出现的频率大概是20%左右;
PS2:我觉得我把核心的代码都贴上去了,没有贴完整的代码是因为太多了,相信太多的代码大家也没有太多的时间看,我觉得这些代码足够能表达我的思想感情啦。
PS3:js调用as的函数,有时候调用不成功这是两者之间一直就存在的问题还是我的思维有误差?? 我记得在论坛中大家讨论过as和js相互调用的时候,返回值又能会丢。
PS4:谢谢大家!
...全文
654 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainkop 2013-10-12
  • 打赏
  • 举报
回复
请问这个问题是怎么解决的?我也碰到了同样的问题
Nina_Nina_Nina 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你需要在页面判断flash 是否加载完成,如果flash没有加载完成则会 报找不到方法的异常,这是正常的。
建议就是用 定时器定时调用方法、在抛出异常后重新调用该方法 或者直接通过url给 flash 进行传参,来进行处理就OK 了,
JScript code

var movie = document.getElementById("flashID");
var……
[/Quote]

哦,是这样子的,我在swf加载完之后,才进行asf()调用的。
luito 2012-06-27
  • 打赏
  • 举报
回复
你需要在页面判断flash 是否加载完成,如果flash没有加载完成则会 报找不到方法的异常,这是正常的。
建议就是用 定时器定时调用方法、在抛出异常后重新调用该方法 或者直接通过url给 flash 进行传参,来进行处理就OK 了,

var movie = document.getElementById("flashID");
var nPercentLoaded = Math.abs(movie.PercentLoaded());

if (nPercentLoaded == 100)//值等于100 说明flash加载完毕
{
}
Nina_Nina_Nina 2012-06-26
  • 打赏
  • 举报
回复
图片怎么看不到呢??
图片的提示语句是:Uncaught TypeError: Object #<HTMLObjectElement> has no method 'asfunc'

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧