2009年2月3日星期二

【项目】项目“MyWorld”相关

【项目】项目“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”

【项目】创造“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后,再来帖在线演示。)