Flex面试题(三)

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

答:对自已的类或者变量添加绑定功能:

(1)类前使用[Bindable]表示所有属性都支持绑定,此类必须实现IEventDispatcher接口。

(2)可以给变量声明前或变量getter setter前使用[Bindable]。如果getter和setter方法同名,那么给其中一个[Bindable],相当于给两个都用了[Bindable]。

使用拥有绑定功能的属性:

(1)、MXML的{}方式,如:{myInput.text}{myVar1+myVar2}{myBtn}

(2)、MXML的<mx:Binding>方式。和{}相同,可以多绑一,可以双向绑定。如<mx:Binding source="myInput.text" destination="myBtn.label"/>

(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文件减肥,运行效率,内存泄露问题,前台优化

(4)开源组件的使用

你可能感兴趣的:(mvc,Flex,Flex,面试题,Bindable)