有許多參數可以添加到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