




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flex-AS面试面试题大全 1.使用 Flex Bulider3 建立一下新的.mxml 的页面时默认的背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于 下次创建时背景不是为默认的蓝色的呢?请写出你认为正确的方法。 答:修改 sdkframeworksprojectsframeworkdefault.css 里 Application 的 backgroundColor: #0000FF; 2.使用 Flex Bulider3 如何跟踪程序? 答:我知道的三种 1.trace() 2.设置断点 3.当不在调试模式时可以调用 as 的 Alert.show()或 js 的 alert() 如: navigateToURL(new URLRequest(javascript:alert(traceMsg), _self); 3.请问 enterFrame 和 timerEvent 这 2 个事件有什么区别?请说下具体的使用方法和相关的使用场合? 答:enterFrame 是按帧发生,timeEvent 是根据设置的 Timer 类参数发生。如: 用 ENTER_FRAME 控制小球圆周运动: addEventListener(Event.ENTER_FRAME,ballMove); 用 TIMER 控制小球圆周运动: var myTimer:Timer=new Timer(83.3,0);/关于该数的设置见 TIMER 类的说明 myTimer.start(); myTimer.addEventListener(TimerEvent.TIMER,ballMove); 4.请说下你理解 AS3 的事件机制是什么机制?你认为正确的就可以说出来. 答:建立一个完整的事件机制需要四个步骤:注册侦听、分发事件、侦听事件、移除侦听。建立成功后,触发事件, 注册侦听、 注册侦听 分发事件、侦听事件、移除侦听。 事件流会进行捕获、目标和冒泡 捕获、 和冒泡三个阶段。捕获阶段由 FP 沿显示列表从根容器往下层层寻找触发事件的目标对象, 捕获 目标和冒泡 找到后即进入目标阶段。然后,事件对象从目标对象再次沿显示列表往上移动至根容器,遇到注册侦听的节点就调 用侦听函数。如果想中途中断冒泡,可以使用 stopPropagation。 5.请问 addEventListener 里面有几个参数,你能说出具体的使用方法嘛? 答:addEventListener(type:String,事件类型 listener:Function,监听函数 useCapture:Boolean = false,是否打开捕获功能 priority:int = 0,监听器优先级别 useWeakReference:Boolean = false 是否使用弱引用) 6.请问我想判断一个字体是否是数字,用什么办法去判断呢? 答:isNaN(parseInt(strPara) 或 strPara is Number 7.请问我想判断一个字符或者一个对象的类型怎么判断呢? 答:typeof(obj) 8.请问你了解 internal 控制符么?能说下具体使用方法和场合嘛? 答:internal 是默认的包内访问,体现了封装思想和 package 模块化思想。举例来说,A 类需要使用 B 类和 C 类的方 法和属性,但又不希望它们对其他类暴露,只要将 A,B,C 放入同一包内,包外的其他类就无法使用 B,C 类了。 9.我想在某一点不去执行任何内容,也就是说我想停止执行了,你知道要怎么做嘛? 答:设置断点 10.请问 undefined 和 null 是否一样,如果不一样能否说出其中的区别呢? 答:undefined 是尚未初始化的无类型变量或未初始化的动态对象属性的特殊值。null 是一个可以分配给变量的或由 未提供数据的函数返回的特殊值。它们的相同之处在于都未初始化,不同在于 undefined 是无类型或动态类型的。 如: var v1;trace(v1);/undefined var v2:*;trace(v2);/undefined var v3:Object;trace(v3);/null 11.创建常量知道怎么创建嘛?说下你是怎么创建的. 答:const PI:Number = 3.1415926; public static const STARTUP:String = startup; 12.请问用什么方法自定义一个事件呢?说下具体的方式. 答:(1)扩展 Event 类或其子类 (2)定义一个 static const 常量作为事件的 type 传入构造函数 (3)定义一个私有变量作为事件的 Data 保存数据,并为其添加 getter 和 setter (4)覆盖 toString()和 clone()方法 13.请问怎么样检测本机的内容呢,比如说,我想知道本机的操作系统,是否有视频等这些. 答:flash.system.Capabilities.os 当前的操作系统 flash.system.Capabilities.hasStreamingVideo 系统是否可以播放视频流 14.请问用什么办法解决安全域的问题?如果你不知道安全域的问题的话,可以在本机中绑定一下图片,然后再放到服 务器上,就会出现此问题了. 答:配置安全沙箱的策略文件 crossdomain.xml 放置到服务器根目录,如: 15.有三种基本数字类型:number, int, 和 uint 请问有什么区别.具体说一下. 答:number 数字类型包含浮点型(正 0 负); int 整型(正 0 负); uint(无符号整型) 16.parseInt 此方法转化为 int 型的方法,请问你知道此方法的第二个参数是什么意思嘛? 答:指定第一个参数字符串的进制,范围为 2-36。例如 parseInt(“100”,2)=4 17.Math.round( ), Math.floor( ) 和 Math.ceil( ) 三个方法都是四舍五入,请问有什么区别? 答:round 是取最接近的整数,即原数0.5 后取整;floor 向下取整;ceil 向上取整 18.请问一个数组里可以放不同的类型嘛? 答:可以,如 var x:Array = a,1,new Button(); 19.var letters:Array = a, b, c;我想在这个数组里搜索c字符,请问怎么办? 答:for(var i:* in letters) if(lettersi = c) trace(cs position is + i);或 if(letters.toString().indexOf(c) 0) trace( cs position is + letters.toString().indexOf(c) ); 20.怎么样转换数组为字符串,怎么样将字符串转化为数组? 答:数组-字符串:trace(new Array(a,b,c).join().toString(); 字符串-数组: var arr:Array = new String(a,b,c).split(,); 21.我想创建的视图居中怎么办? 答:布局策略里面限定为居中,即 horizontalAlign=center verticalAlign=middle;或者在每个控件都以舞台的中心作 为相对坐标来计算各自的 xy 值。 22.请问知道层级的概念嘛?如果知道请问怎么样交换 2 个组件的层级呢? 答:层级表示的是显示对象在显示列表中的位置,从第 0 层开始,位于最下面。 交换组件层级可以使用 id 交换,也可以直接交换层级索引。如: my_sprite.swapChildren(my_ball2, my_ball1); my_sprite.swapChildrenAt(2, 1); 23.请问你知道 loader,URLLoader,URLStream 这个三种动态加载资源的具体使用场合,以及有什么区别嘛? 答:(1)Loader 像 2.0 中 MovieClip 的 loadMovie 功能,用于加载外部的图片和 SWF 文件。使用 load() 方法来启动加 载。 被加载的显示对象将作为 Loader 对象的子级添加。 在使用 Loader 加载数据, 添加侦听事件时, 一定要给 Loader 的 contentLoaderInfo 属性增加事件,而不是给 Loader 对象增加事件。 (2)URLLoader 类以文本、二进制数据或 URL 编码变量值对的形式先从 URL 下载数据,然后才将数据用于 ActionScript。它会发出有关下载进度的通知,通过 bytesLoaded 和 bytesTotal 属性以及已调度的事件,可以监视下载 进度。 (3)URLStream 类提供对下载 URL 的低级访问。数据一下载,便可随即为应用程序使用,这和使用 URLLoader 需 要等到整个文件下载完不同。并且 URLStream 类还允许在完成下载前关闭流。已下载文件的内容将作为原始二进制 数据提供。 (4)URLStream、URLLoader、Loader 等读取外部数据的类,类里的 load 方法参数值是 URLRequest 对象。如: var request:URLRequest=new URLRequest(httpURL 地址); loader.load(request); 24.如何把 MouseEvent 的 localX 和 localY 属性转化成全局坐标? 答:全局坐标系:stageX,stageY。原点位于舞台左上角。 本地坐标系:localX,localY。原点位于相对组件的左上角。 内容坐标系:contentMouseX 和 contentMouseY。描述鼠标相对于整个容器内容的位置,用于当子组件的高或 宽可能超出容器自身设置高宽的情况。 转换方法: contentToGlobal 内容到全局坐标 contentToLocal 内容到本地坐标 globalToContent 全局到内容坐标 globalToLocal 全局到本地坐标 localToContent 本地到内容坐标 localToGlobal 本地到全局坐标 25.请问我现在有一个正方形的图片,我想把他做成圆形,有什么办法呢?前提是用 flex 或者 as3 答:不清楚,是不是用 BitMapData 的 draw 方法实现呢?会的朋友请告诉我。 26.请问新创建的一个 sprite 能否被直接加到 ui 容器里?如果不能请说出用什么办法能加入. 答:不能。先将 sprite 加入一个扩展自 UIComponent 的类,再加入 UI 容器。 27.我怎么设置把一个文本框,设置成一个密码框? 答:将 displayAsPassword 属性设置为 true 28.我想在文本框里只能输入 abcd,有什么办法能做到呢?如果我想输入除 abcd 以外的其它都能输入又怎么做呢? 答:restrict=”a-d” 。restrict=(a-d) 29.请问 condenseWhite 这个属性在 TextInput 里是表示什么意思? 答:仅会应用于通过 htmlText 属性设置的文本,默认为 false。当设置为 true 时,会删除文本中额外的换行和空白。 30.我现在刚创建的文件的 text 为 this is a text,我想设置光标在 is 上,请问怎么设置? 答:触发事件,在侦听函数上让 selectionBeginIndex=5,selectionEndIndex=6 31.请问怎么样在文本框里添加超链接? 答:(1)使用文本框的 htmlText 属性添加必须以event:开头的超链接,如这 儿 (2)添加对 TextEvent.LINK 事件类型的侦听,如 addEventListener(TextEvent.LINK,clickLink); (3)event:后面的字符串将被包含在侦听事件的 text 属性里,如 private function clickLink(event:TextEvent):void var cmdArray:Array = event.text.split(|); if(cmdArray0=geturl) navigateToURL(new URLRequest(cmdArray1,cmdArray2); 32.我想获取系统里的字体,请问怎么办? 答:import flash.text.Font; var allFonts:Array = Font.enumerateFonts(true); allFonts.sortOn(fontName, Array.CASEINSENSITIVE); var fontsLength:int=allFonts.length; for(var i:int=0;ifontsLength;i+) trace(字体名称:+allFontsi.fontName+字体样式:+allFontsi.fontStyle+字体类型:+allFontsi.fontType) 33.substring( ),substr( ), slice(),请说下 3 种解析字符串的不同之处,以及适用场合? 答:substring(v1,v2): 截取从 v1 到 v2 的字符串,包括 v1,不包括 v2 substr(v1,v2): 从 v1 开始,截取 v2 长度 slice(v1,v2):类似于 substring,不过可以接受负值参数,表示倒数第几位 34. var fruits:XML =Apple Orange Pear Watermelon; 以下有一个字符串,我现在知道了 color 为 orange,我想知道此 color 相对应的 name 节点的值,我应该怎么做? 答:原题的 XML 不规范。找到 name 节点值可以用 fruits.fruits(color=orange).name 35.请说下目前使用 flex 和后台交互的几种方法,以及适用场合. 答:(1)基于 AMF 消息格式的 RemoteObject 组件,如 Lcds/BlazeDs,AMFPHP 等。 (2)基于 SOAP 消息格式的 WebService,对于使用 SOAP 的服务器方便连接。 (3)基于纯文本或拥有良好格式的 XML 消息格式的 HTTPService 组件。 一般来说,选用高效稳定的 RemoteObject 中间件。 36.我现在想在 flex 里调用 JS 方法,我要怎么办呢? 答:直接在 AS 中使用 ExternalInterface.call()来调用 JS 方法。如: import flash.external.ExternalInterface; ExternalInterface.call(simpleJSFunction); ExternalInterface.call(simpleJSFunctionWithParameters,myParameter); var result:String=ExternalInterface.call(simpleJSFunctionWithReturn); 37.我想用 JavaScript 调用 ActionScript 函数,我要怎么办呢? 答: 使用 ExternalInterface.addCallback 在 JavaScript 里设置对 Flex 的回调方法并且在 JavaScript 里调用 ActionScript 方 法。 AS: ExternalInterface.addCallback(function1,callback1); privatefunctioncallback1():void Alert.show(callback1executed); JS: containerswf.function1(); 38.FileReference 请说下此对象的几个相关事件 答:browse(typeFilter:Array = null):Boolean 显示一个文件浏览对话框,让用户选择要上载的文件。 cancel():void 取消正在对该 FileReference 对象执行的任何上载或下载操作。 download(request:URLRequest, defaultFileName:String = null):void 打开对话框,以允许用户从远程服务器下载. upload(request:URLRequest, uploadDataFieldName:String = Filedata, testUpload:Boolean = false):void 开始将用户 选择的文件上载到远程服务器。 1.as2 与 as3 的最主要区别是什么? 答:首先,as2 和 as3 是完全不同的语言,几乎没有兼容性可言。as2 编译用的 AVM1 虚拟机,as3 用的 AVM2,速 度快,提供了一些基础异常处理。 as3 是纯的 OOP,强类型语言。as2 不是。具体的差别有太多太多。 2.flex 的开发框架有哪些,它们有什么优缺点? 答: 最常见的当然是 Cairngorm、 Puremvc 了, 此外还有 Mate, 等等, Swiz 据说被广泛应用的已经有 10 几款了。 Cairngorm 作为 Adobe 官方出品,有着贵族血统的它比较全面,是这些框架中已知 bug 最少的,但是基于他的应用相对臃肿复 杂一些,需要对每个可以被触发的事件写一个对应的 Command,编码量巨大,并且单元测试很不容易,不适合敏 捷开发。Puremvc 应该是现在用的最多的 as 框架了。比较完善、并且与 Cairngorm 相比,更适合中小型应用的开发, 它与 Cairngorm 一样,也是以 MVC 模式为中心,并以 Fa?ade 作为中央存储器的单件类的形式进行开发的。 3.在 flex 开发中,很多代码都写在 mxml 文件里,为了做到 mvc 模式,你是怎么处理的。 答:我认为 mxml 并不影响 mvc 模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以 手动将 UI 所在的 mxml 归为一类,然后由 Mediator 去操作或者说控制这些组件既可了,然后 Mediator 又统一交给 Controller 去操作。如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像 Cairngorm、Puremvc 之 类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问题。 4.如果发生内存泄露,你是如何解决的? 答:在 profile 观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做的只是尽量去避免这种情况的 发生,比如说注意不要循环引用,特别是在使用 Timer 的时候要格外注意,不要忘记全局对象上的引用的清除,在 创建控制器和模型的时候要注意一定要使用单件模式。在 addEventListener 时候尽量采用弱引用、自引用、或者子 对象引用,以避免内存泄漏。 5.as3.0 垃圾回收器是如何工作的? 答:flash player 8 之前采用的是引用计数法,在 flash player 8 之后用的是标记法,简单的说就是:从应用的根节点 开始,遍历所有其上的引用,标记每个它所发现的对象。然后迭代遍历每个被标记的对象,标记它们的子对象。这 个过程递归进行,直到 Player 遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过程进行的时候,可 以安全地认为,内存中那些没有被打标记的对象没有任何活动引用,因此可以被安全地释放内存。一般来说,flash player 采用的是一种低频的垃圾回收机制,Flash Player 的垃圾回收发生在 Flash Player 需要另外请求内存之前。但并 不是每次应用申请内存时都会导致垃圾回收的执行,只有当 Flash 占用的内存紧张到一定程度时才会执行真正的垃 圾回收,一定程度上取决于客户端计算机的物理内存的大小。 7.你是如何处理前端速度慢的问题? 答:flex 前端速度慢 其实仔细说应该分 2 部分,1.是 flex 生成的 swf 由于 SDK 庞大的关系,swf 体积也跟着庞大了, 这我们可以做的就是用 Module 动态加载,还有就是 RSL 了。2.处理速度慢,远程方法速度慢,这是 AVM 的硬伤了, 基本没有很好的解决方法, 我们能做的只是让这个异步进行的更完美一些, 让用户在等待的过程中, 做其他的事情, 以至于让用户忽略这段等待的时间。 8.flash 与 flex 是如何协调开发的? 答:这个问题可以这样来理解,如果是确实需要用到 FLEX SDK 的应用,那我们就可以建立一个 flex 工程,具体需要 flash 做 UI 的时候,输出成 swc 作为 flex 的 skin,如果说并不需要 flex sdk,只是为了编码方便而选择 flex 的话,那 我们只要建立一个 as 工程,让 flex 作为 flash 的编码器。 组件 1.我不想在容器里显示滚动条怎么办? 答:指定 horizontalScrollPolicy 和 verticalScrollPolicy 为 off 2.请问 Flex bulider3 可以创建几种不同的项目? 答:三种。Flex Project、 AS Project 和 Flex Library Project。 3.你了解 RSL 嘛?请说明下 RSL 的使用方法,以及使用 RSL 为了解决什么问题? 答:RSL(Runtime shared libraries)即动态链接库,在程序运行时由 FlashPlayer 动态加载。静态链接库是 SWC 文件, 通过编译器的 library-path 和 include-libraries 编译进应用程序。采用静态链接的应用程序 SWF 会产生比较大的文件 以及更长的下载时间。使用 RSL 的应用程序载入时间短且文件比较小,而且提高了内存使用效率,只是在开始需要 花点时间下载 RSL。RSL 的强大体现在多个应用程序共享公共代码时,因为 RSL 只需要被下载一次,多个应用程序动 态链接到相同的 RSL,访问其中已经缓存在客户端的资源。 使用 RSL: (1).在项目文件夹中点右建,选择properties-Flex Build Path-Library Path (2).该选项卡上我们看到FrameWork linkage,默认是Merged into cdoe(FLEX4 默认是 RSL) (3).点开下拉,选择runtime shared library(RSL) (4).针对自定义的 SWC,修改其 link type 为 RSL,选择 None,同时勾上 Automatically extract swf to deployment path(自动将 SWF 提取到部署路径)。如果想对不同域的 RSL 共享,则选择 Digests(摘要) ,同时指定其 Policy file url(策略文件) 。具体可参考 FLEX SDK 中的 SWC 文件处理方式。 (5).点击 OK 4.请问 SWC 是做什么用的,怎么样自己制作一个 SWC? 答:静态链接库是 SWC 文件,通过编译器的 library-path 和 include-libraries 编译进应用程序。 新建 Flex Library Object 或使用 compc 命令可以制作 SWC。 5.flex 生成出来的文件都是很大,请问你用什么办法进行缩小呢? 答:(1)RSL (2)Module (3)外部加载资源 6.请问 trace( NaN = NaN ) 结果为 true 还是 false,为什么? 答:NaN 具有独特的数学性质,任何与其相关的比较都会得到 false 的计算结果。改用全局 isNaN()函数检测 NaN 值,如下所示: trace(NaN = NaN); / false! trace(NaN != NaN); / false again! trace(isNaN(NaN); / true 7.warning: unable to bind to property ” on class Object (class is not an IEventDispatcher) 在使用 ItemRender 时, 经常会出现这种警告,请问想去除的话怎么办呢? 答:ArrayCollection 的子元素是无法作为数据源绑定的。可以声明中间变量,在 override set data 时将 ArrayCollection 的子元素传入,然后再将中间变量作为新的绑定源即可。 8.现在流行 MVC,但是 as 代码有的时候还是大部分写在 mxml 里面,请问我想代码分离怎么办呢? 答:严格按照 MVC 框架规范书写代码。如果还是不行,可以考虑重写组件或者从业务逻辑上解耦。没必要用 source 引用外部 as 文件来达到代码分离,那没有意义。 9.我想继承 UIComponent 重新写一个正方形的组件,我应该怎么做?请说重点部分即可. 答:(1)使用 get、set 初始化组件边长等必要数据,指定能通过 MXML 标记设置的属性。 (2)如果组件内有子元素,覆盖 createChildren()方法,使用 addChild 加入这些子元素。 (3)覆盖 commitProperties()方法,提交边长等组件属性变化。 (4)覆盖 measure()方法,设置组件缺省 size 和缺省最小 size。 (5)覆盖 updateDisplayList()方法,依据布局确定子元素大小及位置。最后,使用 graphics 类的 drawRect 方法画出 正方形边框。 10.常用的几个切换数据的组件比如: TabNavigator 等都有属性 creationPolicy 你知道这种策略的使用方式是什么嘛? 以及优,缺点呢? 答:延迟实例化。优点是可以更快地加载组件,缺点是首次访问其他组件时,由于需要重新加载此组件,可能会有 一定的延迟。 11.我想在 application 里获取当前运行的 URL,我要怎么获取. 答:Application.application.url 12.请说下事件里的 currentTarget 和 target 的区别? 答:在事件流的过程中,目标阶段确定的目标对象由 Event 中的 target 属性来记录,冒泡阶段移动的游标则由 currentTarget 来记录。事件对象冒泡过程中每往上移动一级,就会克隆出一个仅与前副本 currentTarget 不同的新副 本。 13.请列举下你常用的几种 effects,并说明使用原因. 答:SoundEffect,为了播放 MP3 TweenLite 很多特效 14.HBox,VBox 和 canvas 有什么区别呢?试说出其中几点 答:canvas 只有绝对布局,没有布局管理器。 HBox,VBox 则相反,没有绝对布局,只有相对布局。 15.请问我想在 list 里选中多行信息,我要怎么做呢? 答:设置 allowMultipleSelection 为 true 16.Alert 里面有几个属性,我想设置图片怎么办呢? 答:使用 iconClass 属性指定图片 17.请问你是否设置过样式呢,我想动态设置样式怎么办呢?如果我想在 as 代码里设置样式我又要怎么办呢? 答:使用 setStyle() 18.你能说一下 UIComponent 的生命周期嘛?以及相关的使用场合呢? 答:(1)调用组件构造函数 (2)设置组件属性 (3)调用 addChild()将组件添加到父组件显示列表 (4)组件的 parent 属性设置为对父容器的引用 (5)设置样式 (6)组件分发 preinitialize 事件 (7)调用组件 createChildren() (8)调用 invalidateProperties(), invalidateSize(), invalidateDisplayList()失效方法, FLEX 将在下一个 “渲染事件” (render event)期间对相应的 commitProperties(),measure(), updateDisplayList()方法进行调用。这个规则唯一例外就是 当用户设置组件的 height 和 width 属性时, Flex 不会调用 measure()方法。 也就是说, 只有当组件的 explicitWidth 和 explicitHeight 属性是 NaN 时 Flex 才会调用 measure()方法。 (9)组件分发 initialize 事件。此时组件所有的子组件初始化完成,但组件尚未更改 size 和布局,可以利用这个事 件在组件布局之前执行一些附加的处理 (10)在父容器上分发 childAdd 事件 (11)在父容器上分发 initialize 事件 (12)在下一个“渲染事件”(render event)中, Flex 执行以下动作: a.调用组件的 commitProperties()方法 b.调用组件的 measure()方法 c.调用组件的 layoutChrome()方法 d.调用组件的 updateDisplayList()方法 e.在组件上分发 updateComplete 事件 (13)如果 commitProperties(), measure(),updateDisplayList()方法调用了 invalidateProperties(),invalidateSize(), invalidateDisplayList()方法,则 Flexh 会分发另外一个 render 事件 (14)在最后的 render 事件发生后, Flex 执行以下动作: a.设置组件 visible 属性使其可视 b.组件分发 creationComplete 事件,组件的大小(size)和布局被确定,这个事件只在组件创建时分发一次 c.组件分发 updateComplete 事件。无论什么时候,只要组件的布局(layout),位置,大小或其它可视的属性 发生变化就会分发这事件,然后更新组件来正确地显示。 19.请问你是否发现过 flex3 里的 bug 呢,请列举一些? 答:flex Module 内存泄露,对象无法释放。 20.列举出 flex 里面的几个绑定数据对象的方式 答:对自已的类或者变量添加绑定功能: (1)类前使用Bindable表示所有属性都支持绑定,此类必须实现 IEventDispatcher 接口。 (2)可以给变量声明前或变量 getter setter 前使用Bindable。如果 getter 和 setter 方法同名,那么给其中一个 Bindable,相当于给两个都用了Bindable。 使用拥有绑定功能的属性: (1)、MXML 的方式,如:myInput.textmyVar1+myVar2myBtn (2)、 MXML 的方式。 和相同, 可以多绑一, 可以双向绑定。 如 (3)、AS 的 mx.binding/utils.BindingUtils 类的 bindProperty () 方法或 bindSetter () 方法 (4)、AS 的 mx.binding.utils.ChangeWatcher 的 watch () 方法 21.请问我自己定义了一个组件,我想在组件里的属性里设置几个默认值,我要怎么设置呢? 答:在定义组件时,初始化组件属性时即可指定默认值。 22.callLater()方法怎么使用,为什么要使用这个方法呢? 答:callLater(method:Function, args:Array):void 其中 method 是函数名,args 是要传入函数的参数。 callLater 指定的函数在下次刷新屏幕的时候才会执行, 这可以确保在对某个对象进行操作时对象已经创建完毕。 当然也可以利用这个特点来制作渐进动画。 23.请问你是否使用过 module 这种方法去做项目呢?他的优,缺点是什么呢?使用组件的方式加载的话,他的优,缺点是 什么呢? 答:优点是合理分割了主 Application,模块化开发。更小的 SWF 文件体积,配合 RSL 和延迟加载策略,大大减少用 户等待时间。缺点就是容易引起内存泄露。 24.目前网页里都有导航,请问在 Flex 要做导航要注意一些什么呢?以及怎么样做呢? 答:注意默认的延迟实例化可能会导致某些对象为空。 25.我想在一个错误的图片链接里,定义一下默认的图片怎么做呢? 答:控制 Image 的 source 属性,当图片链接出现错误时,指定默认链接。 26.请试写一个自定义的验证组件 答: package myCompenent import mx.validators.Validator;/引用 Validator 类 import mx.validators.ValidationResult;/引用 ValidationResult 类 public class myValidators extends Validator public function myValidators()/构造函数 super(); private var results:Array;/定义一个数组,用以存储错误 /重写验证函数 override protected function doValidation(value:Object):Array var s:String = value as String; results = ;/清空数组 results = super.doValidation(value);/先用继承类中的 doValida tion 方法验证 if (results.length 0)/如果验证时有错,返回错误信息 return results; if(s.length6)/自定义验证,字符长度不超过 6 /记录出错信息 results.push(new ValidationResult(true,text,StringTooLong, 字符长度超过 6 了); return results; 27.请说明下 trigger triggerEvent 在验证组件里是什么意思,具体怎么使用呢? 答:指定触发验证的组件和触发事件,默认是 source 指定的组件和 valueCommit 事件。 具体来说, 多个 validator 的 source 对应多个组件, 但它们的 trigger 都指向一个提交按钮, triggerEvent 都是 click。 这样,只会在点击提交按钮时,才触发所有验证。 28.ExternalInterface, LocalConnection 2 者有什么区别? 答:ExternalInterface 是 Flex 和 Javascript 通迅使用; LocalConnection 可以让运行于同一台计算机的本地应用程序进行交互,使用 AMF3 格式通信,兼容以前版本。 29.你是否使用过 flex 的测试工具呢?请说明下具体是哪种,以及使用方式,你为什么使用这种工具? 答:没有,只听过 FlexUnit,FlexMonkey。 30.我能把 CSS 编译成 swf 嘛? 答:可以,在 CSS 文件上右键选择 Compile CSS to SWF。 31.请用 as3 列举下你用过的模式 答:工厂模式,单例模式 32.Embed 绑定图片有什么缺点? 答:直接编译到 swf 文件中,造成其体积过大。而且由于嵌入代码中,维护不便。 33.TitleWindow 的组件是可以拖动的,我不想让他拖动我要怎么办呢? 答:让 isPopUp 属性false,同时设置弹出窗口为模态窗口,禁止与其他窗口交互。 34.你是否使用过 profile,你觉得这个工具怎么样,优,缺点是什么呢? 答:可以很方便地观察对象的创建和销毁,帮助检查内存泄露问题。 35.你是否做过 flex 前端的性能优化,你觉得怎么做是比较完美的? 答:(1)、避免容器的多级嵌套,减少相对尺寸、相对定位的使用。 (2)、尽量使用轻量级的容器 (3)、避免使用大体积的组件,比如 DataGrid、AdvancedDataGrid (4)、处理数据时多用分页的方式 (5)、少使用 setStyle (6)、使用延迟实例化加载子组件 36.你是否了解 E4X,请说明一下优,缺点? 答:E4X 是在 ECMA-357 标准中定义的,并成为 AS3 的一部分。优点是提供更简明和可读性强的语法从 XML 中查找 和提取数据。 38.请说明一下 ShareObject 的使用方法?以及优,缺点? 答:getLocal()用来指定存储在客户端的路径。 data 属性用来指定要存储的数据内容。 flush 方法负责把数据内容写入。 clear 方法用于清除储存的信息。 40.我现在给你 100 万做一个 flex 项目,你认为成功的要素在哪呢? 答:(1)数据和需求等传统软件项目的成功要素 (2)模块化开发,MVC 框架 (3)swf 文件减肥,运行效率,内存泄露问题,前台优化 (4)开源组件的使用1、 写一段代码判断一个数是否为素数(只有1和它自己两个因数的数为素数)2、 求一个数(x)为奇数还是偶数的方法3、 求1-n的阶乘:4、 用正则表达式检测E-mail的合法性5、 折半查找算法6、 指出下面代碼錯誤.var myRectStyles:Style = new Style();myRectStyles.dealFunction = dealFunction();.private function dealFunction():void.7、 假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。8、 城市发生了一起汽车撞人逃跑事件,该城市只有两种颜色的车,蓝15%绿85%,事发时有一个人在现场看见了,他指证是蓝车,但是根据专家在现场分析,当时那种条件能看正确的可能性是80%那么,肇事的车是蓝车的概率到底是多少? 9、 有一人有240公斤水,他想运往干旱地区赚钱。他每次最多携带60公斤,并且每前进一公里须耗水1公斤(均匀耗水)。假设水的价格在出发地为0,以后,与运输路程成正比,(即在10公里处为10元/公斤,在20公里处为20元/公斤.),又假设他必须安全返回,请问,他最多可赚多少钱?18.使用FlexBulider3构建一下新的.mxml的页面时默认的背景是蓝色的,请示用什么办法能点窜掉此背景色彩,致使于下次构建时背景不是为默认的蓝色的呢必修请写出你认为正确的方式.答:substring()返回一个字符串,该字符串由start和end参数指定的两点之间的字符形成。如果未指定end参数,则女字符串的末了就是该字符串的末了。如果start的值便是end的值,则该方式会返回一个空字符串。如果start的值年夜于end的值,则正在函数施行前两个参数将主动交流,且本始值不变。4.把局部立标改变为全局立标的方式target属性正在事件流的目标阶段,而currentTarget属性正在事件流的冒泡阶段(如currentTarget无时指父级)和目标阶段(两属性的指向相同),当然也能够是捉拿阶段。as3.0滚动条实例请诠释下MVC情势好比说注意不要循环引用,特别是正在使用Timer的时候要非分尤其注意,不要忘记全局东西上的引用的断根,正在构建掌握器和模型的时候要注意必定要使用单件情势。正在addEventListener时候只管即便采纳弱引用、自引用、或者女东西引用,以预防内存泄漏。答:面向东西关键是东西,引用一句话“通通事物结东西”;东西无它固无的属性和方式,26.请示enterFrame和timerEvent那2个事件无什么区别必修请说下具体的使用方式和有关的使用场合必修Slice:返回一个字符串,该字符串包括从start字符一直到end字符(但不包括该字符)之间的所无字符。不点窜本始String东西。如果未指定end参数,则女字符串的末了就是该字符串的末了。如果按start索引到的字符取按end索引到的字符相同或位于后者的左侧,则该方式会返回一个空字符串。Sprite取shape:前者也包括graphics属性,而且它包括不行用于Shape类的另外功能。比方,Sprite东西是显示东西容器,而Shape东西不是(而且不克不及蕴含女显示东西)。由于此原因,Shape东西会比蕴含相同图形的Sprite东西消耗的内存少。但是,Sprite东西收持鼠标单击事件,而Shape东西不收持。规范能否为数字,那就typeof一下,看他是不是int或者Number,如果是问字符串内容能否为数字,那也无很多办法,好比说,读出每个字符的ascii码,武断范畴,或者是东西,那样有害于咱们和谐体系整体的举动,简化了正在复纯状况下的配放管理。阿谁问题能够那样来明确,如果是确实须要用到FLEXSDK的使用,那咱们就能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南矿产集团子公司招聘16人考前自测高频考点模拟试题含答案详解
- 那时阳光下这时阳光下初中作文14篇范文
- 2025甘肃武威市事业单位招聘628人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025福建福州市马尾区文化体育和旅游局下属单位福州市马尾区文化馆招聘编外聘用人员1人模拟试卷有答案详解
- 2025福建龙岩市上杭县总医院引进医学类台湾人才1人模拟试卷附答案详解(黄金题型)
- 2025江苏金灌投资发展集团有限公司、灌南城市发展集团有限公司招聘高层次人才10人考前自测高频考点模拟试题及答案详解(全优)
- 2025年临沂市工程学校公开招聘教师(15名)模拟试卷及答案详解(名师系列)
- 2025年4月广东潮州市第三人民医院招聘编外人员49人模拟试卷及答案详解(有一套)
- 2025年福建省福州市平潭综合实验区人才发展集团有限公司招聘6人考前自测高频考点模拟试题及答案详解(易错题)
- 湖南省名校联盟2024-2025学年高一上学期开学质量检测地理地理试题(解析版)
- 小儿镇静课件
- 光伏建筑投标文件范本
- 2025年药店员工培训考试试题(附答案)
- 民办学校招生方案及推广策略实操指南
- 公益慈善投资策略-洞察及研究
- 碳排放咨询员基础技能培训手册
- 普及金融知识课件
- 军兵种知识课件
- 英国的社会和文化
- 稳定型心绞痛护理查房
- 中试平台运营管理制度
评论
0/150
提交评论