了解在Flash中的编程工作第1/4页

本文节选自《Flash MX professional 2004 第一步》(陈冰著)

第十八章 了解在Flash中的编程工作

  妈妈,这扇大门好雄伟好辉煌啊,它通向哪里?
  宝贝,它通向编程的世界,那是充满魔法的世界,进入那里,你将成为伟大的魔法师。

  经历了此前整整十七章的学习,我们终于来到了编程世界的大门,大门敞开着,显然,它一直在等待我们的到来。

18.1 像软件设计师那样思考问题

  我相信你们中有很多人只有很少或完全没有编程基础,否则,你就不会选择我写的这本《第一步》了。我们已经知道,在Flash中使用ActionScript编写脚本,与使用其他语言编程没有什么不同。而要最终锻炼成一名出色的软件设计师,你要做的第一件事就是要时刻提醒自己要像一个软件设计师那样来思考问题。

18.1.1 不要总想着逃避编程

  对于在Flash中的编程而言,要做到像软件设计师那样来思考问题,最重要的一点就是不要总想着通过逃避编程来实现你的想法,很多人总是想方设法试图用非编程的手段来完成他所面对的一切问题,为此,他可以不惜代价,可以花费大量的时间,他会想出数不清的绕过编程的变通方法,如果这些方法也可以被称为算法的话,绝对会令许多软件设计师吃惊。

  实际上,在很多时候,使用编程的方法可以被非编程的方法节省大量的时间,而且会产生更为真实的效果。很典型的一个例子就是表现各种随机运动,例如,大量雪花的飘落、鱼的游动。

18.1.2 认真的编写设计说明书

  要像软件设计师那样来思考问题,你要努力地用逻辑清晰的语言来描述你想要实现的那个想法。这个过程就是软件开发中非常重要的编写设计说明书的过程。

  听起来有些傲慢,但在你完成了一个详细的设计说明书后,你的工作中的95%就已经完成了。每当有人问我某个想法是否能实现时,我总是回答说只要他能够详细的描述出它,我就能够编出它来。对于Flash中的开发而言,一个设计说明书的全部就是一个对于Flash电影将如何执行和表现的详细而严谨的描述。一个好的说明书将花费大量的时间和工作,但这是值得的。当它完成时,它将承担起工作蓝图的职责。

  一个人的关于资料要详细到何种程度的想法可能与另一个人不同,但越详细越好。当你在工作的前期投入了额外的精力后,它将不仅仅在沿着这条路的行进中为你节省下时间,它也将减少返工的机会。

  编写一个极为详细的说明书所存在的一个问题是你很难做到充分的描述最终的程序,因为一个书面的说明书与最终的Flash电影差别巨大。简单点说吧,仅仅用语言来描述一个绘图中的颜色或在没有某些音乐设备的情况下描述一个歌曲的声音是不可能,这里存在着解释错误。但这并不意味着你应该草率的放弃编写说明书的整个过程。相反,你只需将它编写的足够详细使你有把握依靠它展开工作就可以了。另外,你一定要知道先前你所做的工作将对以后的工作产生杠杆作用。失之毫厘,谬以千里的事情经常是由不负责的设计说明书导致的。

18.1.3 要想到还有其他的可能

  有些时候,一个实现似乎有一个清晰的逻辑,似乎很明显就该按照你设计的算法和逻辑来编写程序,但当开发进展到某一步时,你却好像遭遇到了一堵墙,无法再前进一步,很多初学编程的人会在这里投入大量的时间,不断的反复检查自己设计的算法的逻辑和程序代码的编写,对其进行无数次的小修小改,最终陷入泥潭。

  然而,一个有经验的软件设计师在这种情况下,会很快意识到自己最初的判断可能存在根本性的错误。很多时候,复杂事物的背后是简单的逻辑,而简单事物的背后却潜藏着复杂的逻辑。彻底抛弃自己原先的算法,换一种思维,尽力去猜测另一种可能,你会发现,那堵墙开始消失了。

  人们总是情愿用简单的方法去解决事情,在编程上也是一样,这是正确的思路,但有的时候,当简单的方法行不通时,你要意识到这件事情或许要用复杂的方法才能实现。
不要总把事情想的那么简单,总要想到还有其他的可能。

当前1/4页 1234下一页阅读全文

(0)

相关推荐

  • 了解在Flash中的编程工作第1/4页

    本文节选自<Flash MX professional 2004 第一步>(陈冰著) 第十八章 了解在Flash中的编程工作 妈妈,这扇大门好雄伟好辉煌啊,它通向哪里? 宝贝,它通向编程的世界,那是充满魔法的世界,进入那里,你将成为伟大的魔法师. 经历了此前整整十七章的学习,我们终于来到了编程世界的大门,大门敞开着,显然,它一直在等待我们的到来. 18.1 像软件设计师那样思考问题 我相信你们中有很多人只有很少或完全没有编程基础,否则,你就不会选择我写的这本<第一步>了.我们已经知

  • Java中GC的工作原理详细介绍

    Java中GC的工作原理 引子:面试时被问到垃圾回收机制,只是粗略的讲'程序员不能直接对内存操作,jvm负责对已经超过作用域的对象回收处理',面官表情呆滞,也就没再继续深入. 转文: 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能.本文将从GC的工作原理.GC的几个关键问题进行探讨,最后提出一些Java程序设计建议,如何从GC角度提高Ja

  • jQuery中的编程范式详解

    本文详细分析了jQuery中的编程范式.分享给大家供大家参考.具体如下: 浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了如何以前端特有的方式释放程序员的生产力.这里将结合jQuery源码的实现原理,对javascript中涌现出的编程范式和常用技巧作一简单介绍.   1. AJAX: 状态驻留,异步更新 首先来看一点历史. A. 1995年Ne

  • 关于C#中GUI编程的标准事件问题

    前言 昨天的文章,带大家简单学习C#中的事件,了解订阅者和发布者之间的逻辑关联,也通过小案例进行实际操作,可以看到具体的输出结果. 目前在工作中,使用Winform桌面开发比较多,很多时候就会用到事件,此时这里的事件用法有一个俗称叫GUI编程. 在程序运行时,它可以在任何时候被打断,比如按钮点击,按下按键或系统定时器.在这些情况发生时,程序需要处理事件然后继续其他事情. 在Windows GUI编程中经常会用到程序事件的异步处理. 什么是GUI中的标准事件 这种程序事件.NET框架提供一个标准模

  • tomcat中Servlet的工作机制详细介绍

    tomcat中Servlet的工作机制 在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法,Servlet在初始化时要调用init方法,在销毁时要调用destroy方法,而对客户端请求处理时则调用service方法.对于这些机制的支持都必须由Tomcat内部去支持,具体则是由Wrapper容器提供支持. 在tomcat中消息流的流转机制是通过四个不

  • Flash中加载外部文件的方法

    Flash可以通过帧.按扭.影片剪辑来调用外部文件.调用的外部文件包括:外部文本文件.外部程序文件.外部*.swf文件.外部图片文件.外部音乐文件.外部脚本文件 .现总结如下: [loadMovieNum()函数] [用法]:loadMovieNum("url",level [, variables])  [功能]: 函数:在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别.  [参数]:首先我们可以看到该函数有3个参数

  • Flash中 MC事件参数详解

    MC的事件说明如下:  Load:当MC 被装载进来的时候发生此事件  EnterFrame:当MC被卸载的时候发生此事件  MouseDown:当鼠标左键被按下时发生此事件  MouseUp:当鼠标左键被松开时发生此事件  MouseMove:当鼠标移动的时候发生此事件  Keydown:当键盘按钮被按下时发生此事件  Keyup:当键盘按钮被松开时发生此事件  Data:使用loadVariable或者loadMovie动作,当接受到数据时,发生此事件 MovieClip (对象)  MC对

  • 在Flash中添加“设为首页”、“加为收藏”的方法

    如何?在Flash中实现"设为首页"和"加为收藏"功能是使用Get URL结合JavaScript来实现的. 设为首页代码: on (release) { getURL("javascript:void(document.links[0].style.behavior='url(#default#homepage)');void document.links[0].setHomePage('http://www.showhs.com/');", 

  • C++ 中 socket编程实例详解

    C++ 中 socket编程实例详解 sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW):基于TCP的socket编程是采用的流式套接字.在这个程序中,将两个工程添加到一个工作区.要链接一个ws2_32.lib的库文件. 服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup()/socket()): 2:绑定套接字到一个IP地址和一个端口上(bind()): 3:将套接字设置为监听模式

  • Vue.js中的computed工作原理

    JS属性: JavaScript有一个特性是 Object.defineProperty ,它能做很多事,但我在这篇文章只专注于这个方法中的一个: var person = {}; Object.defineProperty (person, 'age', { get: function () { console.log ("Getting the age"); return 25; } }); console.log ("The age is ", person.

随机推荐