[英]How to call javascript functions from flash ExternallInterface on release action
我的HTML是:
<object width="800" height="600"
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/
pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
<param name="SRC" value="intros/01/intro.swf" />
<param name="allowscriptaccess" value="always" />
<param name="quality" value="high" />
<param name="bgcolor" value="#999900" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<embed src="intros/01/intro.swf" width="800" height="600"></embed>
</object>
我的Flash按鈕上有以下代碼:
on (release) {
import flash.external.*;
var isAvailable:Boolean = ExternalInterface.available;
if( isAvailable ) {
ExternalInterface.call( "sample" );
}
}
而javascript / jquery是:
jQuery( document ).ready( function(){
function sample() {
alert( 'message' );
}
});
我究竟做錯了什么? 我正在使用動作腳本2.0。 例如,當我在Flash中對其進行測試時,要知道isAvalaible變量是否為true,那確實是...這是真的。
不要將sample()放在(document).ready()內
它不在范圍內。 只要外部沒有准備好,它就可以正常工作。
另外,由於它是一個函數聲明,因此無論如何您都不需要在ready中使用它。
自完成AS2以來已經有一段時間了,但是我發現這里有兩點需要更改。 首先,擺脫按鈕代碼上的import語句。
var isAvailable:Boolean = flash.external.ExternalInterface.available;
然后,您擁有的jQuery被構造為匿名函數。 在您的網頁上嘗試以下操作:
function sample(){...}
$(sample);
然后,當jQuery初始化時,它將調用sample,並且sample可以從其他地方獲得。
謝謝大家 我已經找到了解決方案...。這與Flash Player的安全性和權限有關。您的代碼建議也屬於解決方案的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.