2012-01-29 62 views
1

我需要使用actionscript 3從flash swf文件執行一些JavaScript字符串代碼。 我讀過它可以通過使用externalinterface.call函數將JavaScript代碼傳遞到父級html文檔來完成。那麼我認爲它會更快,如果我可以在首次使用externalinterface.call函數的HTML文檔中的JavaScript代碼中聲明函數;如果Flash代碼重複調用JavaScript代碼。所以讓我問你如何做到這一點。有關詳細信息,任何要加載的JavaScript在設計時都是未知的,我無法準備要加載的JavaScript文件。如何將JavaScript函數插入到子SWF文件的HTML文檔中?

+0

那你試試?只需在Google上搜索「externalinterface」,即可獲得10個關於如何使用它的教程。 – 2012-01-29 05:37:50

+0

@ Laurent,你可以搜索正確的答案,因爲你知道正確的關鍵字。對我而言,Google搜索中的1000個教程描述瞭如何在html文件中調用javascript函數。如果沒有合適的關鍵詞,找到他們的案例是不可能的。 – 2012-01-29 06:13:55

回答

2

你可以試試這個:

var js:XML = <code><![CDATA[ 
    function() { 
     window.myFunc = function(arg) { 
      alert(arg); 
     } 
    } 
]]></code>; 
ExternalInterface.call(js); 

和以後你可以安全地調用:

ExternalInterface.call("myFunc", "myArgument"); 

注意,使用XML只是舒適地編寫JavaScript代碼(縮進的方式和多行);)

0

僅供參考,或者使用XML對象,您可以使用包含JavaScript代碼的字符串在eval上調用ExternalInterface。

var myJSCode:String = "window.log = function(msg) { if (console) console.log(msg) }" 
ExternalInterface.call("eval", myJSCode); 

,過一會兒給你的函數:

ExternalInterface.call("log", "Hello from ActionScript"); 
相關問題