flash使用FlashVars接收html参数
上一篇 / 下一篇 2007-07-18 13:28:56 / 个人分类:技术交流
方法一:在网页中使用js,SetVariable设置flashobject中的变量,代码如:
T&} QomwW0// "HtmlToSwf"为网页中的flashobject ID中国经济网 经济博客/g!T S7ut
HtmlToSwf.SetVariable("_root.info_str","Happy Newyear");中国经济网 经济博客3?P,Y,_+b-b-x
方法二:路径参数,如test.swf?foo=happy2005中国经济网 经济博客 t:c WF#T&Nj
方法三:使用FlashVars,以下主要介绍FlashVars的用法。使用FlashVars后嵌入HTML的flashobject代码如下:中国经济网 经济博客 I{ F$QAt}|Kh
<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">
,Z*\cF.onI0<param name="allowScriptAccess" value="sameDomain" />中国经济网 经济博客o"h.k \ A b3w
<param name="movie" value="FlashVars.swf" />中国经济网 经济博客y\ew p-Xv[1]
<param name="FlashVars" value="foo=happy2005&program=flash&language=简体中文-中国" />中国经济网 经济博客9WGjRD,h
<param name="quality" value="high" />中国经济网 经济博客3M)V7e5z4t1J/@w
<param name="bgcolor" value="#ffffff" />
$L5C5J~+i-Q0<embed src="FlashVars.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars="foo=happy2005&program=flash&language=简体中文-中国" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
,U$Dk`p7p Z0
6PA0vOb(b`#m0通过上面的代码,在SWF(FlashVars.swf)中就可以直接获取foo、program、language变量数据。FlashVars.fla获取FlashVars参数的代码如下:
BhR+u0mY0// 创建三个文本字段
Q5A6o9vU0_root.createTextField("foo_txt",1,0,0,16,16);
8z;J,JS,b_0_root.createTextField("program_txt",2,0,32,16,16);中国经济网 经济博客F@OZso X9D b/xe
_root.createTextField("language_txt",3,0,64,16,16);
$aT@Pl/F;k*R0foo_txt.autoSize = true;中国经济网 经济博客AM0@s!};B!d!H$d7x
foo_txt.border = true;中国经济网 经济博客 n1Ez/c W%Az
program_txt.autoSize = true;中国经济网 经济博客R Ztayr`
program_txt.border = true;
4}(iR;O'dd0language_txt.autoSize = true;
.n%p Y$ANQ I*sO|0language_txt.border = true;中国经济网 经济博客!FgE:wz$lbO
// 获取FlashVars变量
y{)^GR|;FC C0foo_txt.text = "HTML中的foo参数:"+foo;
~__5VTMvDJ0program_txt.text = "HTML中的program参数:"+program;
$]k9{YY*|)J{8\0language_txt.text = "HTML中的language参数:"+language;中国经济网 经济博客|DE RA D
中国经济网 经济博客 L%B2Wl`S5mx
三、两者的有效结合。中国经济网 经济博客-XjTyL+Hp
在HTML网页中使用js获取参数,然后将获取的参数作为FlashVars写入flashobject传递给swf。代码如下:
)A y*U._(J#w0<script. language=javascript>
^$t @;b1T]0fD0<!--中国经济网 经济博客-v4u"yW }gIO [9G
function writeflashobject(parastr) {中国经济网 经济博客&}deW3`(^8zC Y1QR
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\"\>\n");中国经济网 经济博客-eTG.C*v
document.write("<param name=\"allowScriptAccess\" value=\"sameDomain\" /\>\n");
-uZ2L5E/U0^z^0document.write("<param name=\"movie\" value=\"FlashVars.swf\" /\>\n");中国经济网 经济博客)C?;C}q;L*N"X
document.write("<param name=\"FlashVars\" value=\""+ parastr +"\" /\>\n");
d5E0y1lo7{g#Z)b0document.write("<param name=\"quality\" value=\"high\" /\>\n");
(U+`:qZ9@c7S0document.write("<param name=\"bgcolor\" value=\"#ffffff\" /\>\n");
.p^-IMT.ll;m4E0document.write("<embed src=\"FlashVars.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\" /\>");
\|1T%J\b0v0document.write("</object\>");
*c Q#@#G6io0}
\ [n,`9G9QR&u0function getparastr() {中国经济网 经济博客y!q"?9Hb)aIN]
var hrefstr,pos,parastr,para,tempstr1;中国经济网 经济博客/jY+[/V!KnY_ D
hrefstr = window.location.href;
\,K(B-X!y0m0pos = hrefstr.indexOf("?")
S1Q8@c[m6N1ha0parastr = hrefstr.substring(pos+1);中国经济网 经济博客[Ax t*_9Pr]j
return parastr;
1zU d-w*LG.w Kk0}中国经济网 经济博客m\4w9_X'O vu
var parastr = getparastr();中国经济网 经济博客c0?Cs5Xd6b9G
writeflashobject(parastr);
T&} QomwW0// "HtmlToSwf"为网页中的flashobject ID中国经济网 经济博客/g!T S7ut
HtmlToSwf.SetVariable("_root.info_str","Happy Newyear");中国经济网 经济博客3?P,Y,_+b-b-x
方法二:路径参数,如test.swf?foo=happy2005中国经济网 经济博客 t:c WF#T&Nj
方法三:使用FlashVars,以下主要介绍FlashVars的用法。使用FlashVars后嵌入HTML的flashobject代码如下:中国经济网 经济博客 I{ F$QAt}|Kh
<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">
,Z*\cF.onI0<param name="allowScriptAccess" value="sameDomain" />中国经济网 经济博客o"h.k \ A b3w
<param name="movie" value="FlashVars.swf" />中国经济网 经济博客y\ew p-Xv[1]
<param name="FlashVars" value="foo=happy2005&program=flash&language=简体中文-中国" />中国经济网 经济博客9WGjRD,h
<param name="quality" value="high" />中国经济网 经济博客3M)V7e5z4t1J/@w
<param name="bgcolor" value="#ffffff" />
$L5C5J~+i-Q0<embed src="FlashVars.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="sameDomain" FlashVars="foo=happy2005&program=flash&language=简体中文-中国" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
,U$Dk`p7p Z0
6PA0vOb(b`#m0通过上面的代码,在SWF(FlashVars.swf)中就可以直接获取foo、program、language变量数据。FlashVars.fla获取FlashVars参数的代码如下:
BhR+u0mY0// 创建三个文本字段
Q5A6o9vU0_root.createTextField("foo_txt",1,0,0,16,16);
8z;J,JS,b_0_root.createTextField("program_txt",2,0,32,16,16);中国经济网 经济博客F@OZso X9D b/xe
_root.createTextField("language_txt",3,0,64,16,16);
$aT@Pl/F;k*R0foo_txt.autoSize = true;中国经济网 经济博客AM0@s!};B!d!H$d7x
foo_txt.border = true;中国经济网 经济博客 n1Ez/c W%Az
program_txt.autoSize = true;中国经济网 经济博客R Ztayr`
program_txt.border = true;
4}(iR;O'dd0language_txt.autoSize = true;
.n%p Y$ANQ I*sO|0language_txt.border = true;中国经济网 经济博客!FgE:wz$lbO
// 获取FlashVars变量
y{)^GR|;FC C0foo_txt.text = "HTML中的foo参数:"+foo;
~__5VTMvDJ0program_txt.text = "HTML中的program参数:"+program;
$]k9{YY*|)J{8\0language_txt.text = "HTML中的language参数:"+language;中国经济网 经济博客|DE RA D
中国经济网 经济博客 L%B2Wl`S5mx
三、两者的有效结合。中国经济网 经济博客-XjTyL+Hp
在HTML网页中使用js获取参数,然后将获取的参数作为FlashVars写入flashobject传递给swf。代码如下:
)A y*U._(J#w0<script. language=javascript>
^$t @;b1T]0fD0<!--中国经济网 经济博客-v4u"yW }gIO [9G
function writeflashobject(parastr) {中国经济网 经济博客&}deW3`(^8zC Y1QR
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\"\>\n");中国经济网 经济博客-eTG.C*v
document.write("<param name=\"allowScriptAccess\" value=\"sameDomain\" /\>\n");
-uZ2L5E/U0^z^0document.write("<param name=\"movie\" value=\"FlashVars.swf\" /\>\n");中国经济网 经济博客)C?;C}q;L*N"X
document.write("<param name=\"FlashVars\" value=\""+ parastr +"\" /\>\n");
d5E0y1lo7{g#Z)b0document.write("<param name=\"quality\" value=\"high\" /\>\n");
(U+`:qZ9@c7S0document.write("<param name=\"bgcolor\" value=\"#ffffff\" /\>\n");
.p^-IMT.ll;m4E0document.write("<embed src=\"FlashVars.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\" /\>");
\|1T%J\b0v0document.write("</object\>");
*c Q#@#G6io0}
\ [n,`9G9QR&u0function getparastr() {中国经济网 经济博客y!q"?9Hb)aIN]
var hrefstr,pos,parastr,para,tempstr1;中国经济网 经济博客/jY+[/V!KnY_ D
hrefstr = window.location.href;
\,K(B-X!y0m0pos = hrefstr.indexOf("?")
S1Q8@c[m6N1ha0parastr = hrefstr.substring(pos+1);中国经济网 经济博客[Ax t*_9Pr]j
return parastr;
1zU d-w*LG.w Kk0}中国经济网 经济博客m\4w9_X'O vu
var parastr = getparastr();中国经济网 经济博客c0?Cs5Xd6b9G
writeflashobject(parastr);