为什么javascript说没有定义addcallback函数?
我第一次来这里 我的问题是AS3、Javascript,可能还有浏览器Firefox和IE 我已经搜索了很多答案,所以我会打印我的代码: 我用这行代码来调用flash应用程序,在所有浏览器中,它都是可战斗的,实际上是在firebug中跟踪来保存对象->flash\u ID,所以这不是问题所在为什么javascript说没有定义addcallback函数?,javascript,actionscript-3,flash,html,swfobject,Javascript,Actionscript 3,Flash,Html,Swfobject,我第一次来这里 我的问题是AS3、Javascript,可能还有浏览器Firefox和IE 我已经搜索了很多答案,所以我会打印我的代码: 我用这行代码来调用flash应用程序,在所有浏览器中,它都是可战斗的,实际上是在firebug中跟踪来保存对象->flash\u ID,所以这不是问题所在 var obj = document.getElementById('test'); 然后我使用addcallback: obj.sendStatus(loggedIn); 奇怪的是,我用chrome和
var obj = document.getElementById('test');
然后我使用addcallback:
obj.sendStatus(loggedIn);
奇怪的是,我用chrome和
我很困惑。。而且感觉很简单。我知道一些与浏览器相关的计时问题,使flash对象的界面可用 计时器可能会有所帮助,请尝试以下操作:
var obj = document.getElementById('test');
setTimeout(function(){obj.sendStatus(loggedIn);}, 500);
500有点长,但只是为了确定。如果它起作用,你可以试着把它降低到200-300
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
问题在于,使用
外部接口
需要双方(浏览器
和闪存
)准备就绪
您可以在页面中使用flash poll a方法,该方法只返回true,以便您知道它已准备好接收来自flash的调用
另一方面,如果页面被缓存,有时可能会发生页面希望在flash准备就绪之前发送到flash的情况,因此我使用对页面的回调来告诉它flash准备就绪,这就像握手一样,一旦双方都准备就绪,我们就可以开始来回发送数据
这是我从Firefox3开始就采用的方法。好吧,我试过了,但它不起作用;它让我想到-ExternalInterface.available只是检查它所在的容器是否是html文档,所以我知道使用$(document.ready()和$(window.load)(…但是flash可以在DOM准备好之前访问它吗?嗯..我不太理解你。但是另一件事,这可能是一个日志记录问题,你确定没有调用该方法吗?是的,该方法,我假设你指的是回调;它是在Firefox和Chrome中调用的,但不是IE-你所说的日志记录是什么意思?我的意思是可能会在那里在DOM准备就绪之前,flash player是否会调用javascript?是否会在javascript准备就绪之前加载flash元素?当文档准备就绪时,您只需确保您正在访问flash对象,这是一个DOM元素。而且该对象使其javascript接口可用似乎也存在时间问题,这就是为什么我建议使用计时器。但是你测试了它,它不起作用。在你最初的帖子中,你说它在firefox和ie中不起作用,这里你说它只在ie中起作用-这是真的吗?我的问题是,你确定回调没有在flash中执行吗?你调试过它吗,你在方法中添加了跟踪吗?嘿,lxx回调没有执行,因为元素是未定义的,flash bug也证实了这一点。我刚刚让它在Firefox中工作的方式是,我删除了object中的object,而只是使用imbed,它决定在Firefox中工作,而不是IE。因此IE是唯一一个说它是未定义元素的浏览器