本篇文章由:http://xinpure.com/call-the-javascript-method-in-flash-actionscript-2-0/javascript
最近在工做中,有個這樣的需求: 要從 Flash ActionScript 2.0 中調用網頁上的 Javascript 方法java
在 ActionScript 2.0 中調用外部 javascript 方法,使用的是 ExternalInterface.call() 方法測試
開始測試:code
鼠標點擊元件事件,觸發 Javascript 方法事件
在 Flash 元件上添加以下代碼: ip
on(release) { ExternalInterface.call("testFlashClick"); }
在 Html 添加以下 Javascript 代碼:get
function testFlashClick() { alert('testToFlashClick'); }
理論上當鼠標點擊 Flash 上的元件時,會觸發 Javascript 的 Alert 彈窗flash
感受好像是可行的。。。it
可是奇怪的是,徹底沒有反應!io
錯誤緣由 ExternalInterface.call() Undefined
在使用該方法時,須要先引入它的類庫 flash.external package
固然也能夠使用 flash.external.ExternalInterface.call()
調用些方法
在 Flash 元件上添加以下代碼:
on(release) { flash.external.ExternalInterface.call("testFlashClick"); }
這樣問題就解決了。
在 ActionScript 2.0 中 調用外部 URL 能夠使用 getURL() 方法
所以,咱們也能夠使用以下代碼,實現想要的效果:
on(release) { getURL("javascript: testFlashClick()"); }
換個說法,這就比如 Html 中的 a 標籤的 href 屬性同樣: <a href="javascript: testFlashClick()"></a>
道理是同樣的,效果固然也會同樣。