2009-12-04 86 views
1

如何使用javascript設置Flash(Actionscript 3)變量?
或者是否有可能使用javascript的參數調用flash函數?
我試過document.getElementById('flash').SetVariable("data", "asdf");但它只適用於AS2和AS1。使用Javascript設置Flash(AS3)變量

回答

2

就像LiraNuna說的,你應該使用ExternalInterface與flash進行通信。這裏有最基礎的:

第1步: 做一個功能在閃光,設置變量:

function setVar(value) { 
    somevar = value; 
} 

第2步: 使用ExternalInterface註冊功能:

var connection = ExternalInterface.addCallback("someFunctionName", null, setVar); 

第3步: 打電話給你fu nction從JavaScript來設置變量:

var mySWF = document.getElementById("swfID"); 
mySWF.someFunctionName('some_value'); 

如果你使用SWFObject嵌入您的SWF,另一種更容易的選擇將是addVariable方法:

mySWF.addVariable("var_name", "value"); 
+0

我在使用IE 8時遇到了問題。是「僅適用於好瀏覽器」還是我錯過了某些東西?在Saf/Chrome/FF中可以正常工作 – oskob 2012-07-10 17:46:25

1

SetVariable不再上因爲嚴格的沙拳AS3使用,但它並沒有完全消除,你仍然可以更換

SetVariable("varName","value") 

通過

FlashVars = "varName=value" 

和訪問通過root.loaderInfo.parameters.varName

但是,我建議使用新的ExternalInterface類,而不是閱讀更多關於它here

+0

個人認爲你應該詳細闡述'ExternalInterface',因爲它是與Flash + JS交互的首選方法。 – 2009-12-04 23:29:17

+0

@dcneiner:我很想去,但是我沒有太多的經驗,所以我把它作爲一個很好的參考。 – LiraNuna 2009-12-05 00:20:51