打造属于自己的Apollo(一)

原文地址:http://www.k-zone.cn/zblog/post/log-2006-11-19-001.html

呵呵,大家看看标题是不是很诱人啊,其实如果各位朋友看完本章,就不会有这个感觉了!所以
kenshin就言归正传。

首先先说说Apollo,自从去年就开始传说的沸沸扬扬的Apollo慢慢的从今年的AdobeMax2006慢慢浮出水面以来,Apollo就越来越吸引人的眼球了(我在这里不想讨论Apollo的好坏,这不是本篇文章的讨论范围)。

在来说说Apollo的功能:

Apollo的总的来说的功能就是:可以在桌面上运行flashflex等应用程序,即让flash/flex脱离浏览器成为操作系统的一级公民、打破浏览器的限制。并同时具有对OS的操作能力。

在进行上述功能细分:

1、 具有flash/flex的超炫的效果。

2、 可以直接进行IO操作或进一步对API的操作,即与桌面直接来实现像托拽,剪贴板,系统盘图标以及扩展文件名注册等功能的操作。

基于上述的功能的分解,可以这么理解:

1、 第一部分的功能就现有工具来说,FlexFlash 完全可以胜任这个要求。我这里推荐Flex

2、 第二部分的功能就现有工具来说,基本上市面流行的开发工具,例如VBVCDotNet等均可以实现这种功能。我在这里推荐DotNet

那如果才能让FlexDotNet进行连接或通讯呢?答案其实很简单,Adobe刚刚发布的Action script3就完全胜任这个功能,即可以作为FlexDotNet的连接的纽带(可以是他们2个进行通讯)所使用的函数就是-------------- ExternalInterface

呵呵,其实很简单是不是。其实已经有很多人在用这种技术了,我也不是第一个人,但是网上用这种方式的文章的确很少,所以kenshin就给大家写一篇,算是抛砖引玉吧。希望明白这种架构的朋友不要批评我,毕竟不明白的朋友还有很多,包括我自己也是。下面我就帖一下基于这种架构的一个project

开发环境:Flex2 C#2005

运行环境:FlashPlayer9.net2

截图如下:

点击看大图

点击看大图

点击看大图

点击看大图

 

具有以下功能:

1、 flash一样超炫的显示效果。

2、 具有桌面托盘、调节透明度、是否最前端显示、随windows启动、定时查询天气预报,鼠标拖动、锁定窗体的功能。

在功能上面还有一些缺陷。但是总不失为一种在桌面上面显示flash的一种途径。也算是在Apollo发布前的一种聊以自慰吧。我会在慢慢在以后的写一下具体的代码给大家的。首先大概描述一下flexc#互相通信在代码上面的写法。

FlexC#之间进行通讯:

Flex端:

Var strReturn:String = ExternalInterface.call("testSentCSharp""可以填写flex传入的参数,可以是多个参数");

C#端:

 

flashControl.FlashCall += new _IShockwaveFlashEvents_FlashCallEventHandler(flashControl_FlashCall);


private void flashControl_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)

{

   String strReturn 
= e.request;

}

C#Flex端进行通讯:

C#端:

String request = "<invoke name=\"testExternalAPI\" returntype=\"xml\"><arguments><string>c#传入的参数</string></arguments></invoke>";

Flex端:

 

ExternalInterface.addCallback("testExternalAPI", returnCSharpResult);

public 
function returnCSharpResult (p_strParam:String):String {

var strReturn:String = p_strParam;

return "这是来自Flex的Return";

}

今天就先写到这里,以后我会详细的写出具体的写法。有这么问题请在下面留言,欢迎大家热烈讨论:)

PS:本篇文章未经kenshin同意请不要转载,请尊重kenshin的劳动成果。

posted on 2006-11-27 22:14  kenshin  阅读(446)  评论(0编辑  收藏  举报

导航