-
关于我
-
跟随我
-
订阅我
-
关注一下
-
最新文章
- [02/13][日记]春节快乐心想事成
- [01/28][Flex]Adobe软件在电影阿凡达中的应用
- [12/30][排名]TIOBE程式語言最新排名-2009年12月版
- [12/30][日记]2009年终岁尾的一些感想
- [12/30][讲座]艾睿网12月份Cmax北京的演讲稿
- [11/28][日记]佛山、广州之行
- [11/21][Acrobat]Acrobat.com改版(包括Mobile版本)
- [11/19][AIR]基于AIR 2.0 的几点猜测
- [11/19][Silverlight]Silverlight 4 beta released!
- [11/18]Flash Player 10.1 and AIR 2.0 消息汇总
[Flex]打造属于自己的Apollo(二)
呵呵,难得大家对这篇文章感兴趣。今天我就跟大家讨论一下Flex+CSharp这种架构具体的实现办法。
1、开发环境准备。
在上一篇我已经说明了,开发环境是vs2005+Flex2,也就是说,你的机器中需要安装这两个工具或者其SDK,并且你的电脑的Flash Player的版本必须在9以上。
2、在VS2005中引入fldbg9.ocx这个COM组件。
引入过程如图所示:
链接已失效!
如果您引入的这个com组件没有被注册过。

您还需要在windows→开始→运行里面输入如下的语句进行注册这个com组件。
语句如下:
regsvr32 c:\windows\system32\macromed\flasfldbg9.ocx
如果以上的准备工作都OK了,那也就是说开发环境已经完成。下面我来说明一下Flex和C#之间进行通讯。
1、Flex端代码编写:
首先建立一个新的project,我命名为Desktop.mxml(关于如何建立一个新的project不是本篇文章讨论的内容,请各位见谅)并在这个Application中加入一个button和一个Label,代码如下:

其中画红线的部分就是关于Flex对C#通讯的代码。而lblTest.text接受的是从C#端返回的参数。以上Flex端就准备完成了。
2、C#端代码编写:
由于上面的准备工作已经完成,所以在C#端就可以直接编写代码了。首先需要using
刚才咱们加入的一个com组件—AxShockwaveFlashObjects。在C#端加入一个button和2个TextBox控件。并且在Form Load的时候加入刚才引入的com组件的一些内容,比如LoadMovie的地址和注册一个监听事件,以便监听从Flex端传来的消息。代码如下:


添加完监听时间后,还需要具体实现这个监听时间的方法,代码如下:

其中上面红色的框写的就是从Flex端传送过来的消息/参数,下面的红色框是给Flex端返回一个消息。
然后bulid这个project并run这个exe就会得到以下的画面:

当我点击上面的那个button,即Flex中的button就会是Flex向C#传递消息,由于在C#中我在Form Load中写的监听事件,所以当这个exe运行的时候,这个监听时间就已经开始监听来自Flex端的消息了。一旦监听到来自Flex端的消息(Flex端的消息是由点击button调用ExternalInterface.call这个函数形成的)就会触发这个监听事件,即调用flashControl_FlashCall这个函数。并执行其中的代码,最后在由这个函数SetReturnValue返回给Flex端的一个消息。这样一个完成的消息传递→接受→返回的过程就完成了。

:-) 是不是很简单啊,其实说明白了就是这么简单。这不过是个最基本的sample,大家还可以对上面这个例子进行扩展,例如在监听和调用这个事件的函数里面写丰富一下内容,比如可以写上调用外部exe的代码,这样就能够做到在flex调用windows的exe的功能了。
process.StartInfo.FileName = “调用的exe的路径";
process.Start();
以上就是Kenshin写的Flex端向C#端传递参数并返回c#端的结果的例子,今天就写到这里吧。谢谢大家对这篇文章的关注。下一篇文章我会告诉大家在C#如何传递参数到Flex端。


