2012-12-14 59 views
2

我想從文本顏色和矩形背景顏色從Flash到JavaScript。 這是最好的方法是什麼?例如,當Flash電影將加載我想發送其文本顏色和矩形背景顏色到JavaScript。那麼JavaScript將在html文本框中顯示此顏色。任何想法,如何做到這一點?
感謝
阿希什如何從閃存as3獲取文本和矩形的顏色?

回答

1

可以使用ExternalInterface

的ActionScript

在初始化您的Flash影片,你應該添加可能回調你想。在這種情況下,你不需要回調,你只需要調用JS。只要你知道如何做到這一點,無論如何,我將解釋如何)

import flash.external.ExternalInterface; 

function init(){ 
    var jsready:Boolean = ExternalInterface.available; 
    if(jsready) { //checks if External callbacks can be made 
     sendColors();//send the colors when movie is initializing 
     try{ 
      //You add the callback, when JS calls getColors, actionscript will call sendColors() function 
      ExternalInterface.addCallback("getColors", sendColors);  
     } catch (error:SecurityError) { 
      trace("A SecurityError occurred: " + error.message + ""); 
     } catch (error:Error) { 
      trace("An Error occurred: " + error.message + ""); 
     } 
    } 
} 
function sendColors(){ 
    //send your colors to JS 
    ExternalInterface.call('receiveColorsFromFlash',color1,color2); 
} 

的Javascript

如果使用的是:

<object id="myflash1"> 
    <embed id="myflash2"> 
    </embed> 
</oject> 

或:

<object id="myflash1"> 
    <object id="myflash2"> 
    </object> 
</oject> 

在代碼中嵌入閃存的方式多個瀏覽器。確保嵌入和對象標記有不同 ID。或者,例如,不會爲第二個對象用於Firefox瀏覽器。

您可以通過添加此函數來解決此問題,該函數始終返回正確的Flash對象,並將其加載到DOM中。這是一個過時的(5歲以上)片段,可能不再適用,請使用JQuery或其他任何您想要的解決方案。

如果您使用其他方式嵌入flashobject(SWFObject.js或任何其他)您可以使用jquery/getElementByid來定位一個對象。

function thisMovie() { 
     if (navigator.appName.indexOf("Microsoft") != -1) { 
      return document.getElementById("myflash1"); 
     }else if (navigator.vendor.indexOf("Apple") != -1) { 
      return document.getElementById("myflash1"); 
     } else { 
      return document.getElementById("myflash2"); 
     } 
} 

的JS功能,Flash將調用:

function receiveColorsFromFlash(color1,color2) { 
    //do your thing with the colors 
} 

的JS功能,要求對顏色

thisMovie().getColors(); 
+0

其實我知道如何使用外部接口閃光燈,但感謝那些解釋但我的問題是,我將如何從閃存獲取顏色代碼爲JavaScript ....例如,我創建一個矩形,並給它綠色的顏色。現在我想告訴我的JavaScript函數什麼顏色代碼即時通訊使用在這個矩形。 –

+0

「我將如何從閃存獲取顏色代碼爲JavaScript」......您還沒有真正閱讀我的答案,是嗎?如果你想閃光告訴你的JavaScript的東西,你必須使用ExternalInterface。 – Timmetje