您好,欢迎访问三七文档
1、面试题1.你对MVC的理解??答:MVC就是模型、视图、控制器的缩写,视图和用户交互通过事件导致控制器改变控制器改变导致模型改变或者控制器同时改变两者模型改变导致视图改变或者视图改变潜在的从模型里面获得参数来改变自己。Mvc就是一种模型,一种编程思想。请解释下MVC模式MVC(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。视图(View):代表用户交互界面,MVC设计模式对于视图的处理是限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。模型(Model):业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC的核心。控制(Controller):可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求,但是它却不做任何的数据处理。它的优势在与:开发人员可以只关注整个结构中的其中某一层,可以很容易的用。
2、新的实现来替换原有层次的实现,可以降低层与层之间的依赖,有利于标准化,利于各层逻辑的复用2.as3怎样连接数据库??答:as3要和数据库通信一般通过第三方语言比如jsp/php/asp/asp.net等As3通过解析xml里面的数据和数据库通信。切换。3.了解as3与PHP通信么?答:通过apache软件(软件介绍:最流行的HTTP服务器软件之一。快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。如果你需要创建一个每天有数百万人访问的Web服务器)首先需要两个文件我随便起一个名字test.php和test.fla把他们放在apache运行目录下面As代码里面主要用到urlloader、urlrequest、urlvariable等类,用urlrequest.data属性和Urlrequest.method等属性来和php传参数。Php里面发送什么,as就可以接收到什么,这样可以实现as3和php的通信。4.怎么获取居中的位置??答:mc.x=stage.StageWidth/2mc.y=stage.StageHeight/25。
3、.多场景如果互相切换(考虑效率);答:通过nextscene()函数或者用Loader加载另外的swf文件来场景6:谈谈对A*寻路算法的理解答:一个估价值函数f(n)=g(n)+h(n)g(n)就是当时目标的位置到指定点的位置的一个值h(n)就是指定点的位置到目标点的位置的的一个值7:as2与as3.的最主要区别是什么?,以及相互的优缺点答:as2和as3最大的区别在于as2是面向过程的as3是纯面向对象的As3增加了很多新的东西比如正则表达式,垃圾回收机制,增加了很多error类。里面的函数架构变了很多顶级函数缩减了很多as3的架构更合理8:谈谈你对面向对象的理解答:面向对象关键是对象,引用一句话“一切事物结对象”;对象有它固有的属性和方法,对象也就是由属性的集合和方法的集合构成的,谈到对象了,对象是类的一个实例。类和对象是面向对象的基础类是对象的一个抽象,不是具体的实例,比如说狗类分为很多种,而狗就是一个抽象,狗有四条腿,两只眼睛等式他的属性,狗会吃东西,叫,等式他的方法。这是我理解的面向对象。9.你的5(或3)年前景规划和在5(或3)年后在flash行业要达到的目标(及个人职业规。
4、划)?建议:1.尽量选择有自主产品的公司,而非单纯的外包公司。(有自己的产品,代表你可以对你自己的产品进行持续维护和改良,对你自身的编程能力是一种持续性的提高)2.尽量选择待成长型的公司,而并非公司越大越好。(成长型的公司往往产品更有创意,开发成本更小,效率更高,有利于你在短时间内积累更多的作品)3.尽量远离广告制作公司。10什么是OOP?OOP有那些特征简要说明?OOP:ObjectOrientedProgramming,面向对象的程序设计特征:抽象,多态,封装,继承12.请说下你理解AS3的事件机制是什么机制?你认为正确的就可以说出来.答:从应用程序到最外层的容器在到容器里的组件或容器遍历注册的事件,然后按照原路返回冒泡响应事件AS3事件流分三个阶段:1.捕获阶段(即由根节点流向子节点,检测每个节点是否注册了监听器)2.目标阶段(激发在目标对象本身注册的监听程序)3.冒泡阶段(从目标节点到根节点,检测每个节点是否注册了监听器)当中涉及了两个属性target和currentTarget,target是事件的派发者,currentTarget是正在检测的对象,当开始了事件流,事件的cu。
5、rrentTarget属性处于不断变化中.PS:注册事件时捕获阶段默认是关闭的,无论事件是否开启了捕获,事件流只会两选一去执行13.说说就你所知道的用flash做网站建设的优缺点优点:全面的控制、无缝的导向跳转、更丰富的媒体内容、更体贴用户的流畅交互、跨平台和瘦客户端的支持、以及与其它Flash应用方案无缝连接集成等限制:受带宽与下载时间的限,下载速度有时候很慢;受搜索引擎的限制,现在大部分的搜索引擎搜多不到Flash站点信息,但是google搜索引擎已经解决了这个问题。15.as3.0垃圾回收器是如何工作的?flashplayer8之前采用的是引用计数法,在flashplayer8之后用的是标记法,简单的说就是:从应用的根节点开始,遍历所有其上的引用,标记每个它所发现的对象。然后迭代遍历每个被标记的对象,标记它们的子对象。这个过程第归进行,直到Player遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过程结束的时候,可以安全地认为,内存中那些没有被打标记的对象没有任何活动引用,因此可以被安全地释放内存。一般来说,flashplayer采用的是一种低频的垃圾回收机制,Flas。
6、hPlayer的垃圾回收发生在FlashPlayer需要另外请求内存之前。但并不是每次应用申请内存时都会导致垃圾回收的执行,只有当Flash占用的内存紧张到一定程度时才会执行真正的垃圾回收,一定程度上取决于客户端计算机的物理内存的大小。16.什么是游戏引擎和对他的认识?答:是指应用通常游戏设计的模型构建一个“平台“,能够方便的支持游戏开发后续的工作引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等17.flash与flex是如何协调开发的?这个问题可以这样来理解,如果是确实需要用到FLEXSDK的应用,那我们就可以建立一个flex工程,具体需要flash做UI的时候,输出成swc作为flex的skin,如果说并不需要flexsdk,只是为了编码方便而选择flex的话,那我们只要建立一个as工程,让flex作为flash的编码器。18.使用FlexBulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的呢?请写出你认为正确的方法.答。
7、:修改sdk\frameworks\projects\framework\default.css里Application的backgroundColor:#0000FF;19.flex的开发框架有哪些,它们有什么优缺点?答:最常见的当然是Cairngorm、Puremvc了,此外还有Mate,Swiz等等,据说被广泛应用的已经有10几款了。Cairngorm作为Adobe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。Puremvc应该是现在用的最多的as框架了。比较完善、并且与Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Façade作为中央存储器的单件类的形式进行开发的。说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用MXML来做这些事情。Swiz是Mate的孪生兄弟,长的挺像,没具体用过,不。
8、大了解。11.使用FlexBulider3如何跟踪程序?答:我知道的三种1.trace()2.设置断点3.当不在调试模式时可以调用as的Alert.show()或js的alert()如:navigateToURL(newURLRequest(javascript:alert(traceMsg)),_self);20.在flex开发中,很多代码都写在mxml文件里,为了做到mvc模式,你是怎么处理的。我认为mxml并不影响mvc模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问题。21.如果发生内存泄露,你是如何解决的?比如说注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意。
9、一定要使用单例模式。在addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏。22.flex和后台语言是如何交互的?无疑就这两种方法:remoteobject或者是Httpservice23你是如何处理前端速度慢的问题?flex前端速度慢其实仔细说应该分2部分,1.是flex生成的swf由于SDK庞大的关系,swf体积也跟着庞大了,这我们可以做的就是用Module动态加载,还有就是RSL了。2.处理速度慢,远程方法速度慢,这是AVM的硬伤了,基本没有很好的解决方法,我们能做的只是让这个异步进行的更完美一些,让用户在等待的过程中,做其他的事情,以至于让用户忽略这段等待的时间。24请问用什么办法解决安全域的问题?如果你不知道安全域的问题的话,可以在本机中绑定一下图片,然后再放到服务器上,就会出现此问题了.答:配置相关的安全沙箱的策略xml。网站:://japi.javaeye.com/blog/792362讲的很详细。25请解释下单例模式单例模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有。
10、一个的全局对象,这样有利于我们协调系统整体的行为,简化了在复杂环境下的配置管理。实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。请写个单例。例:package{publicclassMySubClass{privatestaticvarmySubClass:MySubClass;publicvarnum:Number=0;publicfunctionMySubClass(){if(MySubClass.mySubClass!=null){thrownewE。
本文标题:as3程序员面试题
链接地址:https://www.777doc.com/doc-2898643 .html