ExternalInterface的是你的朋友: http://help.adobe.com/nl_NL/Flash/CS5/AS3LR/flash/external/ExternalInterface.html
一些提示在使用ExternalInterface的:
- 設置
allowScriptAccess
爲 「always」 在HTML嵌入代碼
- 確保閃光燈始終有一個ID在你的html代碼
一些簡單的例子:
1.抓鬥從JavaScript的值閃爍
// actionscript 3 code
if (ExternalInterface.available)
{
var url:String = ExternalInterface.call("document.location");
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = url;
}
2。調用帶有參數的函數從閃存
// actionscript 3 code
if (ExternalInterface.available)
{
var result:String = "Flash rocks"
ExternalInterface.call("alert", result);
}
3.從JavaScript調用帶有參數的函數到Flash:
// javascript
window.onLoad = function()
{
document.getElementById('flashId').doSomething("javascript rocks");
}
..和
// actionscript 3
if (ExternalInterface.available)
{
ExternalInterface.addCallback("doSomething", handleSomethingFromJavascript);// links js function to as3 function
function handleSomethingFromJavascript(value:String):void
{
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = value;
}
}
你可以做很多閃光燈和JavaScript之間的東西,你可以看到整合幾乎是無痛的!唯一值得注意的是,在Flash中ExternalInterface不可用,所以你必須在瀏覽器中測試。您可以使用wmode="transparent"
製作一個透明的Flash對象。您不能使用display:none
或visibility
(css),因爲此時閃存沒有執行或運行速度較慢。爲了確保它能夠持續運行,請將它放在頁面上的某個角落或其他東西上position:fixed
(css)。瀏覽器在不在屏幕或不活動的狀態下(即在非活動選項卡中)使Flash對象以某種睡眠模式(較慢)運行
嗨馬克。 +1並感謝您的出色答案。我將使用上面的功能,並且我看到我嘗試完成的是完全可行的。因爲這個答案完美和最完全的回答我的問題,我將它標記爲*接受答案* –
感謝您的客氣話 –