Javascript可以';t调用函数中的对象

Javascript可以';t调用函数中的对象,javascript,Javascript,对不起,我是javascript新手。我试图从函数内部调用一个对象,以允许我以设定的间隔从flash文件中获取一个变量。由于某些原因,对象在计时器函数内不工作 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&

对不起,我是javascript新手。我试图从函数内部调用一个对象,以允许我以设定的间隔从flash文件中获取一个变量。由于某些原因,对象在计时器函数内不工作

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>DIY Map</title>

<style>
 * { margin:0; padding:0; }
</style>

</head>
<body style="font-family:verdana;color:#999; background-image:url('bg.png'); background-repeat:no-repeat;">

<script type="text/javascript" src="js/JavaScriptFlashGateway.js"></script>
<script type="text/javascript" src="js/Exception.js"></script>
<script type="text/javascript" src="js/FlashTag.js"></script>
<script type="text/javascript" src="js/FlashSerializer.js"></script>
<script type="text/javascript" src="js/FlashProxy.js"></script>



<script type="text/javascript">
 var uid = new Date().getTime();
 var flashProxy = new FlashProxy(uid, 'js/JavaScriptFlashGateway.swf');
    var tag = new FlashTag('world.swf?data_file=data.xml, 600, 325);
    tag.setFlashvars('lcId='+uid);
    tag.write(document);


</script>

//flashProxy.call works here:
<p><a href="javascript:flashProxy.call('zoomOut');">Zoom Out</a>

<a href="javascript:flashProxy.call('refreshData','other_data.xml');">Get new data</a>

<p><a href="javascript:flashProxy.call('getZoom');">getZoom</a> | <a href="javascript:flashProxy.call('getCoords');">getCoords</a></p>



<script type="text/javascript">
// Start the refreshing process

var seconds = 3;
var zoom;
var coords;

//timer loop
function checkmap()
{
//flashProxy doesn't work here
flashProxy.call('getCoords');     
flashProxy.call('getZoom');   
alert (coords);
alert (zoom);    


setTimeout('checkmap()',seconds * 1000);
}
checkmap();



//Returns results here:
function gotCoords(n)
{
    coords = n;
}
function gotZoom(n)
{
    zoom = n;   
}
</script>

DIY地图
*{边距:0;填充:0;}
var uid=new Date().getTime();
var flashProxy=newflashproxy(uid,'js/JavaScriptFlashGateway.swf');
var tag=newflashtag('world.swf?data_file=data.xml,600325);
tag.setFlashvars('lcId='+uid);
标记、书写(文件);
//flashProxy.call在此处工作:

|

//启动刷新过程 var秒=3; 变焦; var-coords; //定时器环路 函数checkmap() { //flashProxy在这里不起作用 flashProxy.call('getCoords'); flashProxy.call('getZoom'); 警惕(协调); 警报(缩放); setTimeout('checkmap()',秒*1000); } checkmap(); //在此处返回结果: 函数gotCoords(n) { coords=n; } 函数gotZoom(n) { 缩放=n; }

为了澄清,我正在尝试让
flashProxy.call('**')
checkmap()函数中工作。提前感谢。

您知道源代码中有一个额外的/未关闭的脚本标记吗?这会引起问题

<script type="text/javascript"> // This is your opening tag




<script type="text/javascript"> // Oops, this is parsed by the script engine
 var uid = new Date().getTime(); 
 var flashProxy = new FlashProxy(uid, 'js/JavaScriptFlashGateway.swf'); 
    var tag = new FlashTag('world.swf?data_file=data.xml, 600, 325); 
    tag.setFlashvars('lcId='+uid); 
    tag.write(document); 


</script> 

我发现了问题。。。这是因为没有计时器来启动inital flashproxy.call,它在加载flash之前正在执行。我刚换了

checkmap();
和另一个

setTimeout('checkmap()',seconds * 1000); 

无论如何,谢谢大家

你应该问一个问题,我正在尝试获取flashProxy。调用('**')在checkmap()函数中工作有很多代码(在我们看不到的引用文件中有很多代码)…并且“不工作”不是对问题的有用描述。发生的事情与您期望发生的事情有何不同?显示了哪些错误消息(别忘了检查JS控制台)?好的。。。很抱歉控制台中没有错误。我正在尝试每x秒从flash地图获取当前的缩放级别和坐标。最奇怪的是在IE中。。。每3秒它就会发出“未定义”警报。。。然而在firefox中,前3个警报是“未定义的”。。。我相信flash代理是由“Macromedia”(必须是旧的)编写的标准代码,用于Javascript和flash之间的通信。使用flashProxy.call,它发出请求,然后返回到gotCoords或gotZoom…哎呀,我的错误。。。这是因为我整理了我的代码,以便在此处演示:P无论如何,谢谢:)
setTimeout('checkmap()',seconds * 1000);