在Flex面试过程中,面试者可能会被问及如何定制新创建的.mxml页面背景颜色、调试程序的方法、事件处理机制以及特定类型的检查等问题。首先,关于修改FlexBuilder 3中新建.mxml页面的默认背景色,面试者应该指出,需要修改SDK中的`frameworks\projects\framework\default.css`文件,找到`Application`类并将其`backgroundColor`属性设为所需的颜色,例如`#0000FF`,以改变每次新建页面的背景色。
调试Flex程序的方式主要有三种:1)使用`trace()`函数进行日志输出,这对于查看变量值和执行路径非常有用;2)设置断点,可以在代码特定行暂停执行,便于逐行检查;3)在非调试模式下,可以利用`navigateToURL`方法调用JavaScript的`alert()`函数显示提示,如通过`javascript:alert(traceMsg)`实现临时通知。
讨论`enterFrame`和`timerEvent`这两个事件时,面试者应解释它们的不同。`enterFrame`事件在每一帧动画周期触发,常用于定时更新和动画效果,而`timerEvent`则是基于定时器的,间隔时间由开发者设置。具体使用时,`enterFrame`通常用于帧动画,而`timerEvent`则适用于周期性任务,比如计时器操作。
关于AS3的事件机制,面试者可以阐述它是一种事件驱动的模型,应用程序会监听特定事件并在满足条件时执行相应的处理函数,遵循从内向外(即子组件向父组件)的“冒泡”或“捕获”顺序。`addEventListener`方法接受四个参数:事件名称、响应函数、是否允许事件冒泡(默认为true)以及事件优先级。
在类型判断方面,面试者提到的`isNaN(parseInt(strPara))`用于检查字符串是否能转换为数字,而`strPara.isNumber()`可能指的是使用自定义的扩展方法来判断。判断字符或对象类型则通过`typeof(obj)`,返回的是一个表示数据类型的字符串,如"string"、"number"等。
对于`internal`控制符的理解,面试者应提及它主要用于同一包内的私有访问,即只能在定义它的类或包内使用,不能被外部直接引用。若需在其他地方使用内部定义,通常需要暴露给外部接口。
面试者还提到在某些情况下需要停止执行,这时设置断点是最常见的方式。至于`undefined`和`null`的区别,面试者应明确它们表示的状态:`undefined`表示未定义的变量或不存在的对象,而`null`表示被明确赋值为`null`的对象或变量,两者不等价。
创建常量的方法是使用`const`关键字,例如`const PI:Number = 3.1415926`。创建自定义事件涉及创建事件类并定义其名称,面试者提到了两种方式:一是使用`addEventListener`直接响应,二是通过元标签声明事件类型,例如`[Event(name="自定义事件名")]`。