我只是想知道使用静态发布方法SWF-Object,我们可以将flashvars传递给flash swf文件吗?
静态发布方法是
<head>
<title>SWFObject 2 static publishing example page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="embedswf/swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myId", "9.0.0", "embedswf/expressInstall.swf");
</script>
</head>
<body>
<div>
<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="750" flashvars="var1=irfan" params="var1=irfan">
<param name="movie" value="fish.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="fish.swf" width="600" height="750" flashvars="var1=irfan" params="var1=irfan">
<!--<![endif]-->
<div>
<h1>Alternative content</h1>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
但是flashvars和params没有传递给flash文件??
答案 0 :(得分:3)
使用静态发布时,您需要包含<param>
个节点(确保为每个对象包含一个副本):
<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="750">
<param name="movie" value="fish.swf" />
<param name="flashvars" value="var1=irfan&var2=whatever" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="fish.swf" width="600" height="750">
<param name="flashvars" value="var1=irfan&var2=whatever" />
<!--<![endif]-->
<div>
<h1>Alternative content</h1>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
答案 1 :(得分:1)
我认为你问的是,如果你有一个使用SWFObject的静态嵌入式SWF ......这就是真正有意义的唯一方法。在这种情况下答案是肯定的。即使您的嵌入标记是使用PHP或其他东西动态生成的,您仍然可以传递flash变量。最简单的方法是下载并安装swfObject AIR应用程序以生成嵌入标记。
http://code.google.com/p/swfobject/downloads/list
你会看到flashvars的一个区域。它只是键/值对,因此创建一个键“keyname”并用您的数据填充它。然后在主类(或任何地方)内的AS3中,您可以像这样访问这些数据:
root.loaderInfo.parameters.keyname;
因此,假设您有一个名为“myUser”的密钥“userName”。你可以这样:
var uName:String = root.loaderInfo.parameters.userName;
trace(uName);
显然你会想要做一些基本的检查以确保这些对象存在而不是,但这几乎就是你访问flash变量的方式,并且恰好与访问SWF url上的GET变量的方式相同