2011-06-12 67 views
0

我非常感謝解決此問題的任何幫助。我已經呆了兩天了,一直沒能解決這個問題。我想通過ExternalInterface API從JavaScript調用一個AS3函數,它根本就不工作。如果我要調用一個JavaScript函數形式的HTML加載SWF,它的作品非常漂亮。ActionScript 3外部接口回調不起作用?

我下面這個教程: http://www.viget.com/inspire/bi-directional-actionscript-javascript-communication/

我使用SWFObject加載SWF到一個div。

JavaScript代碼:

<script type="text/javascript"> 
swfobject.embedSWF("testRun.swf", "myContent", "550", "400", "9.0.0"); 

function getFlashMovie(movieName) 
{ 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 

function callFlash(flash) 
{ 
    //alert(flash); 
    getFlashMovie(flash).sendToFlash();   
} 
</script> 

AS3代碼:

import flash.external.*; 
import flash.events.*; 
import flash.text.*; 

JavaScript就CALL SENDTOFLASH然後調用初始化函數

ExternalInterface.addCallback("sendToFlash", init); 

function init():void 
{ 
var txt:TextField = txtField(); 
txt.appendText("LOOK AT ME!!!"); 
addChild(txt); 
} 

function txtField():TextField 
{ 
var txt:TextField = new TextField(); 
txt.x = 25; 
txt.y = 25; 
txt.width = 200; 
txt.height = 150; 
txt.border = true; 
txt.text = "INIT "; 
return txt; 
} 
+0

你可以發佈你調用callFlash()函數的代碼嗎? – grapefrukt 2011-06-12 09:58:30

回答

1

後幾個小時,我已成功地解決了這個問題。我的代碼沒有問題,罪魁禍首是我的本地機器上的Flash Player安全設置。我不僅僅使用Flash播放設置將swf添加到我的受信任網站,而是將整個文件夾包含在內,現在它就像一個魅力一樣。

這是我如何改變設置:

你可以去大約兩個更改設置的方法:1. 當您打開HTML文件,Flash播放器的全球安全箱彈開 2.打開HTML文件,右鍵單擊並從您的上下文菜單中選擇「全局設置...」選項。

一旦設置面板打開,您將看到四個選項卡:

存儲| Camer和Mic |播放|高級

進入「高級」選項卡 點擊「信任的本地設置...」 點擊「添加...」 點擊「添加文件夾...」 定位到文件,如文件夾html和swf都是。 點擊「確認」 點擊「關閉」

然後關閉Flash Player的全局設置面板

現在打開你的HTML文件,如果它已經打開,然後刷新瀏覽器。這一切都應該現在工作

+0

在那裏,我想我的代碼是不正確的! – Combustion007 2011-06-12 18:03:14

+0

Combustion007 2011-06-12 20:01:20