Flex与FLASH交互

最近做一个决策分析项目,需要使用到FLEX,而在使用的过程中,逐渐的接触到了FLASH,突然发现,用FLASH来做动画或者图表,用FLEX与JAVA后台进行交互,是一个非常方便的事情。唯一的障碍莫过于,FLEX与FLASH之间的数据交互。

其实这本身也不难,解决的方法就是通过Actionscript3.0.这需要注意的是,Flash cs5以上的版本才支持AS3.0,更以前的版本只支持AS2.0,我用的FlexBuilder是4.6,同样支持AS3.0。这样促使了As3.0可以完美的成为中间桥梁

以下代码为FLEX端

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="
http://ns.adobe.com/mxml/2009
" 

      xmlns:s="library://ns.adobe.com/flex/spark" 

      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"

      creationComplete="application1_creationCompleteHandler(event)">

 <fx:Script>

  <![CDATA[

   import mx.events.FlexEvent;

   private var flexArr:Array = new Array();

   protected function swfLoader_completeHandler(event:Event):void

   {
    // flash加载完成后,传入参数
    Object(swfLoader.content).InitApp(this,this.flexArr,"交互测试");
   }
   protected function application1_creationCompleteHandler(event:FlexEvent):void
   {
    this.flexArr.push(1111,2222,3333,4444);
    swfLoader.source="flash/RecComp.swf";  
   }
  ]]>
 </fx:Script>
 <s:SWFLoader source="" id="swfLoader" width="190" height="373" left="100" top="100" complete="swfLoader_completeHandler(event)" />
</s:Application>

从上面代码可以看出,FLEX调用了一个RecComp.swf的Flash文件,在这个swf中,要写一个InitApp方法,传入一个对象(供FLASH调用FLEX,后续讲)一个数组用来存值和一个标题,如下

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.text.TextField;
stop();
var flexApp:Object;
function InitApp(ap:Object,aarFlex:Array,titleMsg:String):void
{
 this.flexApp = ap;
 
 var array:Array = new Array();
 var rec1:Rec1 = new Rec1();
 var rec2:Rec2 = new Rec2();
 var rec3:Rec3 = new Rec3();
 var rec4:Rec4 = new Rec4();
 var rec5:Rec5 = new Rec5();
 var rec6:Rec6 = new Rec6();
 var rec7:Rec7 = new Rec7();
 var rec8:Rec8 = new Rec8();
 array.push(rec1,rec2,rec3,rec4,rec5,rec6,rec7,rec8);
 
 var format:TextFormat = new TextFormat("微软雅黑",22,"0x663300");
 format.bold="bold";
 format.align = "center";
 var tf:TextField=new TextField();
 
 tf.height=30;
 tf.width=100;
 tf.x=12.15;
 tf.y=47.3;
 tf.text=titleMsg;
 tf.setTextFormat(format);
 addChild(tf);
 
 for(var i:int=0;i<aarFlex.length;i++){
  array[i].x=15;
  array[i].y=300 - 35*i;
  var recInfo:RecInfo=new RecInfo();
  recInfo.x=155;
  recInfo.y=300 - 35*i - 3;
  recInfo.titleInfo.text=aarFlex[i]+"人";
  addChild(array[i]);
  addChild(recInfo);
 
  setChildIndex(array[i],i+1);
 }
}

function InitApp(ap:Object,aarFlex:Array,titleMsg:String):void  这个方法为主要接收参数。至于里面别的代码,是我自己做的无件,与交互不相关。这个组件我会发至网盘,里面还包含了通过Flash来做动画,做元件等、供大家交流

时间: 2024-10-29 19:07:14

Flex与FLASH交互的相关文章

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而是RIA的载体. ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3).只有Flash Player 9及以上播放器才支持AS3编译的SWF.这三

前端页面js与flash交互——js获取flash对象,并传递参数

背景介绍: 最近在搞一个项目,涉及到图片选取,裁剪,上传等,由于浏览器安全性问题,js无法获取到<input type="file">中选取的文件路径,而且对照片的裁剪,抠图等由HTML5实现的功能,对各大浏览器的兼容性,真是不敢太大胆.这个时候就引进了flash,然后所有js做不了的让flash来做,然后由js来控制页面元素.就这样开始了js与as的交互之旅,听做flash的大叔说,flash调js的函数式很好调的,而js调as不大容易.最终的情况是as调js错误层出不穷

[Flex][Adobe Flash Builder 4.6]谷歌浏览器(Chrome)下运行Flex程序的问题

今天刚开始学习Flex,发现用Chrome运行程序时会一片空白,上网查了相关资料后找到了解决方法: 打开Chrome,在地址栏输入:chrome://plugins/ 进入插件管理界面,查找Flash,看看是否为两个文件,形如:Adobe Flash Player (2 files) - 版本: 15,0,0,152,如果是的话,在插件管理界面的右上角有个“详细信息”,点开,把位于Chrome安装目录(C:\Program Files\Google\Chrome\Application\37.0

unity3d与flash交互、aes加密解密

众所周知,unity在2013年就放弃flash了,但是有时候,真的会需要到flash,比如web端需要unity web player插件,很多浏览器都拦截了,flash倒不会,因为他是微软的. u3d在打包flash的时候api是不可以修改的,默认就是flash的api,打包出来就是as(ActionScript代码)编译.所以很多net2.0的api都不能使用,比如System.Security.Cryptography这个库,注:这个库是C#集成好的加密解密 u3d导出flash会报错,

flash、flex builder、flash builder、 air的关系

flash VS flex builder flash被adobe收购的时候是flash8,已经可以AS2面向对象了. 而被adobe收购后,adobe准备把flash打造成一个开发工具.就比如JBUILDER.VS.那样,所以,有了flex Builder ,从字面上去理解就觉得像JBuilder.所以,他是开发工具,也就AS3了,flash8之后应该就都是AS3了.原来的AS2设计师会突然觉得AS3变化大,因为从AS3开始按钮和MC上都不能直接加代码了(AS2就可以),AS3开始代码很规范很

Flash, Flex, Air, Flashplayer之间的相互关系是什么?

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:曾嵘链接:http://www.zhihu.com/question/20001256/answer/15565376来源:知乎 ActionScriptActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而是RIA的载体.ActionScript有3个版本,分别是1.0版(AS1),2.0版(A

Flash, Flex, Air, Flashplayer之间的相互关系是什么

Flash, Flex, Air, Flashplayer之间的相互关系是什么? 著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:曾嵘 链接:http://www.zhihu.com/question/20001256/answer/15565376 来源:知乎ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而

flex数据交互方式 转

Flex数据交互方法- httpservice, webservice, RemoteObject, socket. 写在前面: 使用SOAP Web Service同Flex交互有很多好处,但是它很慢, 使用定制化XML好一点,却不标准化. 那么最好的ASP.Net 和flex交互方法是什么? 1. HTTPService 实际上应该叫做XML via HTTPService, 就是用get和post方式进行数据传输,同平常的web form提交大致一 样.好处就是很简单,通用性高. 不管你用

flex做页面。用来做视频的后台服务器是fms

作为新一代的富客户端互联网技术的佼佼者,Flex这种技术已经被越来越多的公司所采用,被越来越多的用户和程序员所接受.以下列出Flex十大优势: 1.Flex与Flash:可以让普通程序员开发制作Flash成为可能 2.界面表现能力一流. 3.RIA富客户端应用,解决了异步调用,界面无刷新,浏览器兼容性等多项难题 4.对流媒体的支持:Flex是被公认为流媒体技术支持最好的应用 5.平台的可用性:根据ADOBE公司的说法,Flash player在全世界一半的PC机器上安装度为99.8% 6.跨平台