BingBlog 鹏之徙于南冥也,水击三千里,抟扶摇而上者九万里,去以六月息者也。

Tree图形制作(1)

05.12.2006 · Posted in Flash · with No Comments

Please get a FlashPlayer in your browser to see the demo:

Get Adobe Flash player

在这个学期的一开始我就开始研究分形学(Fractal)了,这是一门了不起的学科,仅仅只用线条就能描述自然界中很多形状。今天我就开始给大家看看Tree的分形图形。下载

注意:本篇文章并没有源代码提供下载,原因是我讲这一套Tree的制作写成了很多个类,并将其最后发布成了组件,所以我觉得即使给大家了,也会把大家的脑子给弄糊涂了。我打算在以后将分形学给讲解玩后给大家一个完整的源代码。供喜欢面向对象的人参考。

大家可以在上面拖动两个控制点,然后就可以看到分形的具体过程和步骤了.因为本人将他Tree的深度设置的比较大以凸显它的外观,故在拖动节点的过程中并不流畅。如果很希望得到源代码,请与我联系。联系方式在主页中!教程我将在以后有时间后给出,敬请等待!

涂鸦本

05.12.2006 · Posted in Flex · with No Comments

这是我用Flex制作的一个涂鸦本。可以先选择颜色、粗细和透明度,然后拖动鼠标便可以绘制图形。该涂鸦本实现了后退和前进的操作功能,您可以选择“back”后退一步,也可以选择“forward”前进一步。同时您还可以选择“clear”清除画面。

源代码:下载

注意:请您讲解压后的文件按照解压后的文件排列方式复制到您的Flex Project中,其中包括一个MXML文件和一个类。

Please get a FlashPlayer in your browser to see the demo:

Get Adobe Flash player

该涂鸦本是制作好了,虽然功能开可以在增加,但是本人做完后发现一个问题:如何将您涂鸦好后的作品上传并保存呢?

离线操作(2)

05.09.2006 · Posted in ASP.NET · with No Comments

我有幸在去年暑假领略了ASP的光彩,当时刚学完Html,然后发现ASP居然把Html发挥到了极致,那时的感觉是兴奋的。在ADO还没完全搞明白的时候,就在今年三月份毅然转入ADO.NET了,结果依然是让人兴奋的,它与ADO有着天壤之别,最主要的区别就在离线操作。下面就先来看看最基本的流程图:

看了这个图应该能明白什么是离线操作了。这里指的离线主要是指数据的操作。当用户第一次请求页面时,下载的数据就自动存储在内存中,这样当用户请求页面时,就会从用户内存当中提取数据。自然这样的方式可以很大程度上减少服务器的负担,同时能很快地提高网速。这就是新的ADO.NET的优势之所在。

实现这样的离线操作当然不仅局限于浏览页面,同时它对数据的存储也有更好的方式。比如您现在发想大批量修改数据,如果只能一个一个的改,那当然是让人火大的一件事,没人希望这样做。那么有没更好的解决方式呢?那是当然的。oleDbCommandBuilder和DataAdapter提供了解决方案。但前提还是离线操作。下面就是该流程图:

可以看出所有的操作都是以一种“假象”保存在内存中,并记录每条数据的状态,当操作完后再一次性更改数据,这样可以极快的提高更改速度!很方便的使用,同时由于内存中记录了每条数据的状态,这样就使得使用者可以很方便的查看哪些数据是要被删除的,哪些数据是刚添加的,哪些是更改的。这样的操作着实是很出色的表现!

好了,弄懂这样的原理了就可以很快地开始学习如何使用它,在以后的时间里,我将教大家如何使用,并分析一下ADO.NET离线操作的缺点,今天算个开始吧!

ASP.NET与Flex

05.09.2006 · Posted in ASP.NET · with 1 Comment

好不容易将这个网站搞定了,害得本人的五一都挂了。不过也算是学到了一点东西。下面就将我学到的一点东西和体会说说!比较一下ASP.NET和Flex。

首先我想比较一下两者的数据处理能力。无疑ADO.NET在这方面要占有绝对优势,ASP.NET2.0中的控件,诸如GridView,Datalist,Repeater等,更是拥有着强悍的处理能力!并且ADO.NET实现了离线的数据操作,这将在很大程度上提高网站的访问速度,减少服务器的负担。但是Flex就显得很苍白了,首先它不能连接数据库,这是它的最大的不足,这就使得它必须通过第三方来传送数据(像DataService,WebService,Https),这样数据在转换的过程中就多了一个过程,速度方面是跟不上的。然后它的内置组件又表现出差的性能,尤其是分页方面,这个需要自己来编写代码。笔者见过这样一个实现Flex中的DataGrid分页的代码,但是问题又来了,要想让数据按照我们的方式来显示,这样对Flex来说无疑是沉痛的一击。如果可以得话,我希望也能用ActionScript来写一个像ASP.NET中的PagedSourceView类。

然后我想比较一下两者在版面方面的处理能力。笔者在最开始建这个网站的时候大部分时间在写数据库连接代码,但是到后来却发现在版面处理方面让人感到力不从心,迫不得已,我用PhotoShop设计好版面后,然后用Dreamweaver将版面排好,然后再复制代码到ASP.NET中去。这样的过程是繁琐的,更是不可忍受的,尤其是在StyleSheet排版上,我倒宁愿选择Dreamweaver或者Golive。但是Flex在这方面却有着得天独厚的优势,它有着自己的一套外观处理机制,这样的机制让版面保持自己的风格,并且它的控件排放不像ASP.NET中的那样:您可以任意放置Flex组件在您想放的人和位置,而您在ASP.NET中却得使用<DIV>标签。<DIV>标签多了后又会使得版面看上去混乱不清,很难操作。同时在Flex中还有着StyleSheet用来分离控件代码和位置代码,这虽然能在Dreamweaver中办到,但是在ASP.NET中并不容易.

其次我想谈谈两者在显示上的区别。ASP.NET毕竟是依赖于浏览器的,也就是说它所有的代码最终是转换Html代码的,这样就在根本上限制了它的能力。这也就是笔者在运行WindowsFrom组件中没遇到的问题在ASP.NET中却频频受阻的原因:WindowFrom组件并不依赖于Html!然而Flex却不受限于浏览器,它的靠FlashPlayer来显示的,这样它就能做到很多ASP.NET无法作到的事,像Transtions什么的,用来提高用户体验。同时它的模式的基于MVC(Model,View,Control)模式的,这样我们的事件处理方式将显得更加清晰明了。笔者就很喜欢ActionScript中的addEventlistener,removelistener,dispatcher,这样的事件处理方式。然而在ASP.NET中却没不那么容易,虽然也有new EventHandler这样的处理方式。现在假设一下:你现在邮局订料一份报纸,然后你希望每个月邮局有新报的时候都送给你一份,这件事无论是ASP.NET还是Flex都可以很好的办到,但是现在邮局希望在您收到报纸后告得知您对它们服务的建议。这样在Flex中能很轻松的办到,但是在ASP.NET中似乎就不打容易了。最重要的就是在Flex中很多事件可以直接使用ActionScript解决,用不着连接服务器,这样就使得Flex有更高的灵活性。而在ASP.NET中,笔者曾经想在用户提交数据前检测用户填入的E-mail的正确性,于是很自然的想到了javascript和vbscript。但是javascript并不具备访问ASP.NET组件的能力,所以一气之下差点想用Html组件了,最后使用了两者的结合方式:“如果输入格式不对,那么Reponse.Write(@”<script language=’javascript’>window.alert(‘Your emial cannot be empty!’)</script>”)。这简直是太无赖了(注意,我们这里并没讨论运行效率问题)

现在我想谈谈两者对控件的控制掌控灵活度。在ASP.NET中使用其自身控件能在很大程度上减少开发者的开发时间,其功能也Flex强悍。然而它对控件的掌控程度却不如Flex。举个例子来说:我有一个房子,我现在想打扫一下、添块砖、加块瓦什么的,我用ASP.NET和Flex都没问题。但现在的问题是,我想在房子外面用遥控器来让房子里的炉子燃起来烧水,用遥控器让我刚在商店买来的沙发自动搬进去。(这个例子对应于:您很难访问Repeater中的Button;但是却可以遍历Canvas中的每一个组件)。Flex中很好实现,然而在ASP.NET中却很难实现。感觉上像是Flex是一种高科技的、自动化的东西,而ASP.NET却有点老土。

最后我想谈谈我们该如何选择两者。笔者我是比较喜欢Flex的,真希望能用Flex做个界面,然后用WebService做数据连接。但是实现起来并不容易,尤其是想实现离线操作,上传个图片什么的。这样没有办法,还得求救于ASP.NET。至于什么时候该用什么,这不是我想分析的,好好学习它们才是最重要的。未来的Web将何去何从也不好说。但是喜欢这个那就做下去,语言思想上是相通的,技术的内涵有重叠的,但也有互补的,如果学的够好,说不定您将来也能将两者结合起来,然后创造一个像Ajax什么的,也算是创始人之一了哦!

好了,这是我建这个网站写的第一篇文章,网站基本上是搞好了,以后有时间再好好整理。马上又有期末考试了,还有可恶的Fran?ais要考试。大家对网站有什么看法请与我联系啊!

Flex2.0学习体验(2)

04.06.2006 · Posted in Flex · with No Comments

今天深入了一下Flex2.0,结果是越向下深入,越是觉得不爽,在涉及到某些细节的问题表现出很差劲的排错问题(当然可能是我个人的水平有限)。 今天遇到了这样一些问题:

  • 完全不大理解该开发环境下的面向向对象的方式。当你在<mx:script>里面,它不能达到像Flash里面将每个元素都放到一起,以达到全面管理的方式。甚至它允许你这样做,这样做的后果是会出错的。这样我定义了多少个组件,这些组件的名字是什么就完全不知道了,这样对于一个开发人员来说是异常讨厌的。因为时间一长,谁能记得那些组件是什么名字
  • 里面会产生一些莫名其妙的问题。不如说我能给根目录下的Button元素addEventlistener,但是,我在一个Container里面放一个Button,然后给它addEventlistener就会产生错误!这个让我不能容忍的。
  • 有更让人恼火的是,当你create 一个 ComboBox 后,你想在程序调用完后将一个DataProvider放给它赋值,但是似乎是件很困难的事,根本无法在<mx:Script>里面实现。并且据官方资料介绍,所有的<mx:Script >里面的代码都应该回自己生成一个MyApp的类,但是似乎却并不能找到它的构造函数,这是让人十分火大的事。

现在越学这个就越是觉得不爽,还不如去学ASP.NET好呢!真是郁闷,好了,没时间了,连续翘了或多节课了,再不去好好学习,老妈要杀到上海了。等火消了再心平气和的研究吧。毕竟里面有很多好的功能是很好的东西的。

XML的几个名词

04.04.2006 · Posted in Flex · with No Comments

今天终于领略到了XML的强悍之出,也难怪XML能成为未来网络的一个走向的呢!(另一个走向是Flash的RIA:Rich Internet Application)今天来介绍几个名词吧
SOAP:Simple Object Access Protocol 意思我也不能讲的很清楚,但是我想学过ASP,JSP,PHP的人都是应该清楚的,静态网页是不能传递信息到服务器的.这个东西设计出来就是用来解决利用网络HTTP传递信息的一种方式.所以称之为:Access Protocol(进入接口)
WSDL:Web Service Description Language 这是一种用来描述Web Service的XML语言.言外之意就是你能在这里面编写像用VB,C#,C++编写的函数了.同时还能调用这样的函数.(果然是有点强悍)
UDDI :Universal Description, Discovery and Integration 这个是用来储存Web Infromation的一中描述语言. 有了这样几个语言,就能编写出WebService 了哦!今天就到这了,要熄灯了啊

Flex2.0 学习体验(1)

04.04.2006 · Posted in Flex · with No Comments

昨天终于是把Flex2.0给装好了,兴奋的一个晚上没睡好觉,一大清早就爬起来(咱似乎还没有7:00以前起床过呢!) 原本想在一天的时间里将它给学完的,结果,上午半天就在看该死的教程中度过了(老大,全英文阿)。下午硬是一腔热血的投入研究当中,结果越看越不对头:原本以为Flex2.0z只是一个用来编写ActionScript3.0的软件呢!没想到居然是一个完全不一样的开发RIA的IDE(Intergrated Development Envionment). 于是本人很用力的学了一下。现在谈谈本人对它的一点理解。

首先:Flex是是以MXML为基本开发语言一个不同于Flsh8的开发环境,MXML是一种XML语言,同时也可以看成是html语言的扩展,但是其中包含了更多的控件(Component).同时能像Flash一样自由控制Component 的Relative or Abosolut Positon.比起纯粹的HTML要强悍的多。同时它又来自Flash中的外观控制能力,并能更好的操作起外观。在这一点上是值得好好学习的。

其次:它跟Flash有着紧密的联系。它的事件虽然可以用自身的代码编写(非ActionScript)来控制事件和数据邦定(data Binding).但是这样在小程序中有很大的优越性,同时它的绑定方式更加简便。然而当一个网站变得复杂后,就会产生很多的问题:代码不好控制,重复利用率。无法达到面向对象的原则。更可恶的是,对于没XML知识的人来说,更是一件很困难的事,因为它的像WebService 这样用来交换数据的方式要很大程度上利用XML中的一些定义方式。

另外:我想强调的是,虽然MXML是XML语言,但是它并不时公认的在每个平台上都能使用的元素。只有安装了Flex才能将它转换成SWF来供使用的。也就是说,它并不时公认的XML元素,而是一种吸收了XML的编程模式,利用自身的服务将其转换成自身的组件,然后再转换成Flash开发语言。

最后:MXML虽然可以利用自身的元素来开发Application,但是它却很大程度上强调了和actionScript的配合,因为在上面我已经强调过了,当工程变得庞大后,语言的控制变得异常混乱,并且不容易维护。 后了,先说到着吧,本来是想好好学习ActionScript3.0的,却没想到居然研究了快一天的Flex,真是很大的老火,等明天再好好研究ActionScript吧! 我看看了看类,让我感到异常爽的是,居然出现了Chart这样一个类,意味着Flash将拥有像ColdFusion 一样的Chart功能。哈哈,本人到时候就可以为我们的同学们做一个软件了,用来处理物理化学试验数据了哦!

PS:明天晚上,老大让我给一大群人将PhotoShop的使用技巧了,虽然上一次的演讲有一定的成功,但是不知道明天会怎么样呢!所以现在要放下可爱的Flash,转而进入PhotoShop了,还是要准备准备才信啊,要不明天被人给瞧匾了!祝我好运吧!