2009年3月29日星期日
暂停“我的精灵”项目,结束合作
接下来几天,我比较迷茫,不知道以后要做什么好。有过好些想法,比如做网店工具、英语学习软件、外贸代销平台、图片特效编辑器、Flash游戏等,最后在今天早上,觉得还是专注于以Flash平台为主的前端设计与开发比较好。这样能更好的发挥现有的知识能力,而且技术点比较专注,难度也小些。
2009年3月27日星期五
Flex是什么?
因为我当前专注于RIA的一支,即Flex,也包括Flash。Flash是几乎人尽皆知的技术,Flex是相对较新的技术。
Flex是Adobe公司推出的技术,基于Flash平台,开发的程序可以运行于装有Flash Player插件的浏览器以及Adobe的桌面程序运行平台AIR之上,具有很好的表现力和交互力。官方网站上对Flex的定义如下:
Adobe® Flex® 3 是用于构建和维护在所有主要浏览器、桌面和操作系统一致地部署的极具表现力的 Web 应用程序的高效率的开放源码框架。
相对于Ajax,Flex的优点是易于开发调试,表现力交互力强,缺点是加载速度慢。在兼容性方面,我觉得Flex更好。
关于Flex的讨论文章见下:
关于Flex http://www.javaeye.com/topic/285531
为什么选择Flex而不选择Ajax-Newbie asks why Flex http://www.javaeye.com/topic/47667
选择Flex的理由 http://www.javaeye.com/topic/274015
总结Flex 的几个优势和特色 http://www.mmug.cn/blogs/index.cfm?sPart=SB&iFid=1020&sDayNow=2006-12-06&sAuthor=yezi转载请注明出处:http://lushisang.blogspot.com/2009/03/flex.html
作者:陆仕桑 发表时间:20090327-20:16
RIA是什么?
RIA是什么,是Rich Internet Application,丰富互联网应用程序。
Wikipedia 上的定义:
Rich Internet applications (RIAs) are web applications that have some of the characteristics of desktop applications, typically delivered by way of a proprietary web browser plug-ins or independently via sandboxes or virtual machines. Examples of RIA frameworks include Adobe Flex / AIR, Java/JavaFX and Microsoft Silverlight.
翻译过来就是:
丰富互联网应用程序是具有一些桌面应用特点的Web应用程序,典型的交付途径有专有的Web浏览器插件,独立的沙箱或虚拟机。RIA框架的例子包括Adobe Flex / AIR,Java/JavaFX和Microsoft Silverlight。
丰富与不丰富本来就没有绝对的界限,RIA相对的是传统Web应用程序(也没有绝对的定义和界限,就以返回纯HTML页面为特征之一吧)。随着 Web标准(例如Ajax和HTML 5)的发展,以及浏览器功能越来越强大,不需要扩展插件也能开发RIA应用。如Gmail就是一个很好的例子。
简单的说,RIA 的优势就是让 Web应用程序的功能更丰富,更强大。RIA相对于传统Web应用程序的发展,一个主要部分就是Web表现层。
我设想这样一个情景:
我在家里、办公室、朋友家、网吧等所有能上网的地方,登陆一个账号,就可以很容易地编辑我的文档、继续我的游戏和电影、开发我的软件、和网友联系聊 天。而这一切,仅仅需要一个浏览器和一个账号。这是传统Web应用程序所做不到的,因为功能不够强大;也是桌面应用程序所做不到的,因为需要在多个地方安 装好很多客户端,这是不现实的。而RIA就可以使这样的情景成为可能。RIA相当于结合了传统Web应用程序的便捷性和桌面应用程序的多功能性这两大优点。
从客户体验角度来看,RIA还需要浏览器具有更强大的功能。现在虽然可以给浏览器安装各种插件增强功能,但是这些插件并不能和账号结合,随时随地使用。例如,简单实用面向浏览者的选择并拖动就搜索的功能,就需要浏览器插件来提供。
同时,RIA也需要更大的带宽,以传输更多的数据。理想情况是,除了私密信息,一切都存在于网络,存在于网络上的各个服务器,包括文本、图片、音频、视频、游戏、软件、数据等等,以便于随时随地访问,因此,对带宽的要求也比较大。
更专业具体详细的介绍见以下文章:
Wikipedia上的介绍 http://en.wikipedia.org/wiki/Rich_Internet_application
中文维基百科 http://zh.wikipedia.org/wiki/RIA
什么是RIA技术,RIA技术概览 http://www.airia.cn/RiaNews/RIATechnical_Summary/
转载请注明出处:http://lushisang.blogspot.com/2009/03/ria.html
作者:陆仕桑 发表时间:20090327-20:12
2009年2月3日星期二
【项目】项目“MyWorld”相关
啸风子 于 2009年2月3日星期二 22:26 发表于 啸风子Flash站点(http://tigerrrflash.blogspot.com/)
----------------------------------------------------------------------
以下文章在分类内按撰写日期由先到后排列。
子项目“MyBlog”相关:
每个版本的文章内含所有相关东西,如源代码等。
《创造“MyWorld”(1)——开发“MyBlog v0.1”》:http://tigerrrflash.blogspot.com/2009/02/myworld1myblog-v01.html
其它相关文章:
《啸风子的几个RIA应用想法,欢迎大家一起讨论》:http://tigerrrflash.blogspot.com/2009/01/ria_21.html
《关于Flex新手项目实践合作尝试的讨论》:http://tigerrrflash.blogspot.com/2009/01/flex.html
《“我的世界”项目分析之用户角度》:http://tigerrrflash.blogspot.com/2009/01/blog-post_25.html
《一个新手眼里Flex开发的层次》:http://tigerrrflash.blogspot.com/2009/01/flex_28.html
【项目】创造“MyWorld”(1)——开发“MyBlog v0.1”
啸风子 于 2009年2月3日星期二 22:15 发表于 啸风子Flash站点(http://tigerrrflash.blogspot.com/)
----------------------------------------------------------------------
创造“MyWorld”(1)——开发“MyBlog v0.1”
作者:啸风子
创建日期:20090130
更新日期:20090203
关于“MyWorld”——
我是一个Flex新手,为了提高自己的Flex开发水平,计划做一个练习性的项目,叫“MyWorld”,曾经叫“我的世界”。
简单的说,“MyWorld”是一个用户个人在网络上的个性化门户,可以集中展示用户分散在其它网站上的博客、相册、帖子、留言等,以及用户定制的游戏,文章,收藏。最重要的是,用户可以自定义“MyWorld”的表现,比如一座房屋,甚至一个虚拟星球,以充分展示用户在网络上的个性化存在。
“MyWorld”并不是有明确要求的项目,而是比较随性的练习性项目,可以分解为一系列小项目。我可以做自己想要的“MyWorld”,其他人也可以做他们的“MyWorld”。要了解更多,可以参看此文:《“我的世界”项目分析之用户角度》,网址:http://tigerrrflash.blogspot.com/2009/01/blog-post_25.html。
我会把我所做的公开发布,并撰写相关文档,比如此文,可以供新手们参考。因为我还是新手,也没有什么项目经验,所以,很多地方肯定会存在不足,大家可以多多提意见,多谢!:-)
所有与项目“MyWorld”相关的文章、代码等都会集中于此文:《项目“MyWorld”相关》,网址:http://tigerrrflash.blogspot.com/2009/02/myworld.html。
关于“MyBlog”——
“MyBlog”是“MyWorld”的第一个子项目,主要用途是读取自己在博客网站的博客信息,在一些Flash页面中以更加个性化的方式展示出来。这些页面可以放在属于自己的域名和空间中,甚至可以插入到其它网站中。“MyBlog”实现真正属于个人的、脱离博客网站束缚的博客。
术语约定——
为了更有效的沟通,做如下术语约定:
博客(英语Blog):即通常说的博客,如我的博客TigerFlash,不指博客托管站点,如Blogger,也不指博客里的一篇文章。
帖子(英语Post):即博客的一篇文章,为什么不直接说文章,是因为英语里(至少Blogger里)用Post称呼博客里的文章,而且文章的概念范围很广,为了专指博客里的文章,我们就用帖子来称呼。
“MyBlog v0.1”概述——
“MyBlog v0.1”是属于起始阶段的子项目,只要实现部分基本功能即可。概述如下:
1. 能够利用Blogger网站的API读取Blogger博客(以我的博客TigerrrFlash为例)的相关信息(具体信息见下文)。因为Blogger API的限制,有些博客信息不能读取,比如标签,所以很多功能暂时无法实现。
2. 能够利用Flex基本组件展示相关信息(具体信息见下文)。 暂时不考虑界面个性化,以后的版本再考虑。
3. 因为是起始阶段,所以在运行时输入博客供稿地址,以方便调试。以后版本中将采用部署时配置方式,运行时不能输入博客供稿地址。
4. 可以运行时在页面上直接输出跟踪信息,以方便调试。
“MyBlog v0.1”分析——
基本需求:用Flash平台代替HTML形式,具体如下所示:
1. 博主需求:让自己的博客通过Flash平台展示出来。
2. 读者需求:使用Flash平台阅读博客。
要实现的内容有如下几个:
1. 博客标题。
2. 博客作者。
3. 博客说明。
4. 帖子:核心内容,每篇帖子拥有标题、作者、内容、发布日期。
5. 日历:能够根据日历索引到特定日期发布的帖子。
6. 链接列表:一些相关页面的链接。
7. 博客供稿地址输入窗口。
8. 跟踪信息输出窗口。
页面框架说明如下:
1. 首先弹出博客供稿地址输入窗口,输入地址或关闭后消失。
2. 暂时只有一个页面,即主页,页面框架:上面是标题栏,展示博客标题、博客作者、博客说明,下面左侧是侧边栏,展示日历、链接列表,下面右侧是内容区,展示帖子列表。
3. 内容区最多显示5篇帖子,但有前后导航按钮,可以点击以显示更多帖子。
4. 进入主页后,内容区显示最近的帖子,日历显示当前日期。
5. 根据用户对日历日期的选择,内容区显示相应日期发布的帖子。
6. 点击博客标题进入主页,即内容区重新显示最近的帖子。
“MyBlog v0.1”设计——
按照MVC模式设计。分别描述如下,括号里的是标识符(类名、属性名、方法名等):
1. 控制器Controller
主要作用有:初始化应用程序,处理应用逻辑,处理事件,管理模型对象,更新视图。由主类BlogShow充当。正常使用状态的概要描述如下,具体见成品和源代码。
1) 初始化后进入主页,并弹出博客供稿地址输入窗口。
2) 用户输入博客供稿地址后,加载并显示最多5篇最新帖子,以及日历和链接列表,并弹出跟踪信息窗口显示得到的XML作为参考(调试用,暂时保留)。
3) 用户选择日历里的日期时,加载并显示该日期的5篇帖子。
4) 用户按“Next”按钮可以加载并显示下5篇(如果有的话),按“Prev”按钮可以加载并显示上5篇(如果有的话)。
5) 用户点击链接列表里的链接时,在新窗口中打开链接。
6) 用户点击标题,重新进入主页。
2. 模型Model
模型建立实体的数据结构。主要包括以下模型类,日历暂时直接用组件实现,因此不用建立模型。具体见成品和源代码:
博客(Blog):
属性:
博客标题(blogTitle)
博客说明(blogDescription)
博客作者(author)
帖子(posts)
链接列表(linkList)
帖子(Post):
属性:
标题(title)
作者(author)
内容(content)
发布日期(publishDate)
链接列表(LinkList):
属性:
链接(links)
3. 视图View
使用各种Flex组件展示模型的数据,并接受用户交互。整合在主类BlogShow中。具体布局和控件见成品和源代码。
“MyBlog v0.1”实现——
摘取部分关键源代码,并附上注释,作为对实现的描述,具体见源代码文件。
(因为暂时还没安装相应插件,不能直接贴代码,可以看源代码文件,或者看这个帖子:http://bbs.airia.cn/FLEX/thread-3929-1-1.aspx,上面有代码。等以后装了相应插件,能正确显示代码后,再来帖代码。)
知识点——
基本语法:在现在,我还是要重视的。
Flex Builder 3使用方法:同样,在现在我还是要重视的。
组件使用:包括HTTPService,各种控件、容器等。
XML:包括E4X语法和XML命名空间等。
Blogger API:访问Blogger博客数据必须要学习的,要注意的是博客供稿地址的格式并不像文档里说的那样(可能文档里的格式是以前的),要自己查看博客上的供稿地址。
开发调试过程——
因为我还是新手,对文档及很多知识都不是很熟悉,所以我是边学习边开发“MyBlog v0.1”,结果断断续续持续了4天时间,开发加撰写此文档,大概花了10小时左右吧。程序代码本身很简单,主要时间都花在了查看文档学习知识上了。
在调试过程中,有一个问题花了我很多时间,即XML命名空间问题。我一开始不了解XML命名空间,结果导致了错误。后来我学习了相关知识,注意了XML命名空间的使用,但是还是有错误。后来上网查了一下,才解决了问题。在这里提醒下吧,在方法内声明了默认XML命名空间后,在方法结束前还得把默认XML命名空间改回成空的。
未来计划——
在“MyBlog”的未来版本中,将添加更多的功能,完善现有功能,同时对表现层进行更多的个性化设计。
结语——
通过“MyBlog v0.1”的开发和调试,我学习了一些平时都没注意的知识,提高了动手能力。在以后的版本中,还将继续学习和实践。
欢迎大家多提意见。:-)
关于作者——
网名:啸风子。真名:陆仕桑。
有事欢迎和我联系:-)。邮箱:lushisang@gmail.com。QQ:531042894。博客:http://tigerrrflash.blogspot.com/。
--------------------------------------------------
工程文件(内已包括源代码和成品文件):http://sites.google.com/site/myworldmyworldmyworld/myblog/MyBlogv0.1.rar?attredirects=0
在线演示:
http://sites.google.com/site/myworldmyworldmyworld/myblog/MyBlogv0.1.swf?attredirects=0
(因为暂时还没安装相应插件,不能直接显示Flash,可以看成品文件,或者看这个帖子:http://bbs.airia.cn/FLEX/thread-3929-1-1.aspx,上面有在线演示。等以后装了相应插件,能正确显示Flash后,再来帖在线演示。)
2009年1月28日星期三
【文章】一个新手眼里Flex开发的层次
啸风子 于 2009年1月28日星期三 15:33 发表于 啸风子Flash站点(http://tigerrrflash.blogspot.com/)
----------------------------------------------------------------------
一个新手眼里Flex开发的层次
创建日期:20090128
更新日期:20090128
序——
因为我不是计算机或软件相关专业出身的,很多知识都靠自学,结果经常感到迷茫,不知道做什么,怎么做。没有与实际项目或者公司接触过,是我最大的障碍。像现在,我已经毕业了,一个人在外地找工作,周围都没认识的相关专业的人,能接触的只有网络,很容易迷茫。好在网络上几乎什么都有,只要自己善于搜索,就能得到自己需要的知识和朋友。为了摆脱迷茫,我给自己想做的Flex开发分了下层次,前途也就清晰明朗多了。现在我把自己所做的分析结果发出来,希望能对和我一样迷茫的新手有所帮助。
Flex开发概述——
从以下几点来对Flex开发做下概述。
为什么要做(Why):客户有项目需求,或者自己想做产品。
做什么(What):基于Flex的应用软件,主要是客户端应用,包括Web(Flash Player)、桌面(AIR)两个平台。必要时,也需要开发非Flex相关的程序。
怎么做(How):使用用例等工具做需求的分析,使用UML等工具做软件系统的分析设计,使用Flex SDK或Flex Builder等工具编码实现,以及测试、部署等。以上步骤可以不断迭代。
谁来做(Who):Flex开发者。复杂的项目需要团队合作,安排好分析、设计、实现、测试等任务。
以上是很简单的概述,以下将做详细的分析,但是不按照以上方式来讲,而是以符合我自己学习需要的方式来讲,即按照内容层次来讲,并结合我的练习项目“我的世界”和新手学习建议。关于项目“我的世界”,可以见我的相关文章,如此文:《“我的世界”项目分析之用户角度》,网址:http://tigerrrflash.blogspot.com/2009/01/blog-post_25.html。
层次综述——
分层分类有利于分工合作。比如IT,可以分为:硬件层、系统软件层、应用软件层等。比如一个信息管理系统,可以分为:客户层、服务层、数据库层等。
我现在要讲的层次是我根据自己需要划分的,具体包括:战略层、应用层、功能层、平台层,这些层次的划分并不是严格的,界限模糊。比如,加解密对于网站开发者来说属于功能层,但是对于专业加解密软件开发者来说就属于应用层了。因此,层次划分只作参考,不必苛求。
战略层——
战略层指的是比较高层的非技术性的内容。包括组织管理、资源、市场营销、发展前途等。在决定做一个应用前,比如下载软件,就要考虑这些问题:是否有足够人力物力来完成,是否有前途,市场是否饱和了,对自己找工作是否有帮助等。
战略层涉及很多知识,包括管理学、心理学、市场营销、当前社会状况等,还有很多专业性的知识。比如如果做一个教学系统,那么,就要了解些教育学知识和教育学现状。
项目“我的世界”战略层的部分描述:
人们需要个性化的网络展示,现有的博客个性化能力不是很强。即有发展前途。
基于Flex的RIA可以创造更有表现力的展示。即适合Flex。
即使是一个新手,也可以为增加博客等的表现力做点工作。即有人力物力。
等等。
新手学习建议:
对一些成功应用的战略分析。可以找一些资料,也可以自己思考分析。比如研究Facebook成功的社会学心理学因素。
心理学资料。经典心理学教程,如戴维.迈尔斯的《社会心理学》,里面案例比较多。
经济管理资料。了解些知识如长尾理论等,还是很有好处的。
等等。
应用层——
应用层指的是软件系统的具体应用内容。简单的说,应用层指的是做什么,比如,教学系统、电子商务、博客、网络游戏等,就属于应用层的内容。
应用层是软件开发的关键部分,要做好从大概描述到详细分析和设计的工作,其间要使用软件工程方面的知识,利用好UML等工具,还要了解一些专业领域的知识,比如做教学系统要了解教学的基本过程,做游戏要了解游戏设计的基本知识。
项目“我的世界”应用层的部分描述:
博客展示应用:利用博客网站的接口,读取博客信息,用3D层叠的形式展现博客,并能方便的放大缩小。热门博客可以突出显示。
相册展示应用:利用图片网站的接口,读取相册图片,用3D层叠的形式展现照片。并且可以添加装饰性图案,对照片做些处理(旋转、缩放等)。
装饰性应用:加个可爱的动画精灵,增加吸引力。
等等。
新手学习建议:
软件工程知识。比如面向对象分析与设计、软件开发流程、文档撰写方法、注释撰写方法、编码规范等。我看过的有《面向对象分析与设计(UML 2.0版)》、《编写有效用例》等。
应用领域知识。比如游戏开发需要游戏设计的知识,RIA开发需要Web设计开发知识等。我以前看过一些游戏开发的书,现在做RIA,就要找些Web设计与开发的书来看了。
分析现有成功应用。比如Facebook的界面设计、结构设计等,比如分析某个RIA网站的3D层叠效果等。与战略层不同,现在更偏重于技术。
等等。
功能层——
功能层指的是程序的功能,一般指常用的功能。比如,用户界面、加解密、网络传输等。拿游戏来说吧,功能层的内容还可以有血槽、全屏功能、角色移动等。功能层的程序一般可以做成类库,可以重复使用。
项目“我的世界”功能层的部分描述:
用户界面,加解密,3D层叠功能,图片处理功能,动画精灵,各个网站的API使用方法。
应用层描述需要什么功能,功能层描述功能怎么实现,可以找现有类库,可以自己开发。
等等。
新手学习建议:
学习、使用各种类库。包括Flex框架类库以及很多常用的功能类库。如果能复用优秀的类库,就不用自己费心开发了。必要时可以修改(开源的情况下)。
开发自己的类库。如果需要用到的功能没有现成的类库,或者类库费用太高,而自己又经常使用,那么可以自己开发类库。
模仿功能。如果发现别人开发的某种功能很好,但是不能直接借用,那么可以模仿开发自己的功能。比如觉得某软件的菜单很不错,可以自己模仿开发一个,以备自己以后使用或者分享给别人。
等等。
平台层——
平台层指软件开发的基础平台。如Flash平台、Java平台等。平台跟软件的具体功能无关,比如加密算法,既可以用ActionScript 3.0实现,也可以用Java实现。但是平台也很重要,比如Flash平台适合客户端开发,Java平台适合服务器端开发等。
项目“我的世界”平台层的部分描述:
用户界面使用Flex开发,动画精灵使用Flash开发,服务器端程序使用Java平台。
等等。
新手学习建议:
基础语法。如ActionScript 3.0语法。
工具使用。如Flex Builder 3的使用方法。
平台官方基础类库的学习。如Array的使用方法等。
对平台的分析。比如Flash能做什么,Flex能做什么等。
等等。
结语——
Flex开发新手,尤其是非计算机、软件相关专业出身的,需要的不仅仅是Flex相关的知识,还有很多知识要学,软件工程、应用领域知识、Web设计、数据结构和算法、做人做事等等。更重要的是,实践经验。很少有书讲Flex开发的实践经验,关键还要靠自己不断的动手,以及有经验者的指导:-)。
关于我——
网名:啸风子。真名:陆仕桑。
有事欢迎和我联系:-)。邮箱:lushisang@gmail.com。QQ:531042894。博客:http://tigerrrflash.blogspot.com/。
踏踏实实做事,潇潇洒洒做人。
2009年1月26日星期一
【过程】基本学习完官方教程《Flex 3 Getting Started》
啸风子 于 2009年1月26日星期一 19:14 发表于 啸风子Flash站点(http://tigerrrflash.blogspot.com/)
----------------------------------------------------------------------
进过几天每天不长的学习,基本把官方教程《Flex 3 Getting Started》学习完了。如果我英语水平高些的话,就学习的更快了。
其实很多内容我都了解了,但是我还是很认真的一字一字的看,结果导致学习效率不高。但是为了打好基础,我就硬着头皮看下去了。
接下来我就不再这么按部就班的学习了,而是以项目实践为引导,边做边学。项目暂时起名为“我的世界”,还没做好规划,只是写了一些讨论,见:【文章】“我的世界”项目分析之用户角度。
接下来我就努力做项目吧。加油!!!
