如何在flash和javascript之间传递数据

Bri*_*ian 0 javascript apache-flex

我有一个flash/flex对象,它根据用户交互生成xml.我想将一个xml字符串传递给javascript,以便它可以进行Web服务调用.

如何将XML传递回Javascript?

例子:

HTML:

     <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"
                id="My">
 <param name="movie" value="My.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#ffffff" />
            <param name="allowScriptAccess" value="sameDomain" />
            <param name="allowFullScreen" value="true" />
      </object>
Run Code Online (Sandbox Code Playgroud)

javascript初始化

 var swfVersionStr = "10.2.0";
 var xiSwfUrlStr = "playerProductInstall.swf";
 var flashvars = {};

 var attributes = {};
 flashvars.servicePath = "services/";
 flashvars.isSaved = "false";
 flashvars.savedXML;
 var params=   {
            quality = "high";
            bgcolor = "#ffffff";
            allowscriptaccess = "sameDomain";
            allowfullscreen = "true";
            wmode = "transparent";
        };

  swfobject.embedSWF(
                "My.swf", "flashContent",
                "100%", "100%",
                swfVersionStr, xiSwfUrlStr,
                flashvars, params, attributes);
Run Code Online (Sandbox Code Playgroud)

Javascript从flash/flex获取XML

var flashObject = document.contentWindow.getFlashObject();
flashObject.saveXml();
var xmlFromFlex = flashObject.savedXML; /*This is where I don't know how to get/set*/
Run Code Online (Sandbox Code Playgroud)

Gur*_*ngh 6

您需要使用ExternalInterface.call:

import flash.external.*; 
var JSvalue:String; 
JSvalue = ExternalInterface.call('JsTestFunction','Work_Damn_It'); 
Run Code Online (Sandbox Code Playgroud)

更多信息请点击此处