从ActionScript3编程书籍中的ENTER_FRAME说起

学习一门技术,比较系统的途径仍然是书籍。然而教程书籍有时提供的范例并没有推荐良好的编程习惯,使读者走了不少的弯路。7yue这篇博文便是就ActionScript3编程书籍的一些常见情况来描述这一问题。

现在开始接触ActionScript3编程的爱好者越来越多,他们可以选择从不同的角度来学习ActionScript3编程:书籍,教程,博客,开放源码项目等等。我最近发现一个有趣的现象,就是AS3的部分教程中都存在一个小问题,就是当面向初学者提供某些范例和教程时,这些内容并未从良好的编程经验或者是习惯入手,而是寄期望于日后的学习中,再了解更好的,更加值得使用的方法,我在想,为什么很多教程或文章不能一开始就提供***实践相关的内容给爱好者呢?这样,既提高了学习的效率,也减少了学习的弯路。

比如,下列的一小段代码出自某本O'Reilly的书籍

书中这段代码目的是让开发者了解AS3在SWF中的处理优先级是大于可视化效果的,于是,就先用这样的一段代码来说明:

 
 
 
  1. for (var i:int = 0; i<50; i++){
  2.   myClip.x+=2;
  3. }

这段代码为了说明在循环中,MC的位置根本就不会按照for循环一样,呈现x坐标的递加,而是直接跳转到***循环结束时x坐标的位置上去,这其实没什么问题,但是下面的代码,则是说,开发者可以使用Event.ENTER_FRAME事件来触发一个侦听函数,在侦听函数中处理一个MC的移动。

 
 
 
  1. myClip.addEventListener(Event.ENTER_FRAME,slideClip);
  2. function slideClip(evt:Event):void{
  3.   if (myClip.x <100){
  4.     myClip.x += 2;
  5.   } else {
  6.     myClip.removeEventListener(Event.ENTER_FRAME,slideClip);
  7.   }
  8. }

开发者在学习这段代码的时候,尤其是初学者,就对Event.ENTER_FRAME有了深刻的印象,于是乎,随着他的学习曲线,以后对于AS3中对于MC的动态处理,他们自然而然的就会不断的用到ENTER_FRAME,甚至于不断的将各种处理机制都放入其中。结果显而易见,大量的应用性能和灵活性问题随之而来,或许在若干长的时间过后,才听到有讲座说,ENTER_FRAME是一个不推荐的编程方式,更推荐大家用Timer云云之类的说法。

这些类似的教程内容本身没有什么错,为了演示一个功能或特点,使用了最容易实现的方法来说明问题,如果这是一个售前工程师的工作,那么这种方式是***的,如果是面向读者和学习的人,这种方法是粗心的,不考虑学习成本和效率的,因为它直接导致了开发者的常用编程方式,直到开发者积累了一定的经验,抑或是付出了一定的代价之后,才会发现有更好的方式,更加的性能来实现同样的结果。所以,如果写书或者是教程,我觉的更好的一点是多考虑一下学习者的成本和曲线,不要为了达到目的,而让学习者获取了一个实际并不可取的方法。

记得以前我就发现过这样的问题,在MSDN上,存在着大量的代码和范例,结果用到后来,才发现是不好的和有很大代价的内容,我就在想,为啥不能在我学习的时候就告诉我一个更好的方法呢?

网站名称:从ActionScript3编程书籍中的ENTER_FRAME说起
文章源于:http://www.hantingmc.com/qtweb/news10/438360.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联