有许多参数可以添加到object
和embed
标签中以嵌入Flash视频。大部分被列出here。其中一些可通过ActionScript以编程方式进行访问/更改(例如<param name="scale">
可通过stage.scaleMode
访问)。有没有办法从ActionScript中检查循环参数的值?
可以访问/更改loop
参数的值吗?
编辑补充:我知道关于flashvars,那不是我要求的。
有许多参数可以添加到object
和embed
标签中以嵌入Flash视频。大部分被列出here。其中一些可通过ActionScript以编程方式进行访问/更改(例如<param name="scale">
可通过stage.scaleMode
访问)。有没有办法从ActionScript中检查循环参数的值?
可以访问/更改loop
参数的值吗?
编辑补充:我知道关于flashvars,那不是我要求的。
一般的网络共识是否定的,你不能访问除flashvars/movie之外的参数。
但是,至少在某些浏览器中,您可以从JavaScript访问参数 - 当然,您也可以使用外部接口在Flash和JavaScript之间进行交互。
也许沿线的JavaScript例程:
function getParam(paramName) {
return $('#flashid param[name=' + paramName + ']').val();
}
随着闪存的方法:
import flash.external.ExternalInterface;
function getParam(paramName:String):String {
return String(ExternalInterface.call("getParam", paramName));
}
显然确保脚本访问的SWF和对象/嵌入启用。
“loop
参数的值可以通过ActionScript访问/更改吗?”
简短回答:不要打扰。
龙答:
@ Orbling的答案依赖于通过JavaScript,这在理论上是不一致的状态,如果添加或添加了嵌入式Flash视频时,从取出的参数检查。
我想了一个间接的方法来检查播放或循环参数是否设置。只有在根视频中有两个或更多帧时才能检测参数。
第一帧
if (temp.loadParams.playParam)
{
temp.loadParams.loopParam = true;
//uses external interface to log to the console (essentially the same as trace)
temp.say('temp: looped');
stop();
}
第二帧
if (!temp.loadParams.playParam)
{
temp.loadParams.playParam = true;
temp.say('temp: played');
}
temp
是文档类名,loadParams只是一个静态的对象来存储帕拉姆状态。如果参数play
为真,则视频将转到第2帧,该帧设置playParam
值。如果loop
参数为true,则视频将返回到帧1,该帧设置值为loopParam
。
如果play
是假的,loop
仍然可以使用一些花式步法与Event.ENTER_FRAME
,但在这一点上,这是荒谬的,继续为可以简单地通过play();
或stop();
在第一或最后一帧被覆盖的参数检查值来进行检测。
我可能是错的,但我90%确定AS没有等效的循环 - 只是因为它不需要循环。你想完成什么,也许我可以指出你正确的方向。 – Zevan 2010-11-24 23:09:19
我试图找出哪些参数*可以*从AS访问,以保持我的程序[DRY](http://en.wikipedia.org/wiki/DRY)。另外,我希望能够在几个不同的程序中使用闪存的内置参数。我90%确定他们无法直接访问。 – zzzzBov 2010-11-26 17:23:30
@downvoter,关心评论? – zzzzBov 2011-09-30 21:51:46