先来看下一段代码的执行效果。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Label text="点击保存按钮,鼠标不要移动,按下空格键,观察下面点击事件执行次数"/>
<mx:Button label="保存" click="myClick(event)" />
<mx:TextInput id="txt" />
<mx:Script>
<![CDATA[
private var num:int=0;//事件执行次数
private function myClick(event:MouseEvent):void{
num=num+1;
txt.text=""+num;
}
]]>
</mx:Script>
</mx:Application>
鼠标点击一下“保存”按钮,执行一次鼠标点击事件,保持鼠标的位置不动,按下空格键,再次执行鼠标点击事件。OK,看到Flex诡异的现象了吧。
先来说下原因,鼠标点击按钮后焦点会落在此按钮上,此时按下空格键,空格键的默认事件相应有焦点的事件。因此就执行了上一次的按钮的点击事件了。Flex你有多少的默认呀?要不是测试人员发现,恐怕我一直都不会知道。
下面这看看解决方法:
1 对症下药。重置光标。
setFocus () 方法
public function setFocus():void
设置此组件的焦点。组件可能依次将焦点传递给子组件。
注意:使用此方法设置焦点时,只有 TextInput 和 TextArea 控件加亮显示。当用户按 Tab 键切换控件时,所有控件都加亮显示。
2 杜绝隐患。拒绝接收焦点。
mouseFocusEnabled 属性
mouseFocusEnabled:Boolean []
单击时是否可接收焦点。如果值为 false,则焦点将转换到已将 mouseFocusEnable 设置为 true 的第一个父项。例如,您可以将某个 Button 控件的此属性设置为 false,这样可使用 Tab 键将焦点移动到该控件,但在单击该控件时不会使其获得焦点。
默认值为 true.
上面两个方法都是UIComponent类的方法,Flex的可视化组件都是继承自该类,因此都可以使用上面的方法。
修改后的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Label text="点击保存按钮,鼠标不要移动,按下空格键,观察下面点击事件执行次数"/>
<mx:Button label="保存" click="myClick(event)" mouseFocusEnabled="false"/>
<mx:TextInput id="txt" />
<mx:Script>
<![CDATA[
private var num:int=0;//事件执行次数
private function myClick(event:MouseEvent):void{
num=num+1;
txt.text=""+num;
this.setFocus();
}
]]>
</mx:Script>
</mx:Application>
分享到:
相关推荐
第4题:多次按空格键执行以下代码,绝对不会出现的结果是?( ) A、铅笔 B、橡皮擦 C、钢笔 D、刨笔刀 *本题考察学生对基本编程概念的理解,特别是对图形和绘图的理解。 第5题:自定义一个判断质数的积木,其中...
标题中的“autoclicker鼠标自动点击开源程序(C#)”是指一个使用C#编程语言编写的自动化点击工具,它的主要功能是模拟鼠标点击,为用户节省手动操作的时间。这个程序是开源的,意味着其源代码对公众开放,允许用户...
2. 单击操作:轻按鼠标左键,通常用于选择或激活项目。 3. 双击:快速连续两次点击鼠标左键,常用于打开文件或文件夹。 4. 右击:点击鼠标右键,通常会弹出一个关联上下文菜单,提供更多的操作选项。 5. 拖动:按住...
**Shift+空格键**:可以切换输入法的全角/半角模式,如在智能ABC或极点五笔中使用。 **简单的禁用自动播放**:插上U盘时按住SHIFT键可防止自动播放功能启动,防止病毒或未经授权的软件自动安装。 **选文件时单击一...
8. **用户输入**:玩家可能会通过键盘或鼠标控制角色,这就需要用到Scratch的“当按下空格键”或“当鼠标按钮被点击”等监听器。 9. **控制流**:游戏中的控制流可能包括分支(条件语句)和序列(按顺序执行指令)...
1. **F1键**:当用户在使用某个程序或Windows操作系统时遇到问题,按下F1键会弹出相关帮助内容,帮助用户解决疑问。 2. **F2键**:如果选中了一个文件,按F2键可以直接进入重命名模式,方便快捷地修改文件名。 3. ...
A选项的代码会在按下空格键时立即切换造型,实现连续按空格键能切换不同造型的效果。 7. **事件处理与声音播放**:当角色与其他角色或背景碰撞时,可以触发特定事件。A选项的代码会在小猫碰到小球时播放声音,而...
- 按Shift 5次:启用或关闭粘滞键,允许连续按下按键而无需一直按住。 - 持续按住Num Lock 5秒:启用或关闭切换键,用于切换数字键区和方向键功能。 2. **常规键盘快捷方式**: - F1:显示帮助信息,解决操作...
你需要学习如何添加事件监听器,处理键盘输入和鼠标点击事件。例如,当用户点击曹操棋子时,程序会检测到这一事件并执行相应的移动逻辑。 4. **二维数组与棋盘布局**:棋盘可以用二维数组来表示,每个元素代表一个...
40. 缩小局部:`Alt+空格键+鼠标单击`可以缩小并查看图像的特定区域。 41. 翻屏查看:使用`PageUp`和`PageDown`键可以上下滚动查看图像。 42. 显示或隐藏标尺:`Ctrl+R`可以切换标尺的显示状态。 43. 显示或...
1. 按下键盘上的 Windows+R 组合键,在出现的运行窗口中输入 regedit,点击确认打开注册表编辑器。 2. 在注册表编辑器中,依次选 择进入 HKEY_CLASSES_ROOTDirectoryBackgroudshell,右键点击 shell 文件夹,选择...
例如,当用户按下空格键时,你可能需要在`WndProc`中处理`WM_KEYDOWN`消息,以便在游戏中触发特定的行动。 创建窗口后,你需要使用`CreateWindowEx`函数将其显示在屏幕上。这个函数会返回一个`HWND`(窗口句柄),...
比如,按下空格键可以让轮子加速,释放则减速。 在“旋转的轮子1”项目中,可能还涉及到角色的碰撞检测。Scratch的“侦测”类别提供了“碰到”、“重叠”等条件判断,可以检测角色是否与其他角色或边框发生碰撞,...
Vue 支持多种鼠标事件修饰符来处理不同的鼠标点击行为: - **left**: 只当点击鼠标左键时触发。 - **right**: 只当点击鼠标右键时触发。 - **middle**: 只当点击鼠标中间键时触发。 #### 键盘事件修饰符 Vue 也...
侦测积木则用于检查条件是否满足,如“按下空格键”或“是否碰到边界”。 6. **用户交互**:通过监听用户的输入,如键盘按键或鼠标点击,可以让程序响应用户的操作。例如,孩子可以通过点击按钮或按下特定键来触发...
1. **事件监听**:游戏的启动、暂停和重新开始等操作可以通过设置不同事件触发,例如当用户点击某个按钮时,Scratch的“当绿旗被点击”或“当按下空格键”积木块可以实现这一功能。 2. **角色与舞台**:在Scratch中...
接着,在脚本区设置`当用户点击绿旗`事件块,添加`按下空格键`条件判断,使小球面向鼠标指针并向前移动一定步数。利用`如果...则`逻辑结构,判断小球是否碰到边缘,碰到则隐藏小球。 2. **猫画正方形:** - **知识...
- 按 Shift 五次: 开启或关闭粘滞键,确保每次只执行一个按键操作。 - 持续按 Num Lock 五秒钟:开启或关闭切换键,用于切换特殊键的行为。 - Windows 徽标键 + U: 打开轻松访问中心,提供各种辅助功能设置。 ...