Flex面试题一.docx
- 文档编号:6195402
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:8
- 大小:21.06KB
Flex面试题一.docx
《Flex面试题一.docx》由会员分享,可在线阅读,更多相关《Flex面试题一.docx(8页珍藏版)》请在冰豆网上搜索。
Flex面试题一
1.使用FlexBulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的呢?
请写出你认为正确的方法。
答:
修改sdk\frameworks\projects\framework\default.css里Application的backgroundColor:
#0000FF;
2.使用FlexBulider3如何跟踪程序?
答:
我知道的三种1.trace()2.设置断点3.当不在调试模式时可以调用as的Alert.show()或js的alert()如:
navigateToURL(newURLRequest("javascript:
alert(traceMsg)"),"_self");
3.请问enterFrame和timerEvent这2个事件有什么区别?
请说下具体的使用方法和相关的使用场合?
答:
enterFrame是按帧发生,timeEvent是根据设置的Timer类参数发生。
如:
用ENTER_FRAME控制小球圆周运动:
addEventListener(Event.ENTER_FRAME,ballMove);
用TIMER控制小球圆周运动:
varmyTimer:
Timer=newTimer(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)或strParaisNumber
7.请问我想判断一个字符或者一个对象的类型怎么判断呢?
答:
typeof(obj)
8.请问你了解internal控制符么?
能说下具体使用方法和场合嘛?
答:
internal是默认的包内访问,体现了封装思想和package模块化思想。
举例来说,A类需要使用B类和C类的方法和属性,但又不希望它们对其他类暴露,只要将A,B,C放入同一包内,包外的其他类就无法使用B,C类了。
9.我想在某一点不去执行任何内容,也就是说我想停止执行了,你知道要怎么做嘛?
答:
设置断点
10.请问undefined和null是否一样,如果不一样能否说出其中的区别呢?
答:
undefined是尚未初始化的无类型变量或未初始化的动态对象属性的特殊值。
null是一个可以分配给变量的或由未提供数据的函数返回的特殊值。
它们的相同之处在于都未初始化,不同在于undefined是无类型或动态类型的。
如:
varv1;trace(v1);//undefined
varv2:
*;trace(v2);//undefined
varv3:
Object;trace(v3);//null
11.创建常量知道怎么创建嘛?
说下你是怎么创建的.
答:
constPI:
Number=3.1415926;publicstaticconstSTARTUP:
String="startup";
12.请问用什么方法自定义一个事件呢?
说下具体的方式.
答:
(1)扩展Event类或其子类
(2)定义一个staticconst常量作为事件的type传入构造函数
(3)定义一个私有变量作为事件的Data保存数据,并为其添加getter和setter
(4)覆盖toString()和clone()方法
13.请问怎么样检测本机的内容呢,比如说,我想知道本机的操作系统,是否有视频等这些.
答:
flash.system.Capabilities.os当前的操作系统
flash.system.Capabilities.hasStreamingVideo系统是否可以播放视频流
14.请问用什么办法解决安全域的问题?
如果你不知道安全域的问题的话,可以在本机中绑定一下图片,然后再放到服务器上,就会出现此问题了.
答:
配置安全沙箱的策略文件crossdomain.xml放置到服务器根目录,如:
xmlversion="1.0"encoding="UTF-8"?
>
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.请问一个数组里可以放不同的类型嘛?
答:
可以,如varx:
Array=['a',1,newButton()];
19.varletters:
Array=["a","b","c"];我想在这个数组里搜索‘c’字符,请问怎么办?
答:
for(vari:
*inletters)
if(letters[i]=='c')trace("c'spositionis"+i);或
if(letters.toString().indexOf('c')>0)
trace("c'spositionis"+letters.toString().indexOf('c'));
20.怎么样转换数组为字符串,怎么样将字符串转化为数组?
答:
数组->字符串:
trace(newArray('a','b','c').join("").toString());
字符串->数组:
vararr:
Array=newString("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对象。
如:
varrequest:
URLRequest=newURLRequest("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为thisisatext,我想设置光标在is上,请问怎么设置?
答:
触发事件,在侦听函数上让selectionBeginIndex=5,selectionEndIndex=6
31.请问怎么样在文本框里添加超链接?
答:
(1)使用文本框的htmlText属性添加必须以"event:
"开头的超链接,如 geturl|http: //***/|_blank'>这儿 (2)添加对TextEvent.LINK事件类型的侦听,如addEventListener(TextEvent.LINK,clickLink); (3)"event: "后面的字符串将被包含在侦听事件的text属性里,如 privatefunctionclickLink(event: TextEvent): void { varcmdArray: Array=event.text.split("|"); if(cmdArray[0]=="geturl") navigateToURL(newURLRequest(cmdArray[1],cmdArray[2]); } 32.我想获取系统里的字体,请问怎么办? 答: importflash.text.Font; varallFonts: Array=Font.enumerateFonts(true); allFonts.sortOn("fontName",Array.CASEINSENSITIVE); varfontsLength: int=allFonts.length; for(vari: int=0;i trace("字体名称: "+allFonts[i].fontName+"字体样式: "+allFonts[i].fontStyle+"字体类型: "+allFonts[i].fontType) 33.substring(),substr(),slice(),请说下3种解析字符串的不同之处,以及适用场合? 答: substring(v1,v2): 截取从v1到v2的字符串,包括v1,不包括v2 substr(v1,v2): 从v1开始,截取v2长度 slice(v1,v2): 类似于substring,不过可以接受负值参数,表示倒数第几位 34.varfruits: 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方法。 如: importflash.external.ExternalInterface; ExternalInterface.call("simpleJSFunction"); ExternalInterface.call("simpleJSFunctionWithParameters","myParameter"); varresult: String=ExternalInterface.call("simpleJSFunctionWithReturn"); 37.我想用JavaScript调用ActionScript函数,我要怎么办呢? 答: 使用ExternalInterface.addCallback在JavaScript里设置对Flex的回调方法并且在JavaScript里调用ActionScript方法。 AS: ExternalInterface.addCallback("function1",callback1); privatefunctioncallback1(): void { Alert.show("callback1executed"); } JS: container[swf].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开始将用户选择的文件上载到远程服务器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flex 试题