我在AS端注册了ExternalInterface.addCallback("setVar",onSetVar);这么一个JS回调函数HTML里面的flash代码如下
<object type="application/x-shockwave-flash" data="testCS4_1.swf" width="150" height="69" id="test">
<param name="movie" value="testCS4_1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
</object>JS代码如下:<script>
var flash_ad=new Array();
flash_ad["obj0"]=new Array();
flash_ad["obj1"]=new Array();
flash_ad["time"]=8000;
flash_ad["gotype"]="_blank";
flash_ad["obj0"]["res"]="./tempdhf1.swf";
flash_ad["obj0"]["goto"]="http://www.baidu.com";
flash_ad["obj1"]["res"]="./tempdhf2.swf";
flash_ad["obj1"]["goto"]="http://www.google.com";
document.getElementById("test").setVar(flash_ad);
</script>
现在报错说:serVar不是一个函数。悲剧啊!!!
<object type="application/x-shockwave-flash" data="testCS4_1.swf" width="150" height="69" id="test">
<param name="movie" value="testCS4_1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
</object>JS代码如下:<script>
var flash_ad=new Array();
flash_ad["obj0"]=new Array();
flash_ad["obj1"]=new Array();
flash_ad["time"]=8000;
flash_ad["gotype"]="_blank";
flash_ad["obj0"]["res"]="./tempdhf1.swf";
flash_ad["obj0"]["goto"]="http://www.baidu.com";
flash_ad["obj1"]["res"]="./tempdhf2.swf";
flash_ad["obj1"]["goto"]="http://www.google.com";
document.getElementById("test").setVar(flash_ad);
</script>
现在报错说:serVar不是一个函数。悲剧啊!!!
...
}
{
timeDelay = obj.time;
gotype = obj.gotype;
for (var i:int=0; i< 2; i++)
{
var obj:Object = new Object();
obj.res = String(obj["obj"+i].res);
obj.goto = String(obj["obj"+i].goto);
urlArr.push(obj);
}
firstLoader.unload();
var urlReq:URLRequest = new URLRequest(urlArr[0].res);
firstLoader.load(urlReq); urlReq = new URLRequest(urlArr[1].res);
secendLoader.load(urlReq);
}在AS里这个函数。在接收处理JS传递过来的值
1楼的兄弟,能稍微说明白一点么??对AS我也怎么了解
<param name="allowScriptAccess" value="sameDomain" />
改成:
<param name="allowScriptAccess" value="always" />
你用什么浏览器测试的?
function callMe(name:String):String
{
return "busy signal";
}
ExternalInterface.addCallback("myFunction", callMe);js:
<script language="JavaScript">
// callResult gets the value "busy signal"
var callResult = flashObject.myFunction("my name");
</script>html:
<object id="flashObject"...>
...
<embed name="flashObject".../>
</object>按以上三步来应该不会有问题
var site = {
"4399uid":"7863"
,"userid":"131"
,"username":"mysql3306"
,"currurl":""
,"cztype":0
,"IsTransferScene":0
,"openTreasureStragety":1
,"isUpdataVersion":1
,"preventWallowTime":1000
,"timestamp":"1297686846"
,"serverid":"S26"
,"SourceURL":"http:\/\/yjjh26-s.my4399.com:8080\/"
,"AccSocketIP":"yjjh26-s.my4399.com"
,"AccSocketPort":"8846"
,"swfver":"201102146245"
,"rooturi":"\/"}; var swfurl = 'http://****.my4399.com:8086/GameLoader.swf?v=201102146245';
var so = new SWFObject(swfurl, "flashobj", "1000", "580", "9", "#000000");
so.useExpressInstall('expressinstall.swf');
for(var i in site){
so.addVariable(i,site[i]);
}
so.addParam('allowScriptAccess','always');
so.write("flashobjdiv");