了解在Flash中的编程工作
2008-04-02 10:59:40来源:互联网 阅读 ()
本文节选自《Flash MX professional 2004 第一步》(陈冰著)
第十八章 了解在Flash中的编程工作
妈妈,这扇大门好雄伟好辉煌啊,他通向哪里?
宝贝,他通向编程的世界,那是充满魔法的世界,进入那里,您将成为伟大的魔法师。
经历了此前整整十七章的学习,我们终于来到了编程世界的大门,大门敞开着,显然,他一直在等待我们的到来。
18.1 像软件设计师那样思考问题
我相信您们中有很多人只有很少或完全没有编程基础,否则,您就不会选择我写的这本《第一步》了。我们已知道,在Flash中使用ActionScript编写脚本,和使用其他语言编程没有什么不同。而要最终锻炼成一名出色的软件设计师,您要做的第一件事就是要时刻提醒自己要像一个软件设计师那样来思考问题。
18.1.1 不要总想着逃避编程
对于在Flash中的编程而言,要做到像软件设计师那样来思考问题,最重要的一点就是不要总想着通过逃避编程来实现您的想法,很多人总是想方设法试图用非编程的手段来完成他所面对的一切问题,为此,他能够不惜代价,能够花费大量的时间,他会想出数不清的绕过编程的变通方法,假如这些方法也能够被称为算法的话,绝对会令许多软件设计师吃惊。
实际上,在很多时候,使用编程的方法能够被非编程的方法节省大量的时间,而且会产生更为真实的效果。很典型的一个例子就是表现各种随机运动,例如,大量雪花的飘落、鱼的游动。
18.1.2 认真的编写设计说明书
要像软件设计师那样来思考问题,您要努力地用逻辑清楚的语言来描述您想要实现的那个想法。这个过程就是软件研发中很重要的编写设计说明书的过程。
听起来有些傲慢,但在您完成了一个周详的设计说明书后,您的工作中的95%就已完成了。每当有人问我某个想法是否能实现时,我总是回答说只要他能够周详的描述出他,我就能够编出他来。对于Flash中的研发而言,一个设计说明书的全部就是个对于Flash电影将如何执行和表现的周详而严谨的描述。一个好的说明书将花费大量的时间和工作,但这是值得的。当他完成时,他将承担起工作蓝图的职责。
一个人的关于资料要周详到何种程度的想法可能和另一个人不同,但越周详越好。当您在工作的前期投入了额外的精力后,他将不但仅在沿着这条路的行进中为您节省下时间,他也将减少返工的机会。
编写一个极为周详的说明书所存在的一个问题是您很难做到充分的描述最终的程式,因为一个书面的说明书和最终的Flash电影差别巨大。简单点说吧,仅仅用语言来描述一个绘图中的颜色或在没有某些音乐设备的情况下描述一个歌曲的声音是不可能,这里存在着解释错误。但这并不意味着您应该草率的放弃编写说明书的整个过程。相反,您只需将他编写的足够周详使您有把握依靠他展开工作就能够了。另外,您一定要知道先前您所做的工作将对以后的工作产生杠杆作用。失之毫厘,谬以千里的事情经常是由不负责的设计说明书导致的。
18.1.3 要想到更有其他的可能
有些时候,一个实现似乎有一个清楚的逻辑,似乎很明显就该按照您设计的算法和逻辑来编写程式,但当研发进展到某一步时,您却似乎遭碰到了一堵墙,无法再前进一步,很多初学编程的人会在这里投入大量的时间,不断的反复检查自己设计的算法的逻辑和程式代码的编写,对其进行无数次的小修小改,最终陷入泥潭。
然而,一个有经验的软件设计师在这种情况下,会很快意识到自己最初的判断可能存在根本性的错误。很多时候,复杂事物的背后是简单的逻辑,而简单事物的背后却潜藏着复杂的逻辑。完全抛弃自己原先的算法,换一种思维,尽力去猜测另一种可能,您会发现,那堵墙开始消失了。
人们总是情愿用简单的方法去解决事情,在编程上也是相同,这是正确的思路,但有的时候,当简单的方法行不通时,您要意识到这件事情或许要用复杂的方法才能实现。
不要总把事情想的那么简单,总要想到更有其他的可能。
18.2 面向对象的软件研发中的重要概念
在第四章中我已简单的介绍了什么是面向对象的软件研发,您应该还记得那个以“人”作为对象的例子,连同当路遇恶狗而被恶狗撵这一事件发生时,他能够调用“撒腿就跑”这个方法来作为对这个事件的响应。
但不管怎么说,我不想因为这些例子而使您轻视了面向对象的软件研发。事实上,面向对象含义深远,涉及许多重要的概念,只有充分理解了这些概念的含义,您才算真正理解了什么叫面向对象。很多概念您都应该知道,但限于篇幅,本节中我将讲解其中最重要的九个。
面向对象的软件研发中九个最基本的概念:类、对象、属性、方法、抽象、封装、继承、多态,连同事件。
18.2.1 类和对象
类是对象的软件抽象,是创建对象的模板。例如,假如一个人被看作一个对象的话,则人这个物种就能够被看作一个类。类定义描述了包括数据和功能在内的结构,对象由其创建。一个类表示一组相似的对象。对象是类的实例。
为什么需要类,想象这样一个情况,假如我们要编写一个Flash游戏,里面要有一些能自主活动的小人,这些小人都有相同的体貌特征和活动能力,那么,若我们要为每个小人编写程式的话,则工作量毫无疑问是巨大和重复的。在这种情况下,我们就应该创建一个“小人”类,以后每当需要一个新的小人时就从“小人”类生成一个小人即可。
话说到这里,您一定想到了元件和实例的关系。没错,类和对象的关系和元件和实例的关系相同,因为元件实际上就是Flash的内建类。
18.2.2 属性和方法
属性是数据,而方法是函数。属性是类知道的事情,而方法是类完成的事情。属性和方法都是类的职责。面向对象的软件研发是基于这样的概念:系统应由对象来创建,对象拥有数据和功能。属性定义数据,而方法定义功能。
显然,在面向对象的研发中,最重要的工作就是定义类。而定义类时,就必须定义他的属性和方法。属性的定义应该是直接明了的,需要定义他的名称和数据类型。方法的定义就是创建一个函数的过程,根据需要,您能够创建出能够接受参数且能够返回值的方法。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Flash8动态遮罩应用
下一篇: Flash初学者教程:形状补间动画
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash