【发布时间】:2011-09-02 09:58:32
【问题描述】:
这让我发疯了。我过去曾与 SWFObject 合作过,这很棒。但是我有一个不使用 JavaScript 的要求。因此,当我尝试在网上做 flashvars 示例时,它们似乎对我不起作用。
重复步骤:
1) 使用 Flex 或 Flash Builder 创建一个纯 AS3 项目
2) 在 index.html 中任何有 .swf 的地方,添加名称值对后缀。 test.swf?foo=bar
3) 在主类Sprite的构造函数中,trace(root.loaderInfo.parameters.foo)。
预期:条形,但跟踪为未定义
我已经尝试 setTimeout() 来评估未来 5 秒,但仍然无法正常工作,就好像它根本没有加载一样。
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="${width}" height="${height}" id="${application}">
<param name="movie" value="${swf}.swf?foo=bar" />
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="${swf}.swf?foo=bar" width="${width}" height="${height}">
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--<![endif]-->
<!--[if gte IE 6]>-->
<p>
Either scripts and active content are not permitted to run or Adobe Flash Player version
${version_major}.${version_minor}.${version_revision} or greater is not installed.
</p>
<!--<![endif]-->
<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>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</noscript>
AS3
package
{
import flash.display.LoaderInfo;
import flash.display.Sprite;
public class FlashVarsTest extends Sprite
{
public function FlashVarsTest()
{
var paramsObj:Object =
LoaderInfo(root.loaderInfo).parameters;
trace("foo="+paramsObj["foo"]);
}
}
}
这也不起作用:
package
{
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.Event;
public class FlashVarsTest extends Sprite
{
public function FlashVarsTest()
{
this.addEventListener(Event.ADDED_TO_STAGE, init)
}
private function init(event:Event):void
{
var paramsObj:Object =
LoaderInfo(root.loaderInfo).parameters;
trace("foo="+paramsObj["foo"]);
}
}
}
【问题讨论】:
-
按预期工作
-
<object type="application/x-shockwave-flash" data="${swf}.swf?=foobar" -
修复了,还是不行
标签: actionscript-3