| Subcribe via RSS

2008年5月12日14:28分

05月 22nd, 2008 | No Comments | Posted in Personal

earthQuake_WB

朋友在重灾区绵竹汉旺拍下的照片,14:28,时间在这一刻停止了

已经一个多周了,每天睡在外面,还在不断的晃、震…人们似乎到了精神崩溃的边缘

不知这场灾难在心中的阴影何时才能移去

家在重灾区绵竹,万幸父母当时跑了出来,安好…又有多少父母、儿女没跑出来呢

高中同寝室的同学也在这场灾难中离我们而去,许久没和他联系了,没想到再次听到他的消息竟是这样…还有些朋友到现在也联系不上,杳无音信…希望他们平安、一切都好…

愿逝者一路走好,祝福所有好心人,向伟大的中国军人致敬~~~

5.19–5.21 我们一起默哀,一起祈祷

田殇之日,重生之时


降下的国旗见证一个民族的崛起

Tags:

Flex应用程序启动详解

05月 11th, 2008 | No Comments | Posted in ActionScript3, Flex3, RIA

转载请注明出自:http://www.jexchen.com,谢谢!

编写一个简单的Flex应用程序并不复杂,就算你从来没接触过Flex程序设计,照着帮助的实例步骤,不需花多长时间也能做出一个漂亮简捷的小程序出来。不过,随着对Flex程序编写的深入,会越来越觉得,其实要编写一个好的Flex应用程序并不简单,涉及到各个方面的知识,需要对Flex应用程序的架构、事件机制的处理、设计与程序的结合等等各个方面均要有所掌握。

接下来我会写一个系列文章,对Flex应用程序编写在上述方面所需掌握的知识作一个梳理,希望对大家有所帮助…

这第一部分的内容从Flex应用程序的启动与运行讲起。另外,Flex应用程序总的来说是以事件驱动的程序,因此,大家在深入学习Flex的各个方面知识的时候,应该随时以事件驱动的观点来进行思考。

大家都知道,我们在编写Flex应用程序时,通常是以<mx:Application>标签作为开头,实际上,Flex应用程序在启动运行的时候并不是直接从Application开始运行,在这之前还有一部分悄悄的先运行了,正如大家所看到的,当我们运行编写好的Flex应用程序时,尽管我们没有编写任何与启动进度载入条相关的代码,但无一例外的,应用程序均会为我们自动加上这一部分。因此才有我们看到的如下图所示的标准的Flex loading载入条(在下一篇文章中,我们将一起来改变这千篇一律的载入条,创建自定义的loading效果)。

loading

通常我们所说的Flex应用程序,本质上来说是基于Flex框架、采用ActionScript 3.0编写的Flash应用程序,从这一点来说,它和普通的Flash应用程序没有任何差别。相对来说,传统的使用Flash IDE(如Flash CS3)创建Flash程序时更多的基于“时间线”(Timeline)及“帧”(Frame)的概念,更易于设计师理解;而基于Flex框架来创建的Flash应用程序更多是强调程序性,很少提及“时间线”与“帧”的概念,更易于程序员理解。其实Flex应用程序一样也有时间线,只是这部分由Flex框架隐藏起来了,通常不为大家所熟悉,在默认创建Flex程序时,这一切Flex已帮我们完成了,但了解这部分内容更有助于大家对Flex应用程序的启动有更深刻的认识,以便能对程序更灵活的控制与发挥~~

application

我们来看看上面这幅示意图,Flex应用程序共由两帧组成,第1帧为preloader部分,第2帧为主应用程序部分,此两部分由Flex应用程序的根SystemManager统管,SystemManager是flash.display.MovieClip的子类,影片剪辑(movie clip)支持帧。由于swf属于一种渐进式(progressive)下载的格式,正是由于swf格式这个特性,Flash Player并不需要等待整个程序下载完成便可直接访问已载入帧的内容,因此第一帧通常用来作为应用程序载入时的loading画面显示,一般来说,第一帧包含的内容应该尽可能的少(在第一帧中尽量不要含有Flex框架的组件),以便能很快的下载并立即显示;第二帧才是主应用程序真正的内容,一旦SystemManager实例进入到第二帧后,即开始内部主应用程序运行的生命周期(life cycle),也就是进入我们最为熟悉的<mx:Application>运行的部分(SystemManger实例有一application的属性,在第1帧时,此属性为null,当进入到第2帧时,该属性才指向真正的主程序application实例)

注:帧是时间线的一个基本单元,如PAL电视制式,每秒25帧;而电影通常为每秒24帧,其实和我们这里讲的Flash中的帧类似的概念

记住我们开始所说的,Flex应用程序总的来说是以事件驱动的程序

在程序进入第2帧,主程序application开始运行后,便会相应的触发相应的一系列事件,按事件发生的先后顺序依次来介绍:

preinitialize

应用程序application已实例化,但此时还未创建任何相关的孩子组件(child component)

initialize

此时,创建了相应的孩子组件,但还未对这些子组件进行布局

creationComplete

应用程序application完成全部实例化,并完成所有子组件的布局

apllicationComplete

上面三处事件的完成,表明application内部启动的整个进程完成,接下来便会通知SystemManager派发applicationComplete事件。此时,启动程序启动完成并准备运行。

运行下面这个小程序,再次理解这几次事件,注意:由于在preinitialize事件产生时,此时还未创建任何子组件,故在此事件的处理函数中,不能直接将相应显示的字符串赋给TextArea组件显示。

点击运行程序(右键选择view source可查看源码)

Tags: ,

AXNA (MXNA) 回来了~~

05月 7th, 2008 | No Comments | Posted in RIA

AXNA (MXNA) 终于复活了,并且现在有了新的访问地址:
http://feeds.adobe.com/

现在可以不去偶的Google Reader看得眼花缭乱了,哈哈!!!

Tags:

Adobe Open Screen Project ,感谢Adobe

05月 3rd, 2008 | No Comments | Posted in RIA, adobe

(翻译整理了部分)
消息来源及更详细的介绍参见下面的地址:
http://www.adobe.com/openscreenproject/
http://www.riapedia.com/2008/05/01/adobe_opens_swf_format_launches_open_screen_project

Adobe最近一段时间真是动作多多阿,这不,五一期间,又给大家送上一份惊喜~~~

Adobe刚刚和许多顶尖的业界厂商共同宣布了一项叫“Open Screen Project”的计划,该项计划致力于推动跨平台的富因特网体验(Rich Internet experiences),包括电视、个人电脑、移动设备及消费数码电子产品等,大家可以看看下面支持这项计划的厂商有哪些(点击图可放大)

对RIA的开发人员来说,或许这将完全改变当前整个游戏规则,Open Screen Project移除了在SWF及FLV上的使用限制,现在任何人都可以创建自己的播放器或工具去创建SWF内容,就像现在的PDF一样。Adobe也正在为Flash Player发布porting layer APIs ,这样,任何人均可为当前一些不支持FP的设备(尤其那些移动设备)创建自己的Flash Player。

另外,由于去掉了将Flash Player及Adobe AIR发布到相关设备的许可费用(license fees),移动开发也将会得到蓬勃地发展。手机制造商也不必再为安装Flash Player在他们的设备而向Adobe付费了,HOHO~~~

Tags: ,