YouYee OpenSource: ViewPoint http://youyee.org/viewpoint/ A simple blog from youyee opensource zh-cn Sat, 30 Aug 2008 07:41:49 +0800 Sat, 30 Aug 2008 07:41:49 +0800 YouYee YouYee YouYee<![CDATA[Flash Player 9.0 bugs for Mac]]>http://youyee.org/viewpoint/article_view.php?topic_id=99同样是这几天开发VP时遇到的问题,因为需要保证在Mac平台下也能正常的使用VP5大部分的功能,对还在雏形的VP5进行了Mac环境下的测试,结果发现两大功能无法使用:

1、摄像头无法打开

2、文件上传失败

其实这些问题早在VP4就存在,但是当时由于不考虑Mac平台,所以没有更改,而这次针对这两个问题进行了研究,最后得出以下结论

1、摄像头的问题

之所以打不开是因为Mac电脑上有三个摄像头选择,而当中却只有一个摄像头是可以使用,真是搞不懂Flash Player 9怎么会探测出三个摄像头,也不知道为什么Mac会让Flash Player 9获得三个摄像头,所以没有办法了,Ajax都能做成兼容各个浏览器的,我们的Flash更加可以。

首先我们可以先判断一下Capabilities.manufacturer,如果是Adobe Macintosh则说明Flash是运行在Mac环境下,此时就要开始谨记,我们的Mac下默认的摄像头名称是:USB Video Class Video,这个是非常重要的,然后就是普通的操作了,var camera: = Camera.getCamera("USB Video Class Video"); 这样获取摄像头保证能够在Mac下工作了。

2、文件上传的问题

具体方法我还没有测试,但是查遍所有的论坛和国外的Blog,终于找到一个姑且暂时对某些Mac系统奏效的方法,就是在Upload的URL文件上让服务器返回一串数据,甚至是一个0,这样就能够解决文件上传后onComplete事件失效的问题,之所以是还没有测试是因为VP5还在开发当中,这些测试要等到开发基本完毕后才能去进一步测试,所以不敢保证一定都能够奏效,因为我发现那个Blog上面的留言中很多人说可以用,但是也有很多人说依旧没有用。

]]>
Sat, 23 Aug 2008 10:03:39 +0800
<![CDATA[Ajax 的另类数据加载方式]]>http://youyee.org/viewpoint/article_view.php?topic_id=98 传统的Ajax教材会告诉大家,利用XmlHttpRequest来异步加载数据,然后JavaScript有着和Flash一样的问题——跨域操作,面对跨域的问题我们的XmlHttpRequest似乎变得无比之脆弱,可是问题总是要解决的啊,Flash可以在需要跨域的服务器上丢下一个crossdomain.xml策略文件,而我们的JS呢?最近的工作中总结出如下经验:

方法一:接Flash之东风,实际上这不是一种好的方法,但是既然是总结还是写在这里了,大家都知道我们的Flash通过策略文件是可以跨域的,而且通过好用的ExternalInterface API我们又能让Flash和JS进行通信,这就造就了JS可以接Flash的东风来异步跨域调用服务器的数据了。

方法二:利用 iframe,其实这点和方法一是有异曲同工的效果,通过 iframe 加载跨域服务器上的一个页面,该页面里储存了JS的数据(JSON对象即可)这样通过DOM就能访问到,但是要谨记: document.domain = ""; 这里子页面和父页面的域地址要写成一样!实际上这个方法可以让服务器直接吐出一个带有数据的页面而不需要在服务器上放策略文件,这比起Flash却省事多了。

方法三:我认为也是一个很变态的方法,可能是自己从事Flash编程时间太长了吧,导致看到这些方法都觉得很奇怪,其实就是修改 <script id="my_loader" type="text/javascript" src="http://www.somedomain.com/data.js"></script> 的src属性,通过这个方法直接从服务器返回一串JS代码,代码里面包含一个回调函数,这样当脚本被异步加载后,通过浏览器编译成功并且开始执行的时候,这个回调函数就能被调用,从而实现数据的异步接收。我个人认为这个方法综合来说最好,因为服务器返回的代码量是最少的,而且方便简单。

综上所述,JS的跨域能力还是很强,应该说非常强大,后面的两种方法是经过舜子的指导来了解的,相比之下,我们的Flash在跨域问题上确实有点薄弱了,方式单一,不过却是一种简洁的方法。

]]>
Sat, 23 Aug 2008 09:50:17 +0800
<![CDATA[关于最近的一些进度]]>http://youyee.org/viewpoint/article_view.php?topic_id=97好久都没有更新youyee.org上面的项目,其实并不是我自己偷懒,而是这个月在忙入职的事情,有太多的东西在手头,而且VP5项目又在开发中,所以这上面的一切都显得有点迟钝了.

关于VP5的一些细节

实际上VP5的开发已经进入最后30%的阶段了, 如果不出意外应该本月能够放出一个Alpha版本,除非这段时间太忙, 新版本的ShareTopic发布功能更加强大,尤其是对图片的上传和管理能力将进一步提高,另外对相册也进行了改进,使得图片以及文章的发布速度要更加的快.视频的发布功能则显得更加人性化,提供更加方便的截图功能.而留言板则加强了加密能力和更加强大的留言功能,用户能够留下富文本的内容,而且能够通过摄像头来拍摄自己的头像.至于日记功能则还在策划中暂且先不公布吧.新的VP5集成最新的音乐播放器,能够实现方便的播放列表编辑和管理功能.另外整个VP5将与Writing更加紧密地结合,并且在Beta版本会推出Widget功能多项应用.

关于最近的生活

实际上最近每天很晚才回到自己的住处,为了能更多的完成自己定下的任务,不得不加班去做公司和自己的项目,虽然很累但是很开心.因为这就是自己所追求的生活吧.刚从一个学生的角色转换成为一个职业人,说实话还是有很多的不习惯,不过有句话说得好,生活有的时候就像强奸,你只有两种选择: 无力的反抗或者学会享受,既然自己选择了后者那么,就不要觉得辛苦和累了.其实我非常喜欢这种每天来到公司打开Flex或者Aptana进行开发的,我称之为平静的努力的生活,每天看到一个又一个的小应用从自己的手中出现,确实有种创造的成就感,正如VP从我的手中诞生一样,在心中充满着对其的希望和怜爱.

关于成长和体会

自己有了很多的老师,包括Allen和舜子,他们平时都耐心地教导我,一个是我Flash方面的导师,一个则是Ajax技术的导师,虽然感觉和他们差距很大,但是还是要奋起直追,努力成为他们中的一员,因为我们的团队是优秀的,为自己能加入到一个充满激情的团队我很高兴,也很为此骄傲.其实无论是公司还是社会都是一个大学堂,消极的人会认为环境不好,而积极的人应该找到生命中的闪亮点,然后朝着其信念的方向去努力无论是对还是错.需要的是一种倔强!也许自己还真的像他们说的还是一个小孩,还有很多的东西都需要自己去探索,这些感悟可能都太片面了吧.但是怎么都好至少是自己的一些亲身体会.

写了这么多都是最近的,没有经过什么修饰的东西,或许放上来和那些一切在奋斗的兄弟们分享吧,年轻人正在朝着他们的方向进发...

]]>
Sun, 3 Aug 2008 23:03:30 +0800
<![CDATA[有了API还需要界面描述语言吗?]]>http://youyee.org/viewpoint/article_view.php?topic_id=96 早在一年前就和老米讨论过,当时老米同学提出:“我觉得以后不再需要HTML了,因为只要提供足够的API,我们的JavaScript就完全能够生成我们需要的任何界面了。” 听到了这里我当时和我的一个朋友反对地说:“不可能,而且以后HTML和JavaScript会更加强大,而不是那一个衰弱:HTML拥有更加强大的描述能力,而DOM提供的API也更加强大,从而JavaScript能够更好地控制每一个元素属性与样式。为什么这样说呢?纵观Flash的发展历程就知道了,我们的Flex从无MXML到有,就是一个这样的阶段,全部用ActionScript当然可以把界面描述出来,但是效率和工作的花费是得不偿失的,为了能够让ActionScript能够准确地描述出界面,我们需要测量,需要对固定的对象进行排位,需要对每一个元素的位置进行安排,这当中是非常复杂的。就工作量而言,甚至呈级数的增长。

然而描述语言的出现,大大降低了我们的工作复杂性,一切都变得简单,为什么?因为其更加专业,更加适合描述一个界面。

再观察Flash自身,有朋友和我提过为什么不把ViewPoint的UI完全用通过Flash Player 的绘图 API 来绘制出来呢?而是直接利用Flash绘制出一个皮肤,然后将对应的类导入链接好。其实这样做有3个目的:

1、更好地实现代码分离,AS不掺和界面的东西,其要管的是界面上各个元件的动作。设计师们只需要设计出UI部件,开发人员只需要编写好程序。然后通过绑定和链接,就完成了。

2、之所以不使用AS来描述界面还有一个致命原因就是过于繁杂的代码,是“繁杂”而不是“复杂”,简单的一个窗口界面我们就必须用N行的代码来描述,更别说一个华丽的窗口了,当你真这么做的时候会发现是愚蠢和无奈的,因为工作量很大,即便原理很简单但是却很要时间,为何用一把小刀来剧树呢?

3、利用AS来描述界面最希望实现的一个功能是:能够让用户更好地制定页面,这点我是不反对,要是想制定页面也不是难事,这点既是Flash的强项也是Flash的弱项,而这么使用刚好就展现出其弱项了。正如第一点所提,由于界面和代码的分离,所以设计师可以设计出好几套完全不一样风格的UI,然后编译出不同风格的VP,这样不但约束少而且可以让更多的人加入到这个设计工作中(虽然这样可能存在灵活性不够等问题,但是确是一个折中的办法)。而不是让不懂AS的设计师去苦涩地吞咽那些代码。不要说这样会导致整个体积会增大,VP仅仅有200K的大小,而且不同的风格仅仅对应不同的文件,这样就不会出现需要一次把所有风格都下载的问题了。

综上所述,每个语言都有自己的长处,正确地使用才是关键,最忌讳的就是语言之间“狗拿耗子多管闲事”。

]]>
Sat, 21 Jun 2008 17:43:31 +0800
<![CDATA[即将结束的大学生涯]]>http://youyee.org/viewpoint/article_view.php?topic_id=95 还有16天,我的大学生活就要结束了,届时,学校把学位证和毕业证发放以后就开始对我们这些大四的学生进行“遣返”。感觉这四年过得好快,而且是一年比一年快,似乎自己想留下些什么,又似乎不是,几次端起了相机,却又放下了。因为自己不知道怎样拍,才能把这些记忆给拍下来,昆工,这个让我既爱又恨的地方,马上就要和他告别了。

回顾这四年来的生活,发现和高中的自己相比,改变了很多。无论是思想和行为上。其实和之前听说的那些毕业离别情节的描述很不一样,或许正是因为自己对昆工的这种复杂的表情吧,一所一开始自己很不心仪的学校,一个自己被家人要求报而自己却很不喜欢的专业,到后来,是自己磨刀练兵的地方,是自己废寝忘食编程的地方,这所大学给了我想要的和不想要的,太多了。

即将离开其实自己很兴奋,也有点害怕,因为要面对社会了,因为自己不再是一个学生了,这一切一切都要靠自己来面对了。而兴奋的是从前就很叛逆的我,这一刻似乎就要实现自己多年前的梦想:脱离父母,找到自己的天地。

上次和唐勇以及老米吃饭的时候唐勇说过了,不要再怨恨昆工怎么的不好了,毕竟你在这里能够安安心心的编四年的程序,能够安安心心的看四年的书,在这孤寂的环境里,或许这才是一个开发人员极度追求的环境!想想也是,昆工清一色男生(比起广工甚至还要严重),虽然离市区不远,但是男生自然是少去上街的,加上周围的人基本没有谁喜欢出去活动,似乎在这里完全不会受到任何人的打扰。

再回头比较四年,似乎大四自己却是最“充实”的,不再整天翘课躲在宿舍编程了,而是背起书包上图书馆,找一个自己喜欢的位置,去看自己的专业书。每天都是中午出发,到楼下的小卖部买上一只可乐,然后放在书包里,穿过天桥,来到教学区图书馆。这在自己和别人的眼里是很不可思议的,因为半年前自己都不会这么自觉。没办法,为了毕业,也为了毕业设计,为了对得起这四年的学费,还是最后努力一把吧。

终于,一切都快要结束了,这是才发现苦的变甜了。生活即将改变,我即将迎来自己四年来最盼望的一天——毕业。却在这个时候脑海记忆的深处却让我不自禁的回头看看这里:4栋的宿舍(虽然我只住了一年),一栋B座的宿舍,图书馆,主楼,以及那个在机电院里我很讨厌去的电工实验室。讨厌的地方却开始变得没有那么讨厌了。

班上和宿舍的散伙饭还没开,自己已经早早地准备好迎战的准备了,因为大学里面最让自己放不下的是友情,哪怕是再不能喝酒也要把该干的干了。但是我是幸运的,几乎所有要好的同学都签到了深圳,这意味着大家并没完全地分离。我也看到了我曾经不喜欢专业的唯一好处:就业率奇高!

这几天大家都在忙最后的毕业论文,老师在催,学生在赶,似乎还没有谁像我这么清闲地去“抒发”自己的感情。

Bye my campus life...

以下摘自《毕业随想曲》

系学校呢个地方已经渡过几个年头

依家转眼间又到左要离开呢个时候

知道人生呢条路仲有好长一段要走

会唔会觉得好多感受但你讲5出口

以前会觉得日子过得好象度日如年

以前会觉得自己对咩事都无乜意见

而家要面对一套最难玩嘅游戏软件

人生噶选择5似上网咁任我去边

记得以前系学校好似过得混混噩噩

记得以前miss闹我话我大声夹恶

唔记得边个教我语文英文作文数学

剩记得边个女同学着得 最薄最索

以前唔理合唔合格 最紧要有性格

而家日日玩博客 将来要搏命揾客

时间年复一年 自己一问一答

眨下眼 二十出头已经有咗白头发

或者你 而家仲系系度稳紧工

或者你 而家仲系食紧西北风

或者你 已经变左一个百万富翁

5理你 系一个苦工定集团股东

系呢个时候 有乜野你尽情去讲

有乜野成就 或者你又有几彷徨

系呢个时候 5理你又有咩愿望

毕业呢一晚 个天冇咁快会光

I'm a graduate hey graduate ho!

离开不等于结束

]]>
Sat, 14 Jun 2008 10:24:48 +0800
<![CDATA[从Windows到Mac的一些体会]]>http://youyee.org/viewpoint/article_view.php?topic_id=94实际上自己也是从一年前才开始成为一个Mac用户,从Windows平台转向Mac平台,有着很多的不习惯和经历,在此和广大Mac以及Windows用户一起探讨一下。

先从使用上来说,Mac OS源自于Unix血统,有其特有的命令终端,这也就造就了Mac在某些时候的使用起来很像Linux(某些软件编译安装的时候),这其实是让我非常头疼的,小生我从开始接触电脑来就没有使用过命令来安装过软件,上次为了配置Mac下面的Apache以及PHP,可是把我害苦了。

虽然Mac被誉为最简易的系统,很容易上手(的确是),但是刚刚接触的时候难免还是有点水土不服的,给我最大的感觉就是鼠标,在鼠标的移动上是最让我无法适应的,发现自己甚至像刚刚学会使用鼠标的人一样,因为移动的加速度都不一样了。加上没有右键,当利用BootCamp安装Windows的时候,发现在Mac里面无法实现右键(在Mac里面用两个指头触触摸板代表右键),这是很无语的。

接下来要开始说说我们开发上的问题了,Apache + PHP + MySQL的问题就已经让很多习惯Windows的用户觉得棘手了,所以为了节省自己的时间和精力只能装个MXMP来顶着先,而且人家确实做得还是比较优秀的。

当开发Ajax和Flash之类的RIA的时候,尤其是两个技术结合的应用的时候,会遇到很多问题,在这里总结一下好了:

1、鼠标的滚动事件无法被监听。

其实这个问题在Windows的Safari里面也存在的,Flash内容是无法实现对Mouse Scroll事件进行监听。

2、部分按键无法监听。

例如在Mac系统里面F12代表Widget,而Writing的Widget也是这个按键,那么就会出现冲突,导致Writing的Widget无法在Mac平台中被正常地启动和关闭。

3、DOM的鼠标事件会和Flash的内部鼠标事件发生冲突。

这个问题也是比较严重的,目前解决方法虽然有,但是却很繁杂。具体表现是这样的,例如我们对一个DIV元素监听,而DIV内部是SWF内容,这个SWF内容又有对鼠标事件的监听(例如按下按钮的操作)。那么如果两个监听器都存在的话,SWF内容的所有与鼠标有关的操作都会失灵,仅当把外部DOM监听器撤除后才能被正常使用。这也是让我最郁闷的地方了。

虽然存在很多这样那样的问题,但是在Mac环境下开发可以说痛苦并快乐着,享受着华丽的界面与功能的同时却做出着放弃以往自己在Windows下形成的一些习惯。

P.S. YouYee ViewPoint 5th已经在开发当中了,我会先开发出一个原型版本(Prototype)然后再开发新的主题风格。ViewPoint 5th将会带领YouYee OpenSource进入一个新的里程。

]]>
Fri, 6 Jun 2008 20:30:23 +0800
<![CDATA[地震抗灾,有人却唯恐天下不乱!]]>http://youyee.org/viewpoint/article_view.php?topic_id=93 本来这上面是不发布这一类的文章,但是实在看不下去了,四川的同胞遭受那么多的灾难,自己也有部分好友在成都,心里实在为他们感到担心和同情。

但是有些人却唯恐不乱,我不知道他们是出于什么目的,或者他们是否为ZD,在这个关键时刻还要不断散播谣言,诋毁国家政府和中国共产党,实在让人气愤。甚至还有人抛出言论说国家早就预测到这次地震,却故意隐瞒。对此,我真的觉得那些散布这些谣言以及相信这些言论的人无聊和无知,这些散布谣言的人无比可耻!

地震确实可以在某种程度预测到,例如日本通过地震云的观测等等,但是地震云只在地震的前夕才可能出现,如果按照那份谣言说得,仅仅凭上面那几个计算公式就说明地震被“算”出来了,只能说你真会瞎掰!如果被你发现这么牛B的算法相信你是我国第一个拿诺贝尔奖的人了。而且既然能够算出来为什么那个时候不公布出来而你现在公布出来?分明就是地震发生后胡诌出来的,别告诉我们政府不让公布,那现在又能公布了?!无耻,无聊,无知!

虽然我是一个无党派的公民,而且对共产党始终保持中立态度,但是这次政府和中国共产党确实重视我们的四川灾情,人民子弟兵的付出是人都能感受到,为什么要隐瞒地震?动机是什么?!怕社会动乱?地震后不更加混乱吗?!怕影响奥运?无知,地震你阻止不了的,能够营救人员和损失才是真正的不影响奥运,你不至于把全中国人都当傻瓜吧!

废话就少说了,有钱捐钱,有血捐血,至于去四川灾区当志愿者这个想法虽然很好但是可行性不高,因为我们不是专业的人员,我们去到只会给救援工作添加麻烦,把钱和血捐出来吧,用这种方法来资助我们的救援工作会更加实际。

再次告诫这些散播谣言的人,不要再把全国人民忽悠了!

]]>
Sat, 17 May 2008 12:14:27 +0800
<![CDATA[Adobe Flash Player 10 Preview 发布]]>http://youyee.org/viewpoint/article_view.php?topic_id=92Adobe® Flash® Player 10, code-named "Astro," introduces new expressive features and visual performance improvements that allow interactive designers and developers to build the richest and most immersive Web experiences. These new capabilities also empower the community to extend Flash Player and to take creativity and interactivity to a new level.

This public prerelease is an opportunity for developers and consumers to test and provide early feedback to Adobe on new features, enhancements, and compatibility with previously authored content. Once you’ve installed Flash Player 10 beta, you can view interactive demos. You can also help make Flash Player better by visiting all of your favorite sites, making sure they work the same or better than with the current player.

3D Effects - Easily transform and animate any display object through 3D space while retaining full interactivity. Fast, lightweight, and native 3D effects make motion that was previously reserved for expert users available to everyone. Complex effects are simple with APIs that extend what you already know.

Custom Filters and Effects - Create your own portable filters, blend modes, and fills using Adobe® Pixel Bender™, the same technology used for many After Effects CS3 filters. Shaders in Flash Player are about 1KB and can be scripted and animated at runtime.

Advanced Text Layout - A new, highly flexible text layout engine, co-existing with TextField, enables innovation in creating new text controls by providing low-level access to text offering right-to-left and vertical text layout, plus support for typographic elements like ligatures.

Enhanced Drawing API - Runtime drawing is easier and more powerful with re-styleable properties, 3D APIs, and a new way of drawing sophisticated shapes without having to code them line by line.

Visual Performance Improvements – Applications and videos will run smoother and faster with expanded use of hardware acceleration. By moving several visual processing tasks to the video card, the CPU is free to do more.

See the release notes for more information regarding this prerelease technology.

]]>
Thu, 15 May 2008 17:55:23 +0800
<![CDATA[YouYee Widget开发计划提出]]>http://youyee.org/viewpoint/article_view.php?topic_id=91 早在YouYee Player Standalone开发的时候,YouYee Widget的概念就成型了,当时是打算针对传统的Blog制作一些具备小功能的应用,能够让用户方便地通过嵌入Flash的方式来为他们的页面添加一些小功能。然而仅仅这样做还是完全不足的,用户缺少管理和对这些应用的控制能力。而这些应用本身又不能达到统一,因为要实现能被方便控制的功能不是仅仅对Flash应用自身开发就能解决的,必须配合Ajax才能实现比较完美的功能。

YouYee Writing是基于传统的Blog系统与Flash Blog系统的中间产物,为了让其在具备一定的拓展能力,专门针对Writing写了一个拓展管理器,用来把拓展的页面和功能加入到导航栏,并且通过Ajax来动态读取他们。但是仅仅的能够控制导航栏的项目是不够的,更本不能算得上是拓展。

之前就已经开发出类似Widget功能,为了能够让Widget更好的解决前面提到的功能,YouYee Writing集成了Widget运行环境YWRE(YouYee Widget Runtime Environment)这个运行环境是由JavaScript编写的,能够提供Widget的拖动,定位,属性更改,显示,隐藏以及加载等功能。通过这个运行环境,无论你的Flash是什么,这些功能都是能被使用的而且做到了支持IE,Firefox以及Safari(Safari对Flash的支持比较差,所以屏蔽掉了拖动功能)。

事实上,已经有部分的Widget被开发出来了,一个是用于天气的:YouYee Weather,一个是用于显示Mood日志的:YouYee Mood Widget,由于目前还未提供对这两个Widget下载,所以如果有用户需要可以自行联系我。即便不是YouYee OpenSource开发的Flash内容一样能够被使用,而且完全能够实现上述的功能,只是在Flash内容需要拖拽操作的时候会出现一些问题。如果仅仅是简单的动画那么不会有任何问题。当你进入你的页面的时候按下F12就能启动你的Widget功能(如果存在的话)。

谁是Widget的开发人?你!Widget的开发可以很深奥也可以很简单,只要您会开发Flash,那么哪怕是小小的动画也能当成Widget使用。而且YouYee OpenSource将会在不远的将来提供Widget下载服务,任何人都能申请吧自己的Widget放在YouYee OpenSource提供下载的地方,并且标注上您的版权信息。

YWRE有哪些接口呢?如何实现?首先看下面的属性列表:

position: 指定定位的方式有绝对定位和相对定位以及固定(IE6不支持固定定位),有absolute, fixed, relative三个参数选择

left:整数值,离左边框的位置

top:整数值,离上边框的位置

right:整数值,离右边框的位置

bottom:整数值,离下边框的位置

wmode:选择Flash是否透明,这点在需要在Firefox环境下输入中文支持是十分重要的,参数为:window, opaque, transparent

dragEnable:确定是否被拖拽(0表示不拖拽,1表示拖拽)

width:整数值,指定Flash的宽度

height:整数值,指定Flash的高度

函数方面有:

showWidget():显示所有的Widget

hideWidget(): 隐藏所有的Widget

enableDrag(id):启用拖动功能

disableDrag(id):关闭拖动功能

函数功能可以通过Flash的ExternelInterface.call("方法","参数")来调用。

position=fixed&left=0&top=130&width=250&height=350&service=YouyeeServ.getMoodList

当你需要添加一个Widget的时候只需要打开Manager,在extension name输入一个Widget ID(必须为连续的英文字母,请保证这个ID的唯一性),在url里面输入SWF文件的地址。

然后把上面的代码插入到description即可。上面那句话的意思是:固定定位,距左边框为0,上边框为130像素,宽度为250像素,高度为350像素,后面的参数是直接传给SWF文件的。每个属性之间利用符号"&"来分隔开。

您还可以自定义您的传入参数,这些参数不会干扰YWRE,并且会被顺利地传到Widget里面。

//下面的代码交你如何接受到上面提到的service参数

public function getRequest(var_id:String):String

{

var return_str:String = "";

if(this.loaderInfo.parameters[var_id] != null){

return_str = this.loaderInfo.parameters[var_id];

}

return return_str;

}

getRequest("service");

关于Widget的介绍就到这里,大家可以通过访问这个网址来观看Widget的运行效果: http://www.youyee.org/viewpoint/index.html

进入后当左上角显示出按下F12启用Widget这个提示时直接按下F12就能打开Widget功能。

]]>
Thu, 24 Apr 2008 10:21:37 +0800
<![CDATA[讨论:MOUSE_OVER & ROLL_OVER]]>http://youyee.org/viewpoint/article_view.php?topic_id=90在某种意义上。RollOver和MouseOver是一样的,他们都是监听鼠标在DisplayObject上的触发事件,很多时候大家都可以互换使用。正如RollOut和MouseOut一样,但是有人便开始问了,如果一样为什么还要存在两个这样的事件呢?不是多此一举了吗?

实际上RollOver和MouseOver是有微妙的差别的。

假设现在存在一个Sprite姑且命名其为father,然后Sprite里面有一个背景(DisplayObject)和一个按钮(SimpleButton),背景面积比按钮要大且处于最低层(index = 0),按钮处于背景的正中处于背景的上一层(index = 1),那么此时如果我们先开始对father监听MouseEvent.MouseOver事件:

1st.鼠标移到背景上,但还没有触碰到按钮,这个时候father发出了一个MouseEvent.MOUSE_OVER事件。

2nd.接着把鼠标继续移到按钮上,此时father又会发出一个MouseEvent.MOUSE_OVER事件。

然后我们继续对father监听MouseEvent.ROLL_OVER事件:

1st.鼠标移到背景上,但还没有触碰到按钮,这个时候father发出了一个MouseEvent.ROLL_OVER事件。

2nd.接着把鼠标继续移到按钮上,此时father并没有发出MouseEvent.ROLL_OVER事件。

从上面的小实验应该能够大体区分出两个事件的微妙与不同了,相信有经验的朋友也一定猜出来其中的缘由了,之所以造成两个事件不同的本质因素就是冒泡机制(Bubble),ROLL_OVER明显不具备冒泡属性,而MOUSE_OVER则有,所以即便是子元素(Child)的鼠标事件也会一层层的冒出来被监听器接收到。从而也可以解释MouseEvent.MOUSE_OUT和MouseEvent.ROLL_OVER之间的微妙差别了

]]>
Sat, 12 Apr 2008 21:49:26 +0800
<![CDATA[ViewPoint Q&A 集合]]>http://youyee.org/viewpoint/article_view.php?topic_id=89最近实在是忙不过来了,为了能够更好的服务大家,在这里做一个统一的回答吧

Q:为什么我的页面总是停留在Loading?或者弹出出错框?

A:绝大多数由于您的PHP没有安装Mysqli拓展,请按照配置PHP4的方法来配置您ViewPoint

Q:为什么提示我的上载受到限制?

A:这同样是由于您的服务器导致,限制上传的因素有很多,PHP自身对文件就有上传限制,Apache对文件上传也有限制,这些都需要对他们进行分别的设置,具体方法略(Google之)。

Q:怎么导入数据库?

A:Google之了,我只能这么解答,因为PhpMyAdmin的说明资源在网上有很多,ViewPoint目前这个版本已经基本停止更新了,我会在下个版本加入智能安装的。

Q:为什么我的评论或者留言被删除了?

A:除去灌水的可能就是您的问题已经被我采纳,对此评论或者留言进行了解答后,您的评论或者留言就会被删除。

Q:最近能否接一些相关的项目或者用户制定的项目?

A:对不起了,目前由于在开发ViewPoint 5th而且学校又在做毕业设计,时间实在是少得可怜。

Q:能否加我的QQ?

A:当然,非常荣幸。我的QQ就是我的Email地址:youyee@youyee.org

Q:能否教教我什么什么?

A:真的对不起,如果是能立马回答的问题我肯定很乐意,但是一些比较复杂的问题这些是我很难有那么多时间来帮助您解答的,Google是您应该找的第一个老师(感觉自己不断地在为Google做广告)

Q:能否加入到你的项目?

A:非常荣幸,目前很缺人手,Ajax的Flex的同志都要,但是没有钱的说啊...哦对了,文档的编辑也很需要人只要您符合要求,我们很欢迎您的加入。

Q:能否用手机与您沟通?

A:当然可以,但是前提是不要直接通电话好吗?本人在昆明读书,手机处于漫游状态,小生家境并不富裕哦,中国移动的费用高大家是知道的,短信吧,一般几秒钟之内我都能回复您的。

再次对支持这里的朋友说声谢谢,我会十分乐意采用您的建议,尤其是最近的几位朋友提出的很多建议以及发现的一些Bug都帮助了我减少了很多的测试工作量,谢谢!

]]>
Thu, 10 Apr 2008 21:11:00 +0800
<![CDATA[像70后承认我们一样去承认90后]]>http://youyee.org/viewpoint/article_view.php?topic_id=87 或许一提到90后就遭到80后和70后的人反感,脑残体,非主流似乎充述着他们的世界,没有目标,奢华颓废是他们的作风,在他们身上确实有我们太看不惯的东西了,在他们身上确实有着太多的缺点了。有着太多我们看不见和看得见的缺点了。

我是一个标准的80后,或者说是一个纯正的80后,因为我出生在80年代的典型年龄84~86年,我有着大多数80后人的特点,曾经的我们也是70后责问的对象,我们自大,孤僻,我们甚至很自私。但是调查表明我们80后并不是失败的一辈人,我们的自大经过时间的磨练变成了自信,我们的孤僻变成了有自我承担的能力,我们的自私变成了上进和不满足现状,我们并没有因为自己是独生子而变成传说中的小皇帝,相反,比起非独生的人我们更加渴望去沟通。有人说80后是个性和创新的一代,也是即将从70后接过社会的接力棒的一代人。或许曾经的70后很看不惯我们,或许70后也嫉妒过我们,正如我们看不惯90后和嫉妒90后的人。但是不得不承认,我们似乎在赢得70后前辈的逐渐认同中。

叛逆总是存在的,而且总是与时代成背景参照,70后曾经也一定有叛逆的一面,我们80后就不用说了,90后的叛逆当然也是可以理解,我们看不惯他们什么?因为物质上的奢华造就了他们颓废和糜烂,但是我始终觉得这是片面的,之所以我们看到了是因为互联网拉近了人与人之间的关系,也正是因为社会的发展才过快的涌现出那些我们认为很难接受的个性。

我们80后创造了自己的文化,我们叫嚣着去改变这个世界。也是我们这一代,开始发现抄袭别人是错误的,创新才是重要的。正因为如此我们蜕变了,我们逐渐赢得了70后的认同。

90后的人也一样,我们现在虽然看到了很多负面的例子,但这并不说明所有的人都这样,非主流只要不至于过份就当是一种时尚或者主流吧,脑残体虽然读起来有点吃力,况且当是繁体字吧,90后们都还小,他们的光辉现在还未发挥出来,我们直接和他们比是否有失公平呢?

交流可以促进了解,曾经和90后的一些DDMM聊过,发现他们的思想似乎要比起我们那个年代要更加成熟,做事也要更加稳重,他们心里有比我们更多的不安,因为社会的节奏让他们更加害怕和不信任这个世界。他们喜欢以自己的文化特点来宣泄自己的不满以及舒缓自己的压力,这些在我们这一辈人是很难感受到的。

所谓后生可畏,他们虽然永远在我们面前都是“小孩”,但是并不代表他们不行,他们没有能力,或许有一天我们就会发现他们的缺点经过时间的磨练,逐渐蜕变成了他们的优点或者特长。我们作为他们的兄长或者前辈,未来要将手中的重担交付给他们,为何还要对他们这么多的责备?给他们空间和时间,加上我们的耐心,他们会慢慢被引导到正确的路轨上来,成为强大的竞争者的!

]]>
Fri, 4 Apr 2008 13:20:14 +0800
<![CDATA[YouYee Writing - 细节介绍]]>http://youyee.org/viewpoint/article_view.php?topic_id=86目前YouYee Writing的开发一直在紧张地进行着,该项目旨在能够更好地辅助ViewPoint发布和呈现文章,并且通过与ViewPoint集成提供更强大的Blog功能。Writing将会在四月底或者五月初放出Alpha版本,并且到时能够兼容Writing的ViewPoint更新也将发布。

下面来介绍Writing的新功能:

1、支持文章的分类,由于目前ViewPoint在这方面表现薄弱,并且对文章的管理能力不高,所以通过Writing来对文章进行更好的分类管理,用户能够自行新建或管理自己文章的类别。

2、更好的RSS功能,Writing的RSS功能比起现在的ViewPoint的RSS功能要更加完善并且支持文章URL跳转,另外ViewPoint也将支持文章的跳转。

3、能够有效屏蔽广告机器人(并非通过验证码来实现),由于是基于Ajax + Flash的应用,有效地防止恶意广告的骚扰。

4、出色的后台文章管理系统,能够为您的文章提供多方位的管理,并且更加人性化的。并且支持图片批量上传(目前ViewPoint也支持)。

5、由于主体是基于Ajax,在样式和版面上都能方便地被用户自行更改和制定。而且兼容大部分的基于W3C规范的浏览器(已经测试过:IE7,Firefox 2、3 beta,Safari2、3,Symbian S60 3rd 浏览器)。如果您是使用symbian S60 3rd系统的智能手机,一样能够完全地访问Writing的页面。

6、支持排序的文章列表(基于Ajax)虽然不是很复杂的功能,但是能够给您提供一定的方便。

7、与ViewPoint高度集成,ViewPoint的Mood摇身一变,增强成为了行程安排功能,而这个功能既可以在ViewPoint端实现也能在Writing端实现,大家都能互相操作对方。而且在对文章的管理上通过Writing出色的后台管理器,ShareTopic里面的所有文章都能被管理得整整齐齐。

8、Writing甚至还能被轻易地拓展,因为Writing自带一个拓展管理器,通过这个管理器,你的Writing就能轻易与其他的应用相互集合,而且让别人完全看不出是添加上去的,因为她就显示在导航栏上。

9、轻松集成到你的ViewPoint而完全不用担心您的数据会因为需要安装Writing而被丢失。

10、能够管理您的个人信息,而且不会让搜索引擎恶意收集到您的个人信息,因为是基于Ajax动态读取。只有你的客人在访问你的页面的时候才能真正看到被呈现出来的个人信息。

上面提到的部分功能请参考旁边的截图以及说明。

]]>
Wed, 26 Mar 2008 18:22:53 +0800
<![CDATA[IE8 beta1 & Firefox 3 beta3 小试]]>http://youyee.org/viewpoint/article_view.php?topic_id=84今天下载了IE8 beta 1 以及 Firefox 3 beta 3,使用了一个上午,Firefox使用了才几分钟,把刚刚的体会写给大家作为一个参考,有出错的地方请大家指正。

Firefox 3 beta 3

一看到Firefox 3 beta 3的界面我当时心里就有两个字:太丑!尤其是左上角的那个后退按钮,完全没有质感,感觉有点粗制滥造。然后就是刷新和停止按钮,比起原来的风格真的感觉差远了,尽管就布局来说现在的Firefox似乎要更加合理。

正当我失望的时候,一个偶然的机会让我发现原来Firefox 3 并没有我想象的差,我最喜欢的功能罗列出来:

1、支持拖拽的方式把图片从网页拖至桌面保存,或者把链接拖至上方的收藏栏,虽然说这点是在抄袭Apple Safari,但是确实很实用。

2、地址栏的改变也让人觉得欣喜,不过就是感觉太繁杂了。或许我们并不需要提供那么地址信息,这个功能应该能关闭吧。

我最感兴趣的就这两个功能了,关于内核没有测试,以及一些细微的设置面板因为使用了才近一个小时。在CSS+HTML呈现的方式上基本没有观察出于上个版本有什么细微的不同。

IE8 Beta 1

新功能方面我认为没有什么太值得欣喜的,傲游或许是IE8某些功能仿效的对象,但是从开发的角度来看,变化确实存在的,其实不知道是说其是Bug还是变化。

功能方面最喜欢的还是Tool For Developer了,看来IE正式开始要讨好我们开发人员了,在HTML,CSS,Script的Debug功能都非常不错(至少和IE7比)

测试了几个自己制作的页面,通过代码替换等等找到了一些不同

1、CSS 中的 min-width似乎会出错,有的时候甚至会把旁边的元素遮住。

2、某些元素的背景不能被正常显示出来。

3、Table的Border会把Caption也包括进去。

4、th内部的内容会向上靠拢,但是td里面却不会。

5、margin 好像会把背景图片也margin出去...这个是最无语的。

据说IE8是目前来说最能兼容标准的Browser(微软是这么说的),那么上面的这些改变是对标准的支持还是Bug呢?现在是不得而知了。

当然IE8最值得提的是其能够以模拟IE7的方式来运行,这样对调试页面有很大的帮助。

大体的测试就这么多,有什么不足之处请指出,谢谢!

]]>
Thu, 6 Mar 2008 17:44:52 +0800
<![CDATA[如何在类里调用MXML内声明的函数]]>http://youyee.org/viewpoint/article_view.php?topic_id=81最近偶然地被人多次问到如何在一个类里面调用在Flex MXML文件里面定义的函数这个问题,想到里面牵涉的一些知识,于是打算在这里总结出来。

先回答问题:

方法一:可以用过 Application.application.声明的函数名() 来调用函数

方法二:可以通过参数传递的方法来把函数传递给类再让类调用

private var _myfunction:Function;

public set myFunction(func:Function):void

{

_myfunction = func;

}

//以后只需要在你的类里面调用 _myfunction.call() 即可

以上两个方法都能解决这个问题,第一个方法简单直观,但是存在很大的隐患,首先你编译的时候有可能编译器会提示出错说该方法未被定义,还有就是当你执行的时候假设是Application还没有被初始化你就已经初始化并执行了你的类的方法,这个时候肯定会出现运行错误。

所以采用第二个方法是最好的因为其能保证您的Application初始化之后再定义其调用方法。当然这个方法也有可能出现初始化错误等问题但是初始化错误能够通过检测和验证来解决,其不具备不可预知性。

在这里要另外说明一下ActionScript里面的两个特殊的类型:

Function 函数

Class 类

这两个类可以说是最简单的但是却是初学者可能最少直接通过参数传递来使用的。

Class类的具体的使用方法

function set myClass(c:Class):void

{

//传递一个Class来动态生成一个任意的Class

var class:* = new c();

}

其实Class作为参数传递是非常有用的。例如我们在Flex里面看到的PopUpManager.createPopUp 方法里面就能发现其应用的一个很好的例子。

而Function类型就更加广泛地被应用了,event_dispatcher.addEventListener(Event.Complete, MyFunction);

在这里设置监听器就是用过Function类型来为一个对象设置监听器的。

最后再来介绍一个非常特殊的参数类型:

空:俗话说色即是空,或者说武功的最高境界是无式,那么函数的参数如果是留空的,那么他就真的无敌了

//private function average(...args):Number{

private function average( ):Number {

var sum:Number = 0;

for (var i:int = 0; i < arguments.length; i++) {

sum += arguments[i];

}

return sum/arguments.length;

}

这个函数摘自 《ActionScript 3.0 Cook Book》里面,其作用是用来计算平均值的,使用的时候可以任意传入参数:

//编译时会提示出错,忽略即可

average(1, 2);

average(3, 4, 5, 6);

看到了其的特别性了吗?

关于函数的调用与参数就写这么多了,大家新年快乐!

]]>
Sun, 17 Feb 2008 13:36:12 +0800
<![CDATA[YouYee Writing]]>http://youyee.org/viewpoint/article_view.php?topic_id=80随着开发进度的跟进,YouYeePlayer 以及 SimpleVideoPlayer 的项目的开展顺利,下一代的ViewPoint Blog也将提出日程,ViewPoint也会逐渐转向Ajax和Flash结合的RIA应用,计划ShareTopic以及GuestBook将会被转向Ajax的方式实现,但是其发表器依旧采用Flash,主要是考虑到Flash发布器不容易被人留下广告。以及可以获得很多很好的管理功能。

YouYee Writing将是第一个开始设计的组件,其将部分取代现在的ShareTopic功能,以后的ShareTopic功能通过Flash和Ajax来呈现,而Ajax提供更加强大的呈现功能,Flash则在发布和修改上更加方便。Writing更加趋向于目前的博客系统,从而能够让阅读者能够以其熟悉的方式来呈现发布的文章。其新增的功能包括:

  • 1、提供对文章的分类控制
  • 2、提供更好的RSS功能
  • 3、提供添加好友链接功能
  • 4、通过YouYee Mood来实现日程安排功能
  • 在这里我发布了一个预览图,功能部分还处在初始的开发阶段中。

    目前正在开始研究整个应用的结构设计。

    请大家多提意见,谢谢!

    ]]>
    Thu, 10 Jan 2008 23:26:11 +0800
    <![CDATA[我们的Ajax,我们的Flash]]>http://youyee.org/viewpoint/article_view.php?topic_id=79 最近Adobe的网站更新了,最近因为需要使用Live Mail的次数也增多了,这两个网站或者应用都大量采用了Ajax,恩,因为Ajax被业界广泛接受,所以近年来越来越多的传统应用都加入了Ajax,但是随着使用,我越来越发现当中存在了很多的不足。

    Ajax似乎做了他不应该做的事情,首先很多Ajax应用过多的利用Ajax来实现动画,来实现复杂的组件,但是开发和设计的时候有没有考虑到Ajax的运算和表现都是依赖与JavaScript和浏览器的?有没有想过我们的浏览器最擅长的是对字体渲染而非动画渲染?没有考虑这些因素,盲目地加入超级炫的功能,最终导致的是用户的浏览器被复杂的运算和动画崩溃。Ajax好用,不代表他在任何地方都好用,如果连这都无法分清,那更本就不需要使用Ajax,因为Ajax的目的就是要提高用户的体验,主要是在操作体验上,Google是Ajax的倡导者,他们在Ajax的应用上十分谨慎,仅仅在关键部位使用,你看到Gmail有酷酷的动画效果吗?你看到Google的页面出现超炫的动画吗?没有!因为JS是若语言,倘若不说在IE里面执行的效率慢,就算在Firefox里面其运算能力依旧非常非常有限。

    再说Flash,Flash用来做什么?动画?动画必要吗?有时候必要,必要的时候用Flash也不是一件坏事,Flash的名声是被谁弄坏的?动画!一提起Flash很多人就联想到其庞大的体积,让人厌倦的等待时间。所以很多人都认为基于Flash的应用会很慢,很大。每次我听到有人这么和我说的时候都很气愤,其实Flash最适合生成体积很小,速度很快的矢量动画,之所以被人这样认为,缘由就在于被人错误地使用。就像当年JS的弹出窗口一样臭名昭著。

    无论是Ajax 99% Bad还是Flash 99% Bad 这都不是我们要争论的话题,我们过多地把精力集中在技术和方法身上了,而对我们自己本身的反省呢?不要忘记错误的应用都是我们自身的错误判断导致的!

    Ajax的出现不是要让您的页面多么炫,而是在原有的基础上,通过改进的方式让用户更能理解其操作的结果和逻辑,在原有的模式上添加一些方便用户的功能和辅助。要不Ajax也会被人应用成垃圾!合理地把功能和内容分配给Flash和Ajax才是正解。

    ]]>
    Mon, 31 Dec 2007 11:23:40 +0800
    <![CDATA[Array()中的秘密]]>http://youyee.org/viewpoint/article_view.php?topic_id=78昨天在调试YouYeeTree类的时候总是发现子项显示的数目不对,当时就很郁闷,为什么我的数据声明正确但是显示出来的数目总是不对呢?

    一下是数据声明代码:

    var my_array:Array=new Array();

    my_array[0]=new Object();

    my_array[1]=new Object();

    trace(Array(my_array).length)

    //output 1

    明明是两个子数据,为何返回my_array的长度是1?应该是2才对啊?!

    心里郁闷了一阵再来试验:

    var my_array:Array=new Array();

    my_array[0]=new Object();

    my_array[1]=new Object();

    trace(my_array.length);

    //output 2

    这下又正常了,难道是Array转换反而使得其变质了?

    怪小生不才一直没有想明白其中的缘由,继续查阅文档:

    var obj:Object = [ "a", "b", "c" ];

    var newArray:Array = Array( obj );

    trace(newArray == obj); // false

    trace(newArray[0] == obj); // true

    trace(newArray[0][0]) // a

    trace(newArray[0][1]) // b

    trace(newArray[0][2]) // c

    这个是帮助文档里面的例子,算是找到缘由了,再进行刚才的试验:

    var my_array:Array=new Array();

    my_array[0]=new Object();

    my_array[1]=new Object();

    trace(Array(my_array)[0].length);

    //output 2

    现在终于明白这是为什么了,当使用Array()的时候,其会自动创建一个新的数组,然后把Array()内的参数变成其第一个子项。

    看来以后使用Array的时候就一定要留心了,这和其他类的强制转换函数很不一样。

    ]]>
    Sun, 23 Dec 2007 12:46:03 +0800
    <![CDATA[回收Flash Player内存资源]]>http://youyee.org/viewpoint/article_view.php?topic_id=70 架的时候遇到了内存资源的问题,一开始我就使用YouYee Player 来进行测试,新加入的Browser用来帮助YouYee Player浏览播放列表,因为基于新框架的设计的原因,所有的弹出窗口方式都模拟了Flex中的机制,利用一个PopUpManager来实现,经过对内存的反应测试反复开启关闭Browser内存剧增,大约每执行一次这样的操作就会消耗400K-500K的内存,虽然Flash Player内部有自动的垃圾回收器,但是却一直没有看到效果。

    实际上PopUpManager的执行机制:

    声明创建一个新的对象,再将其添加到制定的层(舞台),当该对象关闭的时候监听到事件,把其从舞台移除,并且标记为null。

    理论上这样的机制就能让垃圾回收器把废置的Browser回收掉,但是为什么随着操作的进行,内存确完全没有降低呢?理论上我把所有的引用都删除了才对。带着这些问题我查找了许多资料,最后在官方找到了Resource management strategies in Flash Player 9这篇文章,表面上文章只是介绍了垃圾回收的一些机制,并没有涉及到具体的方法,对Sprite类的回收根本就是没有提及,但是里面有一段文字强调了,使用弱引用,在对舞台设置监听的时候使用弱引用,这样可以帮助垃圾回收器进行回收。我一下子想起来实际上框架中的很多组件都对舞台进行了监听,好在他们是利用StageProxy这个代理类来进行监听的,所以我只要把StageProxy这个类中的监听方法写成弱引用,那么问题就解决了。

    最后重新进行测试,结果令人满意,内存在增长了一段时间后又开始回落,因为垃圾回收器开始工作了。所以对于Sprite(DisplayObject)类的删除应当注意如下:

    1、先利用removeChild将其移出舞台。

    2、删除所有的引用,也就是说把其设置为null,而不是使用Delete,Delete仅对动态成员有效。

    3、注意所有的Stage监听器,把他们注销,最好的方法是一开始注册监听器的时候就指定为弱引用。

    网络上面提供了一些强制的回收机制,个人感觉并不好:通常是利用故意抛出错误的方法来诱使垃圾回收器将其回收。这样做有的时候却是得其反,反而增加了系统的负担。所以还是养成良好的手动回收习惯最好。

    ]]>
    Fri, 30 Nov 2007 10:41:37 +0800
    <![CDATA[YouYee Player 独立版本发布]]>http://youyee.org/viewpoint/article_view.php?topic_id=68 经过两个多星期的框架编写,基于新框架的 youyee player 成为了首个采用新架构的应用。虽然功能上边没有任何大的改变,但是速度却更快而且结构更加明了,youyee player 独立版本是从viewpoint中分离出来的,能够单独的集成到HTML页面中。由于目前的youyee player还处在极为初级的测试阶段(alpha 0.1)所以很多功能还没有完全实现,当中包括搜索功能,播放列表编辑功能。这些功能都是通过外部组件完成的。实际上youyee player很小,由于是基于框架中提供的 Application里面,所以大小保持在55K左右。如果单独分离出来估计会更加小。

    大家可以通过http://youyee.org来下载这个测试版本,源代码和编译好的文件都提供了。实际上player并没有涉及到后台数据库,你只需要简单的复制到一个目录就能测试了,下载的文档中没有提供任何音乐文件,但是依旧可以播放一开始的菜单中的第一首歌,因为文件是保存在 youyee.org 的服务器中的。而且crossdomain.xml 的策略文件中赋予了这个应用跨域访问的权限。

    Youyee Player Standalone提供了以前的版本中没有的一些接口,例如让其读取某个URL的播放列表文件,直接对PlayList进行赋值,或者把一个专辑添加进专辑列表中。而且youyee player改变了原来的工作模式,现在他不需要下载完成后才开始播放了,新的内核让其能够对播放时间进行估计运算,只要选中你的曲目,缓冲片刻后就能开始播放了。新的播放控制条能够实时反映下载的进度和播放的进度,这一点与现在的VideoPlayer是十分相似的。顺带提一下,VideoPlayer马上也要推出独立版本了,同样是基于新的框架。

    最后不得不提一下新的框架,新的框架集成了几个控制管理器,包括自动调整舞台上组件的深度,位置,以及管理遮罩等等,这些管理器比起ViewPoint现在的SystemManager类要好多了,代码被分离在不同的类中,而且提供了十分强大的功能。而使用这个框架只需要把org.youyee.framework.application.Application这个类定义成舞台的根类就可以了。在Application类中甚至集成了一个用来截图的控制器,能够截获舞台上的任何一个区域,感觉想QQ上的截图工具,不过还没有进行图形化。这在下一个ViewPoint将得到实现。

    ]]>
    Tue, 20 Nov 2007 23:04:47 +0800
    <![CDATA[关于Flash动态加载的路径的讨论]]>http://youyee.org/viewpoint/article_view.php?topic_id=64近日由于工作原因,需要把SWF文件放在一个子目录,而根目录内的index.html则把处于子目录的SWF文件嵌入并显示出来。很简单,只需要把movie这个参数做相应的修改便可。

    但是接下来的问题确出现了,由于SWF文件是一个类似ViewPoint这样的程序,需要动态加载图片,文本,音乐,以及视频,在数据方面还需要调用AMFPHP方法,需要执行上传下载服务。结果许多涉及到网络请求的很多服务都无法使用,经过一个下午的仔细研究终于得出答案:

    1、基于NetConnection的所有链接必须使用相对SWF文件的路径地址。

    2、FLV播放由于也是基于NetConnection所以同上。

    3、Upload服务虽然不是基于NetConnection上,但是也同上。

    4、那么剩下的例如MP3,图片,URLLoader读取文本文档或者PHP脚本返回的数据,这些都是相对HTML页面的路径。

    这样疑问就出来了,为什么在Flash里面的相对路径机制这么混乱呢?我一开始也是有点觉得奇怪。但是仔细一想,并测试了几个小程序之后终于发现这里面的小秘密了。

    首先,常规的读取Flash Player会依靠我们的浏览器来请求和读取,他只是监控当中的数据进度。所以相对路径的计算则是交付给浏览器来完成,浏览器根据当前页面的URL来计算要请求的位置。

    其次,由于安全机制FlashPlayer并不能完全访问浏览器里面的数据,我估计其中就包括当前的URL位置(这也是为什么Flash自身的包里面没有提供获取当前地址栏的URL的相关类),连Flex都是利用JavaScirpt来获取当前地址的。

    既然Flash Player无法获取当前的URL地址,那么怎么来计算相对路径呢?唯一的方法就是通过嵌入Flash文件的时候浏览器传入给Flash Player容器的参数,这里面当然是只有SWF的原始地址是唯一有用的了,所以Flash Player只能通过这个救命稻草来或许有限的路径信息。

    这样,事情就变得很明了了,NetConnection是基于Flash自家的技术,当然建立的连接也是由Flash Player自身来完成的了,所以我们的AMF数据是无法被浏览器缓存的,而Upload服务就更不用说了,在Flash Player 8 以前,Flash 压根就没有文件上传下载的API,之前的解决方法都是通过调用JavaScirpt来解决,而自从Flash 8 问世以后 Flash才能方便的监控上传和下载,但是这个监控必须是通过其自身的API来完成。而这一步和浏览器也完全没有任何关系。所以其地址的计算也是相对SWF本身的路径来完成。

    ]]>
    Thu, 8 Nov 2007 18:18:20 +0800
    <![CDATA[Shutter:免费打长途电话]]>http://youyee.org/viewpoint/article_view.php?topic_id=63作为ViewPoint整合的对象:Shutter -- 快门

    只要您是教育网用户,您就能免费使用Shutter来拨打座机,手机,而且是免费的,因为Cdream公司将每周赠送话费,而且打长途前三分钟免费。

    点击下载

    语音+视频+IM,网络通信三项全能

    快门支持在线好友之间进行超清晰语音、多窗口视频和辅助IM的立体通信,赶快戴上你的耳麦,打开你的VideoCam,和你的好友痛痛快快的聊吧!

    对传统通信的创新支持

    快门支持拨打国内、国际长途电话,接通快速、话音清晰、资费便宜。不仅支持PC to Phone,还支持Phone to Phone (点点通),您还可以在快门号上绑定你的电话,当您不在线时,您的朋友也可以方便的找到你。

    看广告、免费打电话

    请注意:在快门上,点击赞助商广告,参与赞助商的广告互动,您是可以获得一定免费分钟数的,广告商会为您的电话付费。如果您参与得足够多,您就能获得更多的免费分钟数,直至永久免费的打电话。

    快门近期的免费活动 —— 电话免费三次方

    点击获取Etone充值卡

    校园梦网充值卡

    点击获取快门聚友卡

    eTone充值卡

    1、注册快门即赠送15分钟国内通话时长

    在快门客户端和主题网站上注册并正确激活的用户,将赠送1.8元话费,用户可以点点通方式拨打15分钟国内通话。

    2、国内通话前三分钟免费

    从9月10日起,在快门产品推广期内,无论使用快门直接拨打还是以点点通的方式拨打国内电话,前三分钟都将是不计费的。

    3、每周与快门好友绑定的国内电话号码间通话享受15分钟话费返还

    每一个用户都可以将自己的一个号码与自己的快门TM账户绑定在一起(绑定办法见常见问题),当另外一个快门TM用户拨打这个绑定号码的时候,无论使用的是何种拨打方式,用户每周都有15分钟的话费返还,超过15分钟的部分,系统按正常计费,不再返还。

    ]]>
    Wed, 7 Nov 2007 20:31:53 +0800
    <![CDATA[关于最近的开发进度]]>http://youyee.org/viewpoint/article_view.php?topic_id=61YouYee ViewPoint 即将发布正式版本,正式的版本将会对部分内核代码进行改进。

    新的框架开发工作已经启动,不久 youyee.org 就会放出最新的框架源代码,而下一个改进版本的ViewPoint也将基于新的框架。现在框架的主要部分已经完成并且通过调试。新的框架将会具备下列新的特性:

    1、加强的兼容能力,在Mac或Linux环境下都能更好地运行。并且解决了无法输入中文的问题。

    2、解决了上一代框架存在的很多BUG,重写了许多核心的代码,使得框架更加小巧并且效率更加高。对文本的控制能力更好。

    3、提供了更为丰富的接口,而且容易被分离。

    新版本的ViewPoint也将基于这个新的框架,并且随带一些新的功能:

    1、即将解决许多兼容问题。

    2、各种控制元件能够对控制对象实现更加精确的控制。

    3、YouYee ViewPoint的各个组件通过新的Widget功能可以插入到您的传统博客当中去,例如您只需要填写SWF文件的地址就能在您的QQ空间里面插入YouYee Player或者显示您的Mood列表,又或者让别人的留言发送到您的Viewpoint上去。这将使您放弃您在QQ空间上那简单的播放器,或者让您的QQ空间更加与众不同。

    4、相片将会像幻灯片一样放映。就像在本地使用一个看图软件一样。

    5、ViewPoint将集成一个拓展管理器,以后您只需要使用一个URL地址就能快速拓展您的ViewPoint功能。

    6、YouYee Player将变得更加方便被编辑,虽然现在的版本也能添加网络歌曲,但是如果要编辑本地的播放列表依旧需要通过Admin来支持,而新版本的YouYee Player将彻底解决这个问题,无论您是添加网络歌曲或者本地歌曲,他们的操作都会集成在ViewPoint里面。而且是同一个编辑器。

    新版本的ViewPoint不需要您更新任何后台文件,如果您现在使用ViewPoint那么新版本发布后您只需要替换掉SWF文件就可以实现众多新的特性了。

    ]]>
    Mon, 5 Nov 2007 21:06:52 +0800
    <![CDATA[ViewPoint加强了自定义功能]]>http://youyee.org/viewpoint/article_view.php?topic_id=58 今天YouYee ViewPoint 0.9.4.5 beta发布,一并发布的有ViewPoint Admin 0.9.5.0 beta ,最大改进在于ViewPoint现在能方便地自定义自身的标题,所有者,描述,天气地区代码,以及Brand图片。并且通过ViewPointAdmin能对播放列表进行十分细致的编辑和控制,而且自动生成并更新播放列表。获得这些功能必须同时安装这两个版本的程序。

    比起原来的ViewPoint的版本现在的版本更加适合用户来自定义自己的Blog,Linux服务器环境的用户需要把ViewPoint的安装路径完全设置成777并应用到每个子目录和文件上才能保证这些新的功能正常地使用。

    虽然现在的版本依旧支持PHP4,但是强烈推荐使用PHP5版本,因为这意味更加安全和高效。大家现在便能从首页上下载最新的版本,由于youyee.org已经使用了新的页面,更新的日期会在左上角标出,大家可以通过上面的日期来确定自己的版本是否为最新版本。youyee.org最适合Firefox和Mac平台的Safari浏览。

    天气代码大家可以到雅虎天气上去查询自己的城市代码。

    ]]>
    Sat, 20 Oct 2007 00:44:07 +0800
    <![CDATA[ViewPoint 0.9.4.2beta 重要更新]]>http://youyee.org/viewpoint/article_view.php?topic_id=57今天我更新了ViewPoint的前台,修正了许多Bug并且添加了新的功能。原来的版本存在很大的Bug,包括在10月份就开始无法正常显示日记内容,并且无法整天的删除某天的全部日记。

    具体的修改包括:

    1、修正了10月份无法正常显示、删除日记的Bug。

    2、根据某些网友的建议放宽了URL的验证条件,这样任何URL都能被通过验证。

    3、增加了数据缓存的功能,极大的减少了多余的数据读取功能,如果需要刷新只需要使用Refresh按钮就可以了。(非常感谢提出此建议的网友)

    由于目前ViewPoint依旧处于测试的版本许多功能都还没有添加进去,甚至可能还隐藏很多致命的Bug。正式版本的ViewPoint将支持:

    1、自定义ShareTopic上面的Banner。

    2、提供一个简单编辑播放列表的UI。

    3、提供一个更改天气的UI。

    不排除上面功能是用一个专门的页面来制作,因为考虑到这并不是需要经常更改的,所以没有必要集成在ViewPoint里面。

    如果大家使用ViewPoint beta,请下载现在这个版本,如果已经安装则把更新的文件替换进去就可以了。

    如有有人想体验YouYee ViewPoint请到 http://viewpoint.cdream.org上面去注册一个,该服务器是由Cdream提供。

    ]]>
    Sat, 6 Oct 2007 20:45:01 +0800
    <![CDATA[YouYee O.S. 与 CERNET 合作]]>http://youyee.org/viewpoint/article_view.php?topic_id=52 经过这几天的努力,终于完成了对ViewPoint的社区化的基本进程,以后ViewPoint就能像普通社区一样运行了。因为ViewPoint OpenSource Project 现在与深圳新概念(Koncept CERNET)公司合作为教育网提供类似的博客服务,对于该公司的详细信息可以通过 http://www.konceptusa.com 查阅,目前ViewPoint的所有权一部分归CERNET所有,一部分归YouYee OpenSource 所有,但这并不影响ViewPoint的开源进程,因为这项合作是建立在GPL的基础上。

    社区化的ViewPoint本质上和目前这个版本并没有很多区别,目前在这里下载的版本同样能支持社区化应用,只是没有提供相应的注册和管理框架,这一部分框架属于商业范围,将不提供下载和开源,但是新的基于开源的 ViewPoint Village 将提供类似的功能,支持建立50个用户以下ViewPoint 群,届时还会开始Tune Par项目的开发,该项目同样遵循GPL协议。提供适合社区音乐在线分享的服务。

    ]]>
    Thu, 20 Sep 2007 08:42:05 +0800
    <![CDATA[由寿司引发的感想]]>http://youyee.org/viewpoint/article_view.php?topic_id=49 话说中国美食传天下,确实没错,但是不知道大家有没有发现寿司这种来自日本的食物似乎更加容易吸引外国人的眼球,独特的饮食环境,小巧而精致的外表,色泽鲜艳,甚至可以说是食用起来方便快捷。

    似乎我们在一味吹捧自己国家的饮食文化多么久远,多么丰富,但是就客观的看来寿司似乎比起中国菜要更加受欢迎。我自己相互比较了一下可能很片面,但是还是说出来:

    寿司:份量小,精致外表,可用手直接拿或者用筷子夹,酱汁有芥末或者酱油

    中国菜:普遍来说份量要大得多,有的有很好的外表,但不小巧,酱汁方面的选择(港式或者是粤式)非常多。

    寿司:很多味道其实一般,但是有神秘感,可能是鱼生加上芥末带来的刺激效应,给用餐者带来一种很淡雅但又很刺激的感觉。

    中国菜:味道好,讲求配料与味道,粤式的菜肴多在注重清淡,表现出菜肴的原味,而川式菜肴则多以味浓,强调味料。往往给人丰盛的感觉。

    如果说光从味觉上来判断,中国菜绝对是领先的。食之味也,味道好就好了吗?非也,寿司似乎更加符合用餐人的习惯和更加适应用餐人的心里,相信这也就是为什么老外更加钟情于寿司而非中国菜的原因了(当然不是绝对的)。人都是爱面子的,漂亮的外表有谁不喜欢?现在不是U盘都模仿寿司的外形设计了吗?加上小巧的寿司即使多吃几块也不容易饱,就算这份寿司不好吃,只需要再换上一份就可以了。但是中国菜确不行,因为量大,因为中国人喜欢丰盛,每一盘菜总是很大的,如果遇到不好吃了,只有后悔的份,不可能像寿司一下囫囵吞下肚子就直接换一份就好了。

    话说道这里,开始我自己的设想吧,假设饮食的用户是软件或者程序的使用用户,软件或者程序是食物,那么体积小巧,功能并不一定强大,容易自我拓展,并且拥有漂亮外观的软件就代表寿司。体积较大,外观一般,功能十分强大,但是拓展能力一般的软件就可以指的是中国菜了。

    不用再说也知道其实很多普通的用户肯定会选择前者来使用(特别是成本如果相同的话)。在这里也需要说一些大多数开发者不愿意听到的话,即使你开发的软件再强大,功能再丰富,负荷能力无人匹敌如果没有漂亮的外观,没有很好的拓展性能,那么您所开发的绝对是失败的东西!因为你的使用者其实更多的并不是关心你的程序内核多么的先进,更多的是能表现在他们面前的东西是否符合他们的心理需要,也就是说您的软件是否能迎合用户的使用心理,即使不能,是否能通过简易的拓展来实现呢?就像寿司加上沙拉酱一样出色。

    有一点是必须要承认的,在程序的功能上相差不是太大的情况下,外表和可用性则是一个软件取胜的关键,就像国产的QQ汽车,虽然性能烂得不能再烂,就是拥有了一个还凑活的外表,至少卖得比夏利好。不要忽略您开发的软件的外表,作为与用户交互的界面,有的时候她甚至比起核心代码更加重要。

    ]]>
    Mon, 3 Sep 2007 12:08:16 +0800
    <![CDATA[YouYee ViewPoint 4th beta Release]]>http://youyee.org/viewpoint/article_view.php?topic_id=45经过一个月的调试,ViewPoint已经改进了很多,在这里感谢很多朋友的支持与帮助,没有你们的意见,我也不能这么及时地发现存在的Bug。

    今天将释出 YouYee ViewPoint 4th beta 0.9.3.5b

    欢迎大家下载,在以后的日子里我还会不断地改进YouYee ViewPoint,使之能够更加容易的被使用。

    在这里顺便解答几个经常被问及的问题:

    Q:能否有中文版本的ViewPoint?

    A:一定会有的,现在的版本在消息提示的时候其实也是中文。以后将会加入全中文的版本。

    Q:为什么一开始就不发布一个中文的版本?

    A:其实并不是我崇洋媚外,大家都知道中文仅能支持12Px以上大小的字体,如果小于这个值,将会给阅读带来很大的麻烦。所以这个版本的按钮一直不能使用中文,因为他们的值都在10px - 11px 的范围,如果使用中文,将会很难阅读。

    Q:会有其他平台的ViewPoint吗?

    A:目前来说需要时间,因为我个人只打算用PHP制作后台,因为本人水平有限不会使用.Net开发,当然JAVA版本将会在日后推出。

    Q:为什么不使用Flex来开发ViewPoint呢?

    A:原因很简单,Flex程序目前文件体积过大,其实用Flex开发很简单,我完全可以不用去开发框架就直接进入功能开发,或许当Flex3出现后我会考虑使用Flex开发,确切地说如果能把文件控制在300KB左右我就愿意采用Flex开发。而且希望到时候的Flex编译出来的SWF能够更加高效。

    Q:能有Silver Light版本的ViewPoint吗?

    A:如果微软发布了和Flex一样好用的开发环境,我一定愿意使用SL作为下一个版本的其中一平台,因为她真的好高效。表现能力也非常强。但是唯一的缺陷是与ASP.Net的东西整合,这一点是我不愿意看到的。

    ]]>
    Mon, 20 Aug 2007 23:53:37 +0800
    <![CDATA[关于最近在开发的项目]]>http://youyee.org/viewpoint/article_view.php?topic_id=44好久都没有对ViewPoint进行更新了,主要是最近在忙着开发ViewPoint的权限管理系统、评论管理系统以及一个专门用来管理和发布Bug信息的发布器,全部都是利用Flex在开发。实际上我不太喜欢利用Flex开发,原因主要是Flex编译出来的SWF文件太大,以及Flex开发出来的程序效率也存在很大的问题。

    本来Flash Player9 提供的图形执行效率其实还算马马虎虎,在Flex里面却完全显得不够用。所以导致编译后的程序存在很大的问题。这也是为什么ViewPoint没有完全使用Flex的框架来开发而是使用自己的框架。

    Flex的框架之所以如此的庞大笨拙其实完全是无辜的,强调灵活的操作和完全适应布局,而且又能方便地更改外表样式,这确实是鱼和熊掌不可兼得。

    即便是这样为了能快速开发出ViewPoint的附加管理程序,我还是选用了Flex,因为快捷和方便的编写,而且我不打算考虑样式(风格就使用Flex原来的风格),因为考虑到该程序是运行在大部分的测试用机上,所以不存在文件过大的问题。这几天的Flex开发虽然给自己一种十分快乐的开发经历,但是也给自己带来了一些忧虑,因为使用Flex自身的框架,对于其框架很难使用Hack技术,当遇到一些很偏僻的问题可能无法通过Hack手段解决。

    最后怎么都好,ViewPoint在最近的调试后,基本上没有再发现什么严重的问题了,我会在这个月的21号把Beta版本的ViewPoint放出,基本上与现在的版本不会有什么太大改变,只是更加的稳定。

    在此感谢那些帮助我找到问题的朋友,有的朋友我甚至连名字都不知道,在此我表示衷心的感谢!

    ]]>
    Fri, 17 Aug 2007 22:40:44 +0800
    <![CDATA[关于安装和调试viewpoint的几点提示]]>http://youyee.org/viewpoint/article_view.php?topic_id=36由于安装文档并不完善�成很多人对youyee viewpoint的安装有很多疑问,在这里公布最新的安装与调试中所遇到的问题:

    1、如果�所使用的是PHP5上的版本,请确定�打开了GD2库以及MySQLi库,否则将会出现上�出错或者�法访问数据库。

    2、由于youyee viewpoint的管理系统还没有开发完毕,目前管理员必须通过手动添�,密�必须使用md5�密。当权限管理程序完成,我会公布到主页http://youyee.org上供大家下载编译好的版本以及源文件。

    3、amfphp/dbconfig.php文件是设置配置数据库帐户和密�以及公共密�的文件,所谓公共密�就是留言板�密的密�,别人在�的留言板如果选择�密留言,该�密密�就是使用这个密�。

    4、请下载最新的源文件或者编译好的程序,youyee viewpoint 0.9.3a以前的版本请不要�播和使用,�为之前的版本存在很大的Bug,�成安装之后�法添�图片或者�法调用方法。

    5、如果仍旧�法解决安装问题,请发送电子邮件到 youyee_vps@hotmail.com,或者youyee@youyee.org,当天内便能得到答复。

    6、如果您是使用Linux主机请将amfphp/services/内的所有文件夹改写为777。

    7、Video功能只有在使用Mozilla Firefox的时候才能跨域添�FLV文件。

    最后欢饮大家参�这个测试,谢谢!

    ]]>
    Wed, 8 Aug 2007 18:16:51 +0800