从ActionScript3编程书籍中的ENTER_FRAME说起

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

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

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

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

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

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

  myClip.addEventListener(Event.ENTER_FRAME,slideClip); function slideClip(evt:Event):void{ if (myClip.x <100){ myClip.x += 2; } else { myClip.removeEventListener(Event.ENTER_FRAME,slideClip); } }

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值