加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex面试题及答案

发布时间:2020-12-15 04:15:50 所属栏目:百科 来源:网络整理
导读:在网上见到了一篇不错的关于flex面试题目,转来记录一下。希望有所帮助! 第一部分: 1.使用Flex Bulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问 用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的 呢?请写出你认为正确的方

在网上见到了一篇不错的关于flex面试题目,转来记录一下。希望有所帮助!

第一部分:

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个事件有什么区别?请说下具体的使用方法

和相关的使用场合?
没接触过,待学习中

4.请说下你理解AS3的事件机制是什么机制?你认为正确的就可以说出来.
答:从应用程序到最外层的容器在到容器里的组件或容器遍历注册的事件,然

后按照原路返回冒泡响应事件

5.请问addEventListener里面有几个参数,你能说出具体的使用方法嘛?
答:只用过前4个,参数分别为:Event名称,响应(回调)函数, 是否冒泡时

响应,Event级别

6.请问我想判断一个字体是否是数字,用什么办法去判断呢?
答:isNaN(parseInt(strPara) 或 strPara is Number

7.请问我想判断一个字符或者一个对象的类型怎么判断呢?
答:typeof(obj)

8.请问你了解 internal 控制符么?能说下具体使用方法和场合嘛?
答:同一个包里才能调用internal所定义的变量或对象

9.我想在某一点不去执行任何内容,也就是说我想停止执行了,你知道要怎么做

嘛?
答:设置断点

10.请问 undefined 和 null 是否一样,如果不一样能否说出其中的区别呢?
答:undefined未定义过的变量或对象; null没有被赋值或创建的变量或对象

11.创建常量知道怎么创建嘛?说下你是怎么创建的.
答:const PI:Number = 3.1415926;

12.请问用什么方法自定义一个事件呢?说下具体的方式.
答:先用as创建一个event类, 然后
?? <1>可以用addEventListener直接响应
?? <2>也可以用元标签声明 [Event(name=事件名称,type=事件类)],然后创

建对象->dispatchEvent(创建的对象)->mxml标签中使用事件名称来响应

13.请问怎么样检测本机的内容呢,比如说,我想知道本机的操作系系,是否有视

频等这些.
答:flash.system.Capabilities.os 是系统类型
flash.system.Capabilities.playerType?? 是视频播放器类型

14.请问用什么办法解决安全域的问题?如果你不知道安全域的问题的话,可以

在本机中绑定一下图片,然后再放到服务器上,就会出现此问题了.
没接触过,待学习中

15.有三种基本数字类型: number,int,和uint 请问有什么区别.具体说一

下.
答:number数字类型包含浮点型(正0负); int 整型(正0负); uint(无符号整

型)

16.parseInt此方法转化为int型的方法,请问你知道此方法的第二个参数是什

么意思嘛?
答:进制 2 8 16 等

17.Math.round( ), Math.floor( ) 和Math.ceil( ) 三个方法都是四舍五入

,请问有什么区别?
答:都是取整:round 是原数+0.5后取整(3.0->3.0+0.5=3.5->4;3.9-

>3.9+0.5=4.4->4);floor向下取整(3.4->3;3.9->3);ceil向上取整(1.3-

>2;2.8->3)

18.请问一个数组里可以放不同的类型嘛?
答:可以 var x:Array = ['a',1,new Button()];

19.var letters:Array = ["a","b","c"];我想在这个数组里搜索 ‘b’ 字

符,请问怎么办?
答:/*1*/for(var i:* in letters)?
?? if(letters == 'c') trace("c's position is " + i);
/*2*/if(letters.toString().indexOf('c') > 0)?
?? trace( "c's position is " + (letters.toString().indexOf('c')-

letters.length + 1) );

20.怎么样转换数组为字符串,怎么样将字符串转化为数组?
答:数组->字符串:trace(new Array('a','b','c').join("").toString());
??? 字符串->数组: var arr:Array = new String("a,b,c").split(',');

21.我想创建的视图居中怎么办?

22.请问知道层级的概念嘛?如果知道请问怎么样交换2个组件的层级呢?

23.请问你知道loader,URLLoader,URLStream这个三种动态加载资源的具体使

用场合,以及有什么区别嘛?

24.如何把MouseEvent 的localX 和localY 属性转化成全局坐标?

25.请问我现在有一个正方形的图片,我想把他做成圆形,有什么办法呢?前提是

用flex或者as3

26.请问新创建的一个sprite能否被直接加到ui容器里?如果不能请说出用什么

办法能加入.

27.我怎么设置把一个文本框,设置成一个密码框?

28.我想在文本框里只能输入abcd,有什么办法能做到呢?如果我想输入除abcd

以外的其它都能输入又怎么做呢?

29.请问condenseWhite 这个属性在TextInput里是表示什么意思?

30.我现在刚创建的文件的text为 this is a text,我想设置光标在 is 上,请

问怎么设置?

31.请问怎么样在文本框里添加超链接?

32.我想获取系统里的字体,请问怎么办?

33.substring( ),substr( ),slice(),请说下3种解析字符串的不同之处,以

及适用场合?

34. var fruits:XML =?
Apple

Orange

Pear

Watermelon

;
以下有一个字符串,我现在知道了color为orange,我想知道此color相对应的

name节点的值,我应该怎么做?

35.请说下目前使用flex和后台交互的几种方法,以及适用场合.

36.我现在想在flex里调用JS方法,我要怎么办呢?

37.我想用JavaScript调用ActionScript函数,51); font-family:Arial; font-size:14px; line-height:26px"> 38.FileReference 请说下此对象的几个相关事件

?

一.简述Flex内存释放优化原则。什么情况会发生内存经泄露,一旦有内存泄

露,你会如何解决?

FLEX内存释放优化原则:
1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收

处理掉;
2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除

,子对象不会被删除又会导致了父对象不会被删除;
3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对

象时,一定要记得把此对象的引用设置为null;
4. 本对象删除不了的原因不一定是自己被引用了,也有可能是自己的孩子被

外部引用了,孩子删不掉导致父亲也删不掉;
5. 除了引用需要删除外,系统组件或者全局工具、管理类如果提供了卸载方

法的就一定要调用删除内部对象,否则有可能会造成内存泄露和性能损失;
6. 父对象立刻被删除了不代表子对象就会被删除或立刻被删除,可能会在后

期被系统自动删除或第二次移除操作时被删除;
7. 如果父对象remove了子对象后没有清除对子对象的引用,子对象一样是不

能被删除的,父对象也不能被删除;
8. 注册的事件如果没有被移除不影响自定义的强行回收机制,但有可能会影

响正常的回收机制,所以最好是做到注册的事件监听器都要记得移除干净。
9. 父对象被删除了不代表其余子对象都删除了,找到一种状态的泄露代码不

等于其他状态就没有泄露了,要各模块各状态逐个进行测试分析,直到测试任

何状态下都能删除整个对象为止。

内存泄露情况:

1. 引用泄露:对子对象的引用,外部对本对象或子对象的引用都需要置null


2. 系统类泄露:使用了系统类而忘记做删除操作了,如

BindingUtils.bindSetter(),ChangeWatcher.watch()函数时候完毕后需要调

用ChangeWatcher.unwatch()函数来清除引用 ,否则使用此函数的对象将不会

被删除;
类似的还有MUSIC,VIDEO,IMAGE,TIMER,EVENT,BINDING等。
3. 效果泄露:当对组件应用效果Effect的时候,当本对象本删除时需要把本

对象和子对象上的Effect动画停止掉,然后把Effect的target对象置null; 如

果不停止掉动画直接把 Effect置null将不能正常移除对象。
4. SWF泄露:要完全删除一个SWF要调用它的unload()方法并且把对象置null;
5. 图片泄露:当Image对象使用完毕后要把source置null;(为测试);
6. 声音、视频泄露: 当不需要一个音乐或视频是需要停止音乐,删除对象,

引用置null;

内存泄露解决方法:
1. 在组件的REMOVED_FROM_STAGE事件回掉中做垃圾处理操作(移除所有对外

引用(不管是VO还是组件的都需要删除),删除监听器,调用系统类的清除方

法)
先remove再置null,确保被remove或者removeAll后的对象在外部的引用全部

释放干净;
2. 利用Flex的性能优化工具Profile来对项目进程进行监控,可知道历史创建

过哪些对象,目前有哪些对象没有被删除,创建的数量,占用的内存比例和用

量,创建过程等信息;


二.你常用的Flex框架是什么?简述一下它的特点。
mate.
特点:Flex应用是基于事件驱动的,而Mate框架使其变得更加得简单,Mate允

许用户定义是谁正在管理/处理这一事件,以及数据是否需要从服务器端返回

,或者其他的什么事件需要被触发,所有的这些都使得Flex应用的开发变得更

加得简单。

三.Flex是如何与flash协作的?
实现编码与设计的好处是显而易见的:

1.代码易于维护与二次开发。所有AS代码以面向对象的思想在flash外部组织

,用notepad即能打开。比起传统的as2分散于frame之间,以及更早的分散于

影片与按纽之上,其优点好处不言而喻。

2.设计独立于代码之外。可以在没有程序员的清况下,修改程序(系统) 的

外观,亦可以新做一批theme;程序没有变,只是改改图片和排列位置,大小

等,就可以迅速焕然一新。譬如,在春节时,加一些春节的时令元素进去,这

将是一件很容易做的事情。

四.如何提升Flex运行效率,请从各方面进行简述。

1、避免容器的多级嵌套,减少相对尺寸、相对定位的使用。
在使用百分比来给容器内的元件定尺寸,一旦容器中的任何一个元件的位置和

尺寸变化,都会引发容器对所有子级的重定位动作。如果嵌套的级别很深,这

个计算量会很大。

2、尽量使用轻量级的容器
Canvas是体积最小的容器,它只支持绝对定位。很多时候,都可以使用它来代

替HBOx和VBox。另外,Canvas也是我们编写自定义容器性质组件的一个首选。

它具有容器的基本功能,利于扩展。

3、避免使用大体积的组件,比如DataGrid、AdvancedDataGrid
大个子组件的功能强大,但开销也是非常大的。由于功能的复杂性,使得皮肤

、样式、itemRenderer的实现都格外复杂。

4、处理数据时多用分页的方式
在使用数据类型控件时,尽量减少数据一次的显示量。比如TileList,它会把

数据一次性全部创建,不管是不是需要显示,这样很浪费资源。 ViewStack

、TabNavigator等在处理元件时,并不是一次创建,只要元件在第一次被显示

时才创建,这样,就避免的不必要的开销。

5、setStyle和styleName
Flex 组件的皮肤都是可视化元件,组件在自身初始化时,会使用当前的样式

比如styleName完成所有皮肤元件的绘制。如果我们在运行期间通过 setStyle

修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果

组件位于一个层级很深的容器中,也会有一个大的计算量。

组件内容
1.我不想在容器里显示滚动条怎么办?

2.请问Flex bulider3可以创建几种不同的项目?

3.你了解RSL嘛?请说明下RSL的使用方法,以及使用RSL为了解决什么问题?

4.请问SWC是做什么用的,怎么样自己制作一个SWC?

5.flex生成出来的文件都是很大,请问你用什么办法进行缩小呢?

6.请问 trace( NaN == NaN ) 结果为true 还是false,为什么?

7.warning: unable to bind to property ” on class ‘Object’ (class

is not an IEventDispatcher) 在使用ItemRender时,经常会出现这种警告,51); font-family:Arial; font-size:14px; line-height:26px"> 问想去除的话怎么办呢?

8.现在流行MVC,但是as代码有的时候还是大部分写在mxml里面,请问我想代码

分离怎么办呢?

9.我想继续UIComponent重新写一个正方形的组件,我应该怎么做?请说重点部

分即可.

10.常用的几个切换数据的组件比如: TabNavigator等都有属性

creationPolicy 你知道这种策略的使用方式是什么嘛?以及优,缺点呢?

11.我想在application里获取当前运行的URL,我要怎么获取.

12.请说下事件里的currentTarget 和 target的区别?

13.请列举下你常用的几种effects,并说明使用原因.

14.HBox,VBox和canvas有什么区别呢?试说出其中几点

15.请问我想在list里选中多行信息,我要怎么做呢?

16.Alert里面有几个属性,我想设置图片怎么办呢?

17.请问你是否设置过样式呢,我想动态设置样式怎么办呢?如果我想在as代码

里设置样式我又要怎么办呢?

18.你能说一下UIComponent的生命周期嘛?以及相关的使用场合呢?

19.请问你是否发现过 flex3里的bug呢,请列举一些?

20.列举出flex里面的几个绑定数据对象的方式

21.请问我自己定义了一个组件,我想在组件里的属性里设置几个默认值,我要

怎么设置呢?

22.callLater()方法怎么使用,为什么要使用这个方法呢?

23.请问你是否使用过module这种方法去做项目呢?他的优,缺点是什么呢?使用

组件的方式加载的话,他的优,缺点是什么呢?

24.目前网页里都有导航,请问在Flex要做导航要注意一些什么呢?以及怎么样

做呢?

25.我想在一个错误的图片链接里,定义一下默认的图片怎么做呢?

26.请试写一个自定义的验证组件

27.请说明下tigger tiggerEvent 在验证组件里是什么意思,具体怎么使用呢?

28.ExternalInterface,LocalConnection 2者有什么区别?

29.你是否使用过flex的测试工具呢?请说明下具体是哪种,以及使用方式,你为

什么使用这种工具?

30.我能把CSS编译成swf嘛?

31.请用as3列举下你用过的模式

32.Embed绑定图片有什么缺点?

33.TitleWindow的组件是可以拖动的,我不想让他拖动我要怎么办呢?

34.你是否使用过profile,你觉得这个工具怎么样,优,51); font-family:Arial; font-size:14px; line-height:26px"> 35.你是否做过flex 前端的性能优化,你觉得怎么做是比较完美的?

36.你是否了解E4X,请说明一下优,缺点?

37.请列举一下你知道的影响性能的几个因素?

38.请说明一下ShareObject的使用方法?以及优,51); font-family:Arial; font-size:14px; line-height:26px"> 39.请列举一下,你认为不错的网站或者blog.

40.我现在给你100万做一个flex项目,你认为成功的要素在哪呢?

第二部分:

Junior:

1 Flex/Flash与html的优劣?

2 flex与flash的区别

3 as与mxml,js,Java的区别

4?? 什么时候用bindable,它的实现原理?(Listenerand handler)

5 flex4中出现哪些新的功能?你最喜欢它哪些功能?

  Spark组件框架,States,effects and layout,FXG

6 在flex中如何快速进行调试?(trace 和debugconfiguration)

7 加载图片有几种方式?(Embed和动态加载)各自的使用场合?

8 使用过Flex中的哪些组件,自己写给组件吗?遇到过些什么问题?

Senior:

1 用过哪些Flex框架?(Parsley,Cairngorm,pureMVC)简单介绍一下你用过的框架

2flex的渲染机制,什么时候flex进行刷新,下面这些函数在组件中起什么样作用? 

1).??createChildren()

2).?? invalidateProperties()–> commitProperties()

3).?? invalidateSize()–> measure()

4).?? invalideDisplayList()–> updateDisplayList()

3 flex组件(AdvancedDataGrid/Chart)

? 在AdvancedDataGrid中,怎么处理层级数据?

? 如果自己实现DataGrid/Chart,提供大概的思路?

? 组件中哪一些方法经常被重载?如何与父组件交互?

?createChildren()commitProperties() measure()updateDisplayList()

4 labelFunction 在众多组件中参数不一致,为什么??

? itemRenderer 如何实现行渲染,列渲染,行列背景色渲染,

? styleFunction 可以实现行列背景色渲染吗?

5 介绍一下flex中使用过的设计模式,比如单例模式,MVC模式(as与mxml分离)

6如何提高flex的加载速度?(延迟加载容器和Module)

第三部分:

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,请问我想代码分离怎么办呢?
答:严格按照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.text}{myVar1+myVar2}{myBtn}

(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.length>6)//自定义验证,字符长度不超过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中查找和提取数据。



37.请列举一下你知道的影响性能的几个因素?

答:同上面第35题。



38.请说明一下ShareObject的使用方法?以及优,缺点?

答:getLocal()用来指定存储在客户端的路径。

data属性用来指定要存储的数据内容。

flush方法负责把数据内容写入。

clear方法用于清除储存的信息。



39.请列举一下,你认为不错的网站或者blog.

答:insideRIA,AS天地会,AIRIA,javeeye,N神,杜增强,牛牛猪研究所,黑羽

40.我现在给你100万做一个flex项目,你认为成功的要素在哪呢?

答:(1)数据和需求等传统软件项目的成功要素

(2)模块化开发,MVC框架

(3)swf文件减肥,运行效率,内存泄露问题,前台优化

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读