版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Flex3, ActionScript面试题集1.as2与as3.的最主要区别是什么?答:首先,as2和as3是完全不同的语言,几乎没有兼容性可言。as2编译用的AVM1虚拟机,as3用的AVM2,速度快,提供了一些基础异常处理。 as3是纯的OOP,强类型语言。as2不是。具体的差别有太多太多。2.flex的开发框架有哪些,它们有什么优缺点?答: 最常见的当然是Cairngorm、Puremvc了,此外还有Mate,Swiz等等,据说被广泛应用的已经有10几款了。Cairngorm作为 Adobe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一
2、些,需要对每个可以被触发的事件写一个对 应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。Puremvc应该是现在用的最多的as框架了。比较完善、并且与 Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Façade作为中央存储器的单件类的形式 进行开发的。说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用 MXML来做这些事情。Swiz是Mate的孪生兄弟,长的挺像,没具体用过,不大了解。3.在flex开发中,很多代码都写在mxml
3、文件里, 为了做到mvc模式,你是怎么处理的。我认为mxml并不影响mvc模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由 Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。如果采用其他框架来进行开发的话,那就更 不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问 题。4.如果发生内存泄露,你是如何解决的?在profile观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做
4、的只是尽量去避免这种情况的发生,比如说 注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式。在 addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏。5。as3.0垃圾回收器是如何工作的?flash player 8之前采用的是引用计数法,在flash player 8 之后用的是标记法,简单的说就是:从应用的根节点开始,遍历所有其上的引用,标记每个它所发现的对象。然后迭代遍历每个被标记的对象,标记它们的 子对象。这个过程第归进行,直到Player遍历了应用的整个对象树
5、并标记了它所发现的每个东西。在这个过程技术的时候,可以安全地认为,内存中那些没有 被打标记的对象没有任何活动引用,因此可以被安全地释放内存。一般来说,flash player采用的是一种低频的垃圾回收机制,Flash Player的垃圾回收发生在Flash Player需要另外请求内存之前。但并不是每次应用申请内存时都会导致垃圾回收的执行,只有当Flash占用的内存紧张到一定程度时才会执行真正的垃圾 回收,一定程度上取决于客户端计算机的物理内存的大小。6 flex和后台语言是如何交互的?无疑就这两种方法:remote object 或者是Http service7。你是如何处理前端速度慢的问题
6、?flex前端速度慢 其实仔细说应该分2部分,1.是flex生成的swf由于SDK庞大的关系,swf体积也跟着庞大了,这我们可以做的就是用Module动态加载,还有就 是RSL了。2.处理速度慢,远程方法速度慢,这是AVM的硬伤了,基本没有很好的解决方法,我们能做的只是让这个异步进行的更完美一些,让用户在等待的 过程中,做其他的事情,以至于让用户忽略这段等待的时间。8.flash与flex是如何协调开发的?这个问题可以这样来理解,如果是确实需要用到FLEX SDK的应用,那我们就可以建立一个flex工程,具体需要flash做UI的时候,输出成swc作为flex的skin,如果说并不需要flex
7、 sdk,只是为了编码方便而选择flex的话,那我们只要建立一个as工程,让flex作为flash的编码器。9.使用Flex Bulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的呢?请 写出你认为正确的方法.还真不会,我的做法一般是在这个工程里面,建一个总的css,都在里面规范起来,包括背景色啊,还有字体大小等等。10. 使用Flex Bulider3如何跟踪程序?装个debug版本的flash player,到时候在FB里面F11 debug它咯。11. 请问enterFrame和timerEvent这2个
8、事件有什么区别?请说下具体的使用方法和相关的使用场合?不会 我觉得差不多,不过我一般用enterFrame,还请高人指点。12. 请说下你理解AS3的事件机制是什么机制?你认为正确的就可以说出来.AS3事件流分三个阶段:1.捕获阶段 (即由根节点流向子节点,检测每个节点是否注册了监听器)2.目标阶段 (激发在目标对象本身注册的监听程序)3.冒泡阶段 (从目标节点到根节点,检测每个节点是否注册了监听器)当中涉及了两个属性target和currentTarget,target是事件的派发者,currentTarget是正在检测的对象,当开始了事件 流,事件的currentTarget属性处于不断变
9、化中.PS:注册事件时捕获阶段默认是关闭的,无论事件是否开启了捕获,事件流只会两选一去 执行注册的监听程序关于EventDispatcher三个函数的参数:1.addEventlistener(事件类型,监听函数,是 否打开捕获阶段,监听器优先级别,是否打开弱监听)2.removeEventListener(事件类型,监听函数,是否打开捕获阶段) (前两个参数是必须的,如果注册监听器时打开了捕获阶段,那么第三个参数也是必须的,否则会出现错误)3.dispatchEvent(new Event(事件类型,是否冒泡,是否可以取消事件)关于Event扩展有两点要注意:1.可以定义字符串常量代表事件类
10、型.2. 构造函数必须调用父类的构造函数,super(type,bubbles,cancelable)3.扩展Event可以使Event带自定义变 量,从而可以传递数据.13.请问addEventListener里面有几个参数,你能说出具体的使用方法嘛?这题出的有点像考API记忆力呵呵, 它的五个参数分别是addEventlistener(事件类型,监听函数,是否打开捕获阶段,监听器优先级别,是否打开弱监听)具体使用方法:详见手册,这里我copy来了。addEventListener () 方法public functio
11、n addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void语言版本 : ActionScript 3.0RuntimeVersions: AIR 1.0, Flash Player 9使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显
12、示列表的所有节点上注册事件侦听器。成功注册一个 事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。请记住,注册该侦听器后,如果继续调用具有不同 type 或 useCapture 值的 addEventListener(),则会创建单独的侦听器注册。例如,如果首先注册 useCapture 设置为 true 的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener(),并将 useCapture
13、设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。不能只为 目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。) 但是,如果移动 EventDis
14、patcher 实例,则其中附加的事件侦听器也会随之移动。如果在正在处理事件的节点上注册事件侦听器,则不 会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作 触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。参数type:String 事件的类型。listener:Function 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:function(evt:Event):void函数可以有任何名 称。useCaptur
15、e:Boolean (default = false) 确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false.priority:int (default = 0) 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越
16、高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。useWeakReference:Boolean (default = false) 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。类级别成员函数不属于垃圾回 收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数
17、将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持 永久。14.请问我想判断一个字体是否是数字,用什么办法去判断呢?这问题问的有点奇怪。字体怎么可能是数字。如果是问,类型是否为数字,那就typeof一下,看他是不是int或者Number,如果是问字符串内容 是否为数字,那也有很多办法,比如说,读出每个字符的ascii码,判断范围,或者是var a:String=”1232d4;var b:Number=Number(a);var c:String=String(b);if(a=c)Alert.show(“yes”);e
18、lseAlert.show(“no”);15.请问我想判断一个 字符或者一个对象的类型怎么判断呢?应该没人出这样的题吧? if 咯。类型的话就typeofActionScript 3.0 面试题1. as2与as3的有哪些区别?(5个特征)2. flash player 10.1 有哪些新特征?3. Adobe flash 平台可以开发胖客户端程序 吗?说说你的了解。4. Adobe flash 家族还有哪些产品?怎么做选择。5. Flash 可以直接去读数据库数据吗?如果要实现有哪些方法?6. 你认为flash 这个技术怎样?它可以做哪方面的事情?(从功能和行业说)7. Flash 目前最大
19、的问题是什么?8. 请列举一下,你认为不错的网站或者blog.9. 请列举一下你知道的影响性能的几个因素?10. Flash 可以实现cookies 功能吗?用什么方法?11. 代码var a = true; trace(a?”a”:”b”); 输出什么?a12. 代码var f:Function;trace(f=function()return 10,f()/2); 输出什么?513. 请问你知道loader,URLLoader,URLStream这个三种动态加载资源的具体使用场合,以及有什么区别嘛?14. 请问我现在有一个正方形的图片,我想把他做成圆形,有什么办法呢?前提是用flex或者a
20、s315. Flash 可以实现套接字通信吗?16. var letters:Array = "a", "b", "c"我想在这个数组里搜索 b 字符,请问怎么办?for(var i:number=0;i<=letters.length;i+)if(letters=b')trace(i);17. 怎么样转换数组为字符串,怎么样将字符串转化为数组?18. 怎样判断一个值,是string 还是int?var mySprite:String = new String(“1);trace(mySprite as String);
21、trace(mySprite as int);19. 请问enterFrame和timerEvent这2个事件有什么区别?请说下具体的使用方法和相关的使用场合?20. 我现在给你100万做一个flex项目,你认为成功的要素在哪呢?SD-Java&Flex Java&Flex高级开发工程师面试题如果克服FLEX的缺点如何动态变换皮肤FLEX与后台交互的方法FLEX与JS的交互方法项目中所使用到的框架官方框架与PUREMVC有何区别PUREMVC框架的机制Flex AS面试题第一部分:AS3和Flex基础1,AS3语言中,Array里面是不是可以放不同类型?2,创建常量知道怎么创建
22、嘛?3,请说出用private,internal,protected,static,final,public关键字修饰的对象的访问权限以及子对象的继承权限?4,请说出uint,int,number的区别,我想判断一个对象是不是String类型或者是int类型如何做?5,如何返回一个对象的类型,undefined 和 null 是否一样,如果不一样能否说出其中的区别呢?6,如何判断一个字符串s是不是数字?7,parseInt此方法转化为int型的方法,你知道此方法的第二个参数是什么意思嘛?8,将一个number型的数值n如何转换成int型和String型?9,如何清空一个数组?10,写一个函数d
23、elArray(start:int,sum:int):Array.start表示删除开始的位置,sum表示删除的个数,返回一个新数组。12,Math.round( ), Math.floor( ) 和Math.ceil( ) 三个方法都是四舍五入,有什么区别?13,写一个函数给一个数组倒序排列,不使用数组自带的reverse方法。能不能只用一次遍历?14,有一个字符串s=12,12,34,13,56,76;能不能以,'为分隔符将它转换成一个数组?15,自己写一个方法实现以固定符号为分割的将字符换转换成数组的功能,也就是将第14题目的功能自己实现。16,用最快速的方式给一个数值型数组按大
24、小排序。17,如何在数组里面查找元素?18,请说下你理解AS3的事件机制是什么机制?19,addEventListener里面有几个参数,分别是什么意思?20,用AS3如何自定义一个事件?21,不用AS3代码方式能不能自定义一个事件?22,自定义一个方法,将一个元素插入到数组的指定位置,并返回新的数组。addItemAt(Item:*,index:int)。并说明一下*是什么意思。23,写一个方法去除数组中的重复记录并返回新的数组。24,Flex的项目运行时如何修改背景颜色?Flex3如何修改,Flex4如何修改?25,使用Flex Bulider如何跟踪程序?26,请问Flex bulide
25、r3可以创建几种不同的项目? Flex Builder4可以创建几种不同的项目?27,什么是RSL,如何使用?28,如何使应用去掉水平滚动条而显示垂直滚动条?29,我想创建的视图居中怎么办?30,如何把MouseEvent 的localX 和localY 属性转化成全局坐标?31,我怎么设置把一个文本框(textInput),设置成一个密码框?32,我想让一个button鼠标移动上去变成手型,需要怎么设置?33,Flex4中VGroup的垂直间距如何设置?34,Alert如何添加一张图片,如何设置背景图片?35,Alert确定和取消按钮我想让他显示为”同意”和”拒绝”;如何做?36,Array
26、Collection和Array在使用上有什么区别?37,DataGrid能不能用自带的方法改变行颜色?38,导航器组件都有什么?39,TitleWindow的组件是可以拖动的,我不想让他拖动我要怎么办呢?40,Embed绑定图片有什么缺点?41,我自己定义了一个组件,我想在组件里的属性里设置几个默认值,我要怎么设置呢?42,列举出flex里面的几个绑定数据对象的方式。43,DataGrid,List组件如何设置可以多选?44,tree控件中如何使用图片?45,我想设置TabNavigator在运行时加载子页面如何设置?46,Image组件能加载baidu上面的图片吗?或者网络上面的图片,如何
27、加载?47,Image组件如何设置不等比例缩放?48,如何给下拉列表框增加一个默认首选项?比如:请点击选择49,Flex中有线程的概念吗?如果我想实现线程怎么做?50,enterFrame和timerEvent这2个事件有什么区别?请说下具体的使用方法和相关的使用场合? 第二部分,程序题目 请编写代码Flex实现功能。51,写一个DataGrid绑定ArrayCollection数据的例子。要求每隔一秒钟,数据刷新一次。52,在1的基础上,去掉刷新实现选中多行删除。53,在2的基础上实现选中多行移动到另外一个DataGrid,并且原来的DataGrid将选中的移除。54,在1的基础之上,用Ad
28、vanceDataGriid实现一个每隔一秒钟刷新数据的例子,并且设置不同的2中行字体风格,比如红色和绿色字体。55,用Flex4写一个只有加法功能的计算器,不要求和计算其界面一样,只要有2个输入数值一个计算按钮和一个显示结果的文本框即可。56,Flex4调用远程的xml数据并显示在tree控件中。57,在6的基础之上过滤远程的xml数据,并显示在tree上。58,在DataGrid中放入图片和button。59,一个button本身有一张背景图片,实现鼠标移动上去换一张背景图片,鼠标移开恢复原来的图片。60,Flex中 如何获得ColumnChart的xField运行时显示的值? 问题地址:
29、 61,将ArrayCollection转换成xml并弹出转换结果。62,Flex过滤ArrayCollection的数据,并且将符合条件的数据显示在下拉列表里面,过滤掉的显示在另一个下拉列表里面。63,给一个Alert弹出框实现zoom弹出效果。64,判断输入的一个数值是不是素数,如果是弹出“是”,否则弹出“否”。65,输入一个数值,然后求出它的阶乘。66,编写一个调用远程图片的例子。一个文本输入框,一个确定按钮,一张图片,输入远程的地址,点击按钮图片内容显示远程的图片。68,编写一个小例子,实现label文字点击变色。69,自定义实现一个加载进度条。越漂亮越美观越好。70,完成一个图片浏览
30、的例子,自己设计界面,自己完成功能,遇到问题可以交流。要能读取xml文件,展示图片,界面风格随意,界面效果随意。越漂亮越好,越美观越好。第三部分,高级题目 逻辑加操作给定足够的 5角,3角,1角,9分,2分,1分这六种零钱,将1元(100)换成零钱,一共有多少种换法?用程序实现,并显示出所有的结果。要求能输入要转换的零钱,以固定分隔符”,”分隔开不同的零钱。Flex面试题1.使用Flex Bulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的呢?请写出你认为正确的方法。答:修改sdkframeworksproj
31、ectsframeworkdefault.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是按帧发生,time
32、Event是根据设置的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的事件机制是什么机制?你认为正确的就可以说出来.答:建立一个完整的事件机制需要四个步骤:注册侦听、分发事件、侦听事件、移除侦
33、听。建立成功后,触发事件,事件流会进行捕获、目标和冒泡三个阶段。捕获阶段由FP沿显示列表从根容器往下层层寻找触发事件的目标对象,找到后即进入目标阶段。然后,事件对象从目标对象再次沿显示列表往上移动至根容器,遇到注册侦听的节点就调用侦听函数。如果想中途中断冒泡,可以使用stopPropagation。5.请问addEventListener里面有几个参数,你能说出具体的使用方法嘛?答:addEventListener(type:String, 事件的类型listener:Function, 监听函数useCapture:Boolean = false, 是否打开捕获功能priority:int
34、= 0, 监听器优先级别useWeakReference:Boolean = false 是否使用弱引用)6.请问我想判断一个字体是否是数字,用什么办法去判断呢?答:isNaN(parseInt(strPara) 或 strPara is Number7.请问我想判断一个字符或者一个对象的类型怎么判断呢?答:typeof(obj)8.请问你了解 internal 控制符么?能说下具体使用方法和场合嘛?答:internal是默认的包内访问,体现了封装思想和package模块化思想。举例来说,A类需要使用B类和C类的方法和属性,但又不希望它们对其他类暴露,只要将A,B,C放入同一包内,包外的其他类
35、就无法使用B,C类了。9.我想在某一点不去执行任何内容,也就是说我想停止执行了,你知道要怎么做嘛?答:设置断点10.请问 undefined 和 null 是否一样,如果不一样能否说出其中的区别呢?答:undefined是尚未初始化的无类型变量或未初始化的动态对象属性的特殊值。null是一个可以分配给变量的或由未提供数据的函数返回的特殊值。它们的相同之处在于都未初始化,不同在于undefined是无类型或动态类型的。如:var v1;trace(v1);/undefinedvar v2:*;trace(v2);/undefinedvar v3:Object;trace(v3);/null11.
36、创建常量知道怎么创建嘛?说下你是怎么创建的.答: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.sy
37、stem.Capabilities.os 当前的操作系统flash.system.Capabilities.hasStreamingVideo系统是否可以播放视频流14.请问用什么办法解决安全域的问题?如果你不知道安全域的问题的话,可以在本机中绑定一下图片,然后再放到服务器上,就会出现此问题了.答:配置安全沙箱的策略文件crossdomain.xml放置到服务器根目录,如:15.有三种基本数字类型:number, int, 和uint 请问有什么区别.具体说一下.答:number数字类型包含浮点型(正0负); int 整型(正0负); uint(无符号整型)16.parseInt此方法转化为i
38、nt型的方法,请问你知道此方法的第二个参数是什么意思嘛?答:指定第一个参数字符串的进制,范围为2-36。例如parseInt(“100”,2)=417.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"
39、;, "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()
40、;字符串->数组: 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
41、_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编
42、码变量值对的形式先从URL下载数据,然后才将数据用于ActionScript。它会发出有关下载进度的通知,通过bytesLoaded和bytesTotal属性以及已调度的事件,可以监视下载进度。(3)URLStream类提供对下载URL的低级访问。数据一下载,便可随即为应用程序使用,这和使用URLLoader需要等到整个文件下载完不同。并且URLStream类还允许在完成下载前关闭流。已下载文件的内容将作为原始二进制数据提供。(4)URLStream、URLLoader、Loader等读取外部数据的类,类里的load方法参数值是URLRequest对象。如:var request:URLReq
43、uest=new URLRequest(“httpURL地址”);loader.load(request);24.如何把MouseEvent 的localX 和localY 属性转化成全局坐标?答:全局坐标系:stageX,stageY。原点位于舞台左上角。本地坐标系:localX,localY。原点位于相对组件的左上角。内容坐标系:contentMouseX和contentMouseY。描述鼠标相对于整个容器内容的位置,用于当子组件的高或宽可能超出容器自身设置高宽的情况。转换方法:contentToGlobal内容到全局坐标contentToLocal内容到本地坐标globalToConte
44、nt全局到内容坐标globalToLocal全局到本地坐标localToContent本地到内容坐标localToGlobal本地到全局坐标25.请问我现在有一个正方形的图片,我想把他做成圆形,有什么办法呢?前提是用flex或者as3答:不清楚,是不是用BitMapData的draw方法实现呢?会的朋友请告诉我。26.请问新创建的一个sprite能否被直接加到ui容器里?如果不能请说出用什么办法能加入.答:不能。先将sprite加入一个扩展自UIComponent的类,再加入UI容器。27.我怎么设置把一个文本框,设置成一个密码框?答:将displayAsPassword属性设置为true28
45、.我想在文本框里只能输入abcd,有什么办法能做到呢?如果我想输入除abcd以外的其它都能输入又怎么做呢?答:restrict=”a-d”。restrict=”(a-d)”29.请问condenseWhite 这个属性在TextInput里是表示什么意思?答:仅会应用于通过htmlText属性设置的文本,默认为false。当设置为true时,会删除文本中额外的换行和空白。30.我现在刚创建的文件的text为 this is a text,我想设置光标在 is 上,请问怎么设置?答:触发事件,在侦听函数上让selectionBeginIndex=5,selectionEndIndex=631.请
46、问怎么样在文本框里添加超链接?答:(1)使用文本框的htmlText属性添加必须以”event:”开头的超链接,如这儿(2)添加对TextEvent.LINK事件类型的侦听,如addEventListener(TextEvent.LINK,clickLink);(3)”event:”后面的字符串将被包含在侦听事件的text属性里,如private function clickLink(event:TextEvent):voidvar cmdArray:Array = event.text.split(“|”);if(cmdArray0=”geturl”)navigateToURL(new UR
47、LRequest(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;i<fontsLength;i+)trace("字体名称:"+allFontsi.fontName+"字体样式:&
48、quot;+allFontsi.fontStyle+"字体类型:"+allFontsi.fontType)33.substring( ),substr( ), slice(),请说下3种解析字符串的不同之处,以及适用场合?答:substring(v1,v2): 截取从v1到v2的字符串,包括v1,不包括v2substr(v1,v2): 从v1开始,截取v2长度slice(v1,v2):类似于substring,不过可以接受负值参数,表示倒数第几位34. var fruits:XML =AppleOrangePearWatermelon;以下有一个字符串,我现在知道了colo
49、r为orange,我想知道此color相对应的name节点的值,我应该怎么做?答:原题的XML不规范。找到name节点值可以用fruits.fruits(color=orange).name35.请说下目前使用flex和后台交互的几种方法,以及适用场合.答:(1)基于AMF消息格式的RemoteObject组件,如Lcds/BlazeDs,AMFPHP等。(2)基于SOAP消息格式的WebService,对于使用SOAP的服务器方便连接。(3)基于纯文本或拥有良好格式的XML消息格式的HTTPService组件。一般来说,选用高效稳定的RemoteObject中间件。36.我现在想在flex里
50、调用JS方法,我要怎么办呢?答:直接在AS中使用ExternalInterface.call()来调用JS方法。如:import flash.external.ExternalInterface;ExternalInterface.call("simpleJSFunction");ExternalInterface.call("simpleJSFunctionWithParameters","myParameter");var result:String=ExternalInterface.call("simpleJSFun
51、ctionWithReturn");37.我想用JavaScript调用ActionScript函数,我要怎么办呢?答:使用ExternalInterface.addCallback在JavaScript里设置对Flex的回调方法并且在JavaScript里调用ActionScript方法。AS:ExternalInterface.addCallback("function1",callback1);privatefunctioncallback1():voidAlert.show("callback1executed");JS:contain
52、erswf.function1();38.FileReference 请说下此对象的几个相关事件答:browse(typeFilter:Array = null):Boolean显示一个文件浏览对话框,让用户选择要上载的文件。cancel():void取消正在对该 FileReference 对象执行的任何上载或下载操作。download(request:URLRequest, defaultFileName:String = null):void打开对话框,以允许用户从远程服务器下载文件.upload(request:URLRequest, uploadDataFieldName:Strin
53、g = "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作为Ad
54、obe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。Puremvc应该是现在用的最多的as框架了。比较完善、并且与Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Façade作为中央存储器的单件类的形式进行开发的。说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用MXML来做这些事情。Swiz是M
55、ate的孪生兄弟,长的挺像,没具体用过,不大了解。3.在flex开发中,很多代码都写在mxml文件里,为了做到mvc模式,你是怎么处理的。答:我认为mxml并不影响mvc模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问题。4.如果发生内存泄露,你是
56、如何解决的?答:在profile观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做的只是尽量去避免这种情况的发生,比如说注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式。在addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏。5.as3.0垃圾回收器是如何工作的?答:flash player 8之前采用的是引用计数法,在flash player 8 之后用的是标记法,简单的说就是:从应用的根节点开始,遍历所有其上的引用,标记每个它所发现的对象。然后迭代遍历
57、每个被标记的对象,标记它们的子对象。这个过程递归进行,直到Player遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过程进行的时候,可以安全地认为,内存中那些没有被打标记的对象没有任何活动引用,因此可以被安全地释放内存。一般来说,flash player采用的是一种低频的垃圾回收机制,Flash Player的垃圾回收发生在Flash Player需要另外请求内存之前。但并不是每次应用申请内存时都会导致垃圾回收的执行,只有当Flash占用的内存紧张到一定程度时才会执行真正的垃圾回收,一定程度上取决于客户端计算机的物理内存的大小。6 flex和后台语言是如何交互的?答:见第35题。7.你是如何处理前端速度慢的问题?答:flex前端速度慢 其实仔细说应该分2部分,1.是flex生成的swf由于SDK庞大的关系,swf体积也跟着庞大了,这我们可以做的就是用Module动态加载,还有就是RSL了。2.处理速度慢,远程方法速度慢,这是AVM的硬伤了,基本没有很好的解决方法,我们能做的只是让这个异步进行的更完美一些,让用户在等待的过程中,做其他的事情,以至于让用户忽略这段等待的时间。8.flash与flex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生自我评价集锦15篇
- 校园活动策划书(集锦15篇)
- 端午节演讲稿3分钟(合集4篇)
- 销售上半年工作总结15篇
- 旅游案例-彝人古镇
- 长度单位手抄报6篇
- 人教版高一地理必修2同步习题及答案解析(全册)
- 儿童乐园合同(2篇)
- 河南省安阳市林州第二职业高级中学高三语文联考试卷含解析
- 2025年斗型布草车项目合作计划书
- 系统解剖学(南方医科大学)智慧树知到期末考试答案章节答案2024年南方医科大学
- 2022年秋新教材高中语文第七单元第16课16.1赤壁赋16.2登泰山记课后集训部编版必修上册
- 微波技术与天线刘学观课后习题答案
- 水稻害虫精选课件
- 危险化学品购买管理台账
- 最新VTE指南解读(静脉血栓栓塞症的临床护理指南解读)
- 中学校本课程教材《生活中的化学》
- 污水处理站运行维护管理方案
- 农村公路养护工程施工组织设计
- 个人如何开办婚介公司,婚介公司经营和管理
- 天津市历年社会保险缴费基数、比例
评论
0/150
提交评论