当页面通过URL来传递参数时(page.html?id=123&name=aaa),可以在包含swf的html网页中先用javascript从url中截取包含参数的字符串,以FlashVar的形式传给swf,而在Flex中可以直接使用this.parameters.参数名来获取参数的值.
Sample:
html页面代码:
<
html
>
< body >
< script language =javascript >
function writeflashobject(parastr) {
document.write( " <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="FlashVars" align="middle"> " );
document.write( " <param name="allowScriptAccess" value="sameDomain" /> " );
document.write( " <param name="movie" value="useLib.swf" /> " );
document.write( " <param name="FlashVars" value=" " + parastr + " " /> " );
document.write( " <param name="quality" value="high" /> " );
document.write( " <param name="bgcolor" value="#ffffff" /> " );
document.write( " <embed src="useLib.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars=" " + parastr + " " type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> " );
document.write( " </object> " );
}
function getparastr() {
var hrefstr,pos,parastr,para,tempstr1;
hrefstr = window.location.href;
pos = hrefstr.indexOf( " ? " )
parastr = hrefstr.substring(pos + 1 );
return parastr;
}
var parastr = getparastr();
writeflashobject(parastr);
</ script >
</ body >
</ html >
< body >
< script language =javascript >
function writeflashobject(parastr) {
document.write( " <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="FlashVars" align="middle"> " );
document.write( " <param name="allowScriptAccess" value="sameDomain" /> " );
document.write( " <param name="movie" value="useLib.swf" /> " );
document.write( " <param name="FlashVars" value=" " + parastr + " " /> " );
document.write( " <param name="quality" value="high" /> " );
document.write( " <param name="bgcolor" value="#ffffff" /> " );
document.write( " <embed src="useLib.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars=" " + parastr + " " type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> " );
document.write( " </object> " );
}
function getparastr() {
var hrefstr,pos,parastr,para,tempstr1;
hrefstr = window.location.href;
pos = hrefstr.indexOf( " ? " )
parastr = hrefstr.substring(pos + 1 );
return parastr;
}
var parastr = getparastr();
writeflashobject(parastr);
</ script >
</ body >
</ html >