总结下最近在flex中嵌入html页面的问题

  最近在一个项目中,要在一个flex 窗体titleWindow中嵌入一个html页面,因为flex要加载一个weboffice控件,而只能在html页面中加载,所以就出现了在flex中通过嵌入一个html页面的现象。
  方式:在titleWindow中嵌入一个iframe ,然后source指向加载控件的html页面,遇到的问题:
  1. 如何调用html中的方法,如何在html加载完成后,flex传值给html页面。
  2. 如何调用当html页面关闭时将传值给flex页面一个返回值。
分析:在网上可以找到很多的对于flex和js交互的示例,而且事实中,解决问题2是很容易解决的,但是对于1采用网上的方式就无法解决,这是因为,只有在html中嵌入flex的页面中js方法才可以直接调用flex 中的方法。
  解决方案:
  1. 对于问题一,在js中调用flex方法,首先要活动flex的引用,即一个source ID,显然在现在的情况是无法调用到的,所以才用flex与js桥接的方式,在html初始化时,对js添加了一个事件监听,然后在flex中抛出一个事件,通过这个时间来调用js中的方法
  
   function load()
   {
	this.parent.FABridge.addInitializationCallback("flash", function()
	 {
	   flexApp = parent.FABridge.flash.root(); 
	   flexApp.addEventListener("WordEditorEvent", function(event) 
	    {
	       LoadFile(event.getParametersStr());
	    }); 
	 });
   }

   WordEditorEvent 为自定义的一个事件,然后通过在flex中定义一个事件,然后传参数过来,调用js的方法LoadFile();
2. 对于问题2 ,直接在flex页面初始化时,添加一个回调方式,如下:
  
      ExternalInterface.addCallback("closeWnd",closeWnd);
   

  前一个closeWnd为在js调用flex的方法名,而后一个是在flex中定义的方法名,

你可能感兴趣的:(html,活动,Flex,Flash)