Flex(AS 3.0)实现快捷键功能--监听键盘事件

语义化footer设计:HTML5语义、Flex布局与无障碍实践 footer不仅是页面底部的视觉区域,更是HTML文档结构中的关键语义元素,承载版权信息、导航链接和联系主体等元数据。其核心原理在于通过`<footer>`、`<address>`、`<nav>`等语义标签向浏览器、搜索引擎和辅助技术传递明确的结构意图,从而触发可访问性解析、SEO结构化数据提取及渲染优化。技术价值体现在提升WCAG合规性、增强搜索摘要丰富度、降低移动端重排耗时,并规避`float`或`position: absolute`等过时方案引发的布局崩溃。典型应用场景覆盖企业官网、SaaS后台、政 阅读详情

    实现快捷键的功能其实很简单,就是监听键盘事件,再检测是按下或弹起了哪个键,然后做对应的操作就可以了。如果要实现一般的组合键(指一般的数字和字母的组合或上下左右键的组合)也不难,但是如果想要在网页中打开的swf文件中实现特殊点的组合键(比如:Ctrl+Shift+Alt+其他基本键)就可能有问题,因为浏览器本身可能已经占用了某些这种快捷键(比如在IE 7 中 Ctrl+数字键 表示切换已打开的选项卡)。在这里我只实现简单的情况,其他的应用可以自己用到时再做改进。

 

    建立一个Flex project 工程,名称叫“ShortCutTest”,步骤就不说了,直接上代码吧:

文件 ShortCutTest.mxml


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="appComplete();" 
    fontSize="12">

    <mx:Script>
       <![CDATA[
           import mx.controls.Alert;
        import flash.events.KeyboardEvent;
       
        private function appComplete():void
        {
            this.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHander);
            this.stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHander);
        }
    
        private function keyDownHander(event:KeyboardEvent):void
        {
            if(maskInput())
            {
                return ;
            }
        }
        private function keyUpHander(event:KeyboardEvent):void
        {
            if(maskInput())
            {
                return ;
            }
            //检测按键事件
            keyDownCheck(event);
        }
        
           /**
         * 屏蔽所有的输入焦点
         * 防止在输入框中输入内容时会触发相应的快捷键操作
         */
        private function maskInput():Boolean
        {
            var focusObj:Object = Object(focusManager.getFocus());
            var focusName:String = focusObj.className;
            if(focusName=="TextArea"||focusName=="TextInput")
            {
                if(focusObj.editable==true)
                {
                    return true;
                }
            }
            return false;
    
        }
        
        /**
         * 检测按键事件
         */
        private function keyDownCheck(event:KeyboardEvent):void
        {
            switch(event.keyCode)
            {
                case 49:    //左边的数字1
                case 97:    //小键盘的数字1
                    useShortCutKey(1);
                    break;
                case 50:    //左边的数字2
                case 98:    //小键盘的数字2
                    useShortCutKey(2);
                    break;
                default:
                    break;
            }
            
            
        }
        
        private function useShortCutKey(index:int):void
        {
//            Alert.show("你现在使用的是快捷键:"+index+",你可以再此添加你自己的函数了!");
            sendText(index);
        }
        private function sendText(index:int):void
        {
            if(index==1)
            {
                txt_show.text = "index:"+index.toString()+txt_TextInput.text+"---"+txt_input1.text;
            }
            else if(index==2)
            {
                txt_show.text = "index:"+index.toString()+txt_TextInput.text+"---"+txt_input2.text;
            }
        }
       ]]>
    </mx:Script>
    <mx:Label x="142" y="100" text="显示区域"/>
    <mx:TextArea id="txt_show" editable="false" x="142" y="123" width="437" height="86"/>
    <mx:Label x="142" y="220" text="TextArea 输入框"/>
    <mx:TextArea id="txt_TextInput" x="142" y="244" width="437" height="76"/>
    <mx:Label x="142" y="350" text="TextInput 输入框 1"/>
    <mx:TextInput id="txt_input1" x="280" y="348"  width="244"/>
    <mx:Label x="142" y="390" text="TextInput 输入框 2"/>
    <mx:TextInput id="txt_input2" x="280" y="388"  width="244"/>
    <mx:Button id="btn_send1" click="sendText(1)" x="545" y="348" label="发送1"/>
    <mx:Button id="btn_send2" click="sendText(2)" x="545" y="388" label="发送2"/>
    
</mx:Application>


 

效果截图:

 

 

用React开发终端界面:原理、实现与工程实践 声明式UI是现代前端开发的核心范式,它通过组件化和状态驱动视图的理念,将开发者从繁琐的DOM操作中解放出来。其底层原理基于虚拟DOM的差异计算和高效的协调算法,确保界面更新既直观又高性能。这一技术价值在于大幅提升了复杂交互界面的开发效率和可维护性,尤其在需要频繁状态同步的场景中优势明显。在应用场景上,声明式UI不仅适用于Web浏览器,其抽象渲染层的设计思想也能桥接到其他图形环境,比如命令行终端。本文将热词“React”和“终端”结合,探讨如何将React的声明式开发体验引入终端界面开发,通过实现一个微型渲染 阅读详情

相关推荐

告别原生弹窗:构建现代化Web确认对话框的完整指南

在Web开发中,对话框是用户交互的核心组件之一,用于确认关键操作或展示重要信息。其原理是通过模态窗口阻断主界面交互,引导用户聚焦于当前任务,从而提升操作的安全性与明确性。从技术价值看,一个设计良好的对话框系统能显著增强用户体验、保障数据安全并提升代码可维护性。在应用场景上,它广泛用于数据删除、表单提交、状态变更等需要用户二次确认的环节。然而,传统的 `window.confirm()` 和 `alert弹框` 因其阻塞性、不可定制性和糟糕的可访问性,已成为现代Web开发的“反模式”。本文深入探讨了如何基于语

weixin_30291791的博客 411

AS3.0 键盘事件

1,问题: 在开发应用中,需要对键盘事件做监听,但是要根据 focus 焦点 不同而 是否需要做反应。例如当焦点在 场景地图 上,这时候的快捷键 起作用 ,而打开一个应用程序后例如聊天框,聊天这时候 虽然也是键盘 事件 但我们不希望触发执行快捷键判断 之类的 。 键盘事件的监听 是要对stage做监听,那么当上述聊天情况发生时,聊天应用存在于stage中,不可避免的触发判断。 如源代码...

dishell的专栏 1031

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库01

此方案可满足千万级并发需求,同时支持时序数据、知识图谱和文档数据库的高效处理,通过云原生架构实现极致弹性。​:每月约$15-20万(100节点K8s集群+数据库集群+CDN流量)1. 宠物上架/下架流程。

weixin_49199313的博客 1477

as3.0 键盘事件小实例

下面的代码实现键盘操作图片左右走动importflash.events.KeyboardEvent; importflash.display.Loader; importflash.net.URLRequest; stage.addEventListener(KeyboardEvent.KEY_DOWN,keyUpFunction); varloader:Load...

weixin_34032779的博客 669

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02

每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。

weixin_49199313的博客 676

AS3.0键盘事件示例

自己做的一个小游戏,按空格键开始,按↓计数,统计10秒内↓被按下的次数. 注意: 本源代码的flash版本为cs5.5 低级版本是没办法打开的!

AS3.0 中键盘事件、数组使用及随机数生成

  回答http://topic.csdn.net/u/20091202/22/50f8b8f6-638a-47cb-990e-a2f36f15bbfc.html?62099问题 交流一下AS中键盘事件、数组使用及随机数生成功能比较简单,详细代码如下请看其中的注释: <!--[CDATA[ private var srcArray:Array = new Array(

Richard_jun's Blog 4339

HAL库硬件SPI驱动ST7735 TFT屏幕:从零实现高效刷屏与图形绘制

本文详细介绍了如何使用STM32的HAL库硬件SPI驱动ST7735 TFT屏幕,从硬件连接到SPI配置优化,再到图形绘制与文本显示的实现。重点分享了DMA传输、局部刷新等高级优化技巧,显著提升刷屏效率,帮助开发者快速掌握屏幕驱动技术并应用于实际项目。

pink的博客 741

AS 3.0键盘鼠标事件

/* Key Pressed 事件 按任一键盘键时,执行以下定义的函数 fl_KeyboardDownHandler。 说明: 1. 在以下"// 开始您的自定义代码"行后的新行上添加您的自定义代码。 该代码将在按任一键时将执行。 */ stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandl

shaoxiaoning的专栏 2104

【Unity+HoloLens2】从0开始在HoloLens2部署MR工程

HoloLens2部署的权威教程在微软的官方文档中,但有些问题其实官方文档并没有列出,所以在实际开发过程中如果遇到bug,就需要自身或者前人的经验去解决。比如:对于Hololens2来说,在VS中需选择ARM64而不是x86。部署需要有良好的网速;工程打包出来的文件路径和工程路径有关联,如果这两个路径不匹配,部署就会失败。部署后打不开可能是因为Unity中未添加需要部署的场景,在Build Settings中点击Add open Scenes。...

fmxs 4571

计算机网络实验(华为eNSP模拟器)——第十章 Eth-Trunk(链路聚合)

目录一、Eth-Trunk的定义二、Eth-Trunk的工作模式(一)LACP模式1、定义2、命令(二)手工负载分担模式1、定义2、命令三、结语 一、Eth-Trunk的定义 Eth-Trunk是指设备的链路聚合,即将该设备的多个接口捆绑成一个接口,从而达到了增加带宽和提高可靠性的目的。我们要注意它是将多条物理链路,在逻辑上合并成一条,而不是串在一起。例我们将LSW1交换机S5700的三个端口(即GE0/0/1 、GE0/0/2、GE0/0/3)定义为一个Eth-Trunk接口与LSW2交换机相连,如下:

小宇y的博客 8417

as3.0编程:键盘的操作

键盘的点击与弹起: Source:         stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp); function xKeyDown(event:KeyboardEvent):void{         kb...

wangangie20 408

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1295

flex 设置全局快捷键

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" backgroundColor="#FF...

chengyu0485的博客 128

高通Camx功能feature分析之十:高通NCS服务之注册和启动

本文介绍了高通NCS(非相机传感器)服务的注册与启动流程。NCS通过QMI接口访问陀螺仪等传感器,为相机EIS/AEC等功能提供辅助数据。文章详细解析了服务注册时的QueryCapabilites能力查询、RegisterService注册流程,以及通过StartNCSService启动服务线程的过程。重点包括:1)AF/EIS等节点通过NCSService创建传感器对象;2)注册时需校验传感器类型和接口;3)首次注册成功后会启动NCS服务线程;4)采样率变化时需重新配置会话。通过线程池管理实现传感器数据的

1262

音视频开发基础(1):模拟视频技术简介

模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的折射光线.透过玻璃体到达视网展.视网膜上分布着光感受器,光感受器在光线的剌激下...

琅嬛福地 1493

Flex自定义组件 之 使用AS3定义

看了看手册英文的,自己修改了下更适合中国"国情" 组件定义MyComp2.as package mycomp { import flash.events.KeyboardEvent; import mx.controls.TextArea; public class MyComp2 extends TextArea { p...

weixin_34195364的博客 124

【时时三省】tessy 集成测试:小白入门指导手册

有图有文字详细介绍 tessy 集成测试 操作方法。

时时三省的博客 2517

前端第一节(html&css&javascript)

这是内容1这是内容2这是内容3这是一个有序列表这是有序列表1这是有序列表2这是有序列表3这是有序列表4自定义列表内容1

2301_79941274的博客 1418

条件DDPM:Diffusion model的第三个巅峰之作

前言:DDPM从2020年诞生,短短一年的时间,模型上有两个巨大的改进,其中一个就是condition的引入,最近大部分DDPM相关的论文都会讨论这一点,有些文章称之为latent variable。和当年GAN的发展类似,CGAN和DCGAN的出现极大程度上促进了GAN的发扬光大,意义重大。本文基于前面几篇文章继续聊一聊: 从VAE到Diffusion Model_沉迷单车的追风少年-优快云博客 为什么diffusion model扩散模型可以称为score-based models?_沉迷单车的.

沉迷单车的追风少年 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Vue.js网页终端组件vue-web-terminal:原理、集成与实战应用

在Web开发中,实现命令行交互是提升开发者工具和运维平台体验的关键需求。其核心原理在于通过前端模拟终端行为,包括捕获键盘事件、解析ANSI转义序列以及实时渲染输出。这项技术能显著增强Web应用的专业性和交互效率,尤其适用于在线代码编辑器、服务器管理面板和CI/CD工具等场景。vue-web-terminal作为一个专为Vue.js设计的终端模拟器组件,封装了复杂的视图层逻辑,支持Vue 2.x和3.x,允许开发者轻松集成可交互的终端界面,并通过WebSocket等技术连接后端服务,实现真实的命令执行。该组件

weixin_34161083的博客 784

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深入解析Go To Dialog:从模糊匹配到LSP集成的工程实践

在软件开发中,模糊匹配(Fuzzy Matching)是一种处理用户模糊输入、提升搜索体验的核心技术。其原理在于通过前缀匹配、子序列匹配等算法,理解用户的模糊意图,快速定位目标。这项技术的价值在于能显著提升大型项目中的导航效率,是构建高效开发工具的关键。典型的应用场景包括代码编辑器中的符号跳转、文件管理器中的快速定位等。本文以Go To Dialog为例,深入探讨了如何结合Trie树、倒排索引等数据结构实现高性能的模糊匹配,并详细介绍了如何通过集成语言服务器协议(LSP)来构建支持代码符号跳转的智能搜索组件

weixin_34009794的博客 384

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【前端】AntV X6学习笔记

/ 注册自定义模板节点 'custom-image'width: 62, // 节点宽度height: 62, // 节点高度markup: [selector: 'body', // 节点外部矩形},},},],attrs: {body: {stroke: 'green', // 外部矩形边框颜色fill: 'pink', // 外部矩形填充颜色},image: {refWidth: '100%', // 图片宽度和节点宽度一致。

lcukyNwa的博客 4861

jQuery核心原理与生产级轮播图实战

jQuery 是一种基于选择器的 DOM 操作抽象层,其本质是封装浏览器兼容性差异、提供链式调用与批量操作能力的轻量级 JavaScript 库。它通过 jQuery 对象统一管理匹配元素集合,将‘查找’与‘操作’融合为声明式流程,显著降低原生 DOM 编程的心智负担。在现代前端生态中,jQuery 仍广泛支撑政府服务、金融后台等存量系统,其事件委托、属性/状态分离(.prop()/.attr())、状态机设计思想持续影响 React/Vue 等框架。本文以构建可访问、可维护、带完整语义化标记的轮播图组件为

577

Grok Build模式实战:用AI在几分钟内生成可运行小游戏代码

AI代码生成技术正逐步改变软件开发流程,其核心原理是基于大型语言模型对自然语言指令的理解与代码模式匹配。这项技术的工程价值在于显著降低项目启动门槛,将开发者从繁琐的脚手架搭建中解放出来,快速实现创意验证。在游戏开发领域,这一能力尤为突出,能够根据描述自动生成包含项目结构、核心循环和基础交互的完整可运行代码。Grok Build作为该技术的典型应用,通过自然语言指令即可生成如2048、Flappy Bird等经典小游戏的完整实现,为独立开发者和技术爱好者提供了高效的快速原型工具。

weixin_30323631的博客 435

FLASH程序优化

第一章 AS3的一些优化计算方法 用乘法来代替除法(当除数可转化为有限数的时候)。比如var n:Number = value * 0.5;要比var n:Number = value / 2;快。但差别并不是很大。只有在需要大量计算情况下,比如3D引擎中差别才比较明显。 用位运算代替除2或乘2。比如10>>1要比10*2快,而10<<1要比10...

weixin_30257433的博客 259
上一篇: 无语了,Flex 中控件没有设置backgroundColor 就不能检测到拖拽进入事件
下一篇: LocalConnection在检测多个网页游戏客户端上的应用
txiejun
博客等级 码龄19年 55粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值