2012-12-14 38 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