【转自闲云孤鹤】Flex:创建可被取消的缺省事件处理器

AI自瞄原理剖析(一)屏幕内容循环截取及代码实现 尽管Yolo框架在推理时其实是可以输入不同大小的图片的,但这些作者大多不会去处理图像尺寸的改变,所以目前大部分开源源码主要是以输入320或者640尺寸的图像为主。只要截图的效率足够快,能够满足一秒采集60张图片,也就是稳定的截图速度达到60帧以上,那么就可以实现内存级别的AI锁死自瞄效果。这里强调了截图速度对于最终实现特定自瞄效果的重要性,只有达到这样的速度标准,才能让整个自瞄相关的功能在内存层面有效地运作起来。在实现自瞄功能的情境下,只需要以游戏准星为中心向外的正方形区域图像就够了,没必要进行全屏截取。 阅读详情

缺省事件处理器是用于在组件内部对某些事件进行缺省动作相应的,这在很多组件里面都是很普遍的,这样组件可以触发某些事件,缺省对该触发的事件进行处理,比如可关闭的窗口中,我们点击顶部X关闭按钮,TitleWindow内部的缺省关闭事件处理器对该事件进行响应,执行关闭当前窗口的操作。这样存在一种情况,有时候我们需要在关闭窗口前先提示用户将要关闭窗口,是否继续等类似的提示,如果用户确认需要关闭,那么就关闭,否则不关闭,对于后面的一种情况,我们需要避免缺省的事件处理器的执行,这样的情况,同样发生在我们自行开发的一些Flex组件中,所以今天我们来说说如何创建一个可被取消的缺省事件处理器。

首先我们要在组件外部自己定义对事件的处理器,而且这个处理器要先于缺省的事件处理器执行,也就是说如果我们在组件内部的事件处理器的优先级要是低于外部的处理器的。对于我们组件外部的事件处理器来说,要有某些方法可以停止缺省的事件处理器的处理,具体的实现有四个步骤:

  1. 在组件内部,触发事件的时候,创建事件要设置该事件为可被取消,也就是要设置事件的cancelable标志为true,对应的是事件构造Event()的第三个参数。
  2. 在组件内部,添加缺省事件监听的处理器时候要使用EventPriority.DEFAULT_HANDLER优先级,由于表示该事件缺省处理器的优先级低于一般的处理器优先级。
  3. 在组件外部,在我们的自定义的事件处理器里面,要使用event.preventDefault()来设置组件内部的缺省事件处理不处理。
  4. 在组件内部,缺省的事件处理器中使用event.isDefaultPrevented()来检测用户时候屏蔽缺省事件处理。

下面是演示代码,在组件的内部,我们定义了一个“alarm”事件,和一个该缺省的事件处理用于声告触发“alarm”事件:


  
package
{
 
 import flash.events.Event;
 
 import mx.controls.Alert;
 import mx.core.EventPriority;
 import mx.core.UIComponent;    
 
 [Event( name
="alarm", type="flash.events.Event" )]
 
 
public class MyComponent extends UIComponent
 
{
  
      
public function MyComponent()
      
{
           
// 为"alarm"事件添加缺省事件监听.  这里的关键点为
           
// 该时间的优先级为:DEFAULT_HANDLER.  这是一个低优先级以使
           
// 得普通的事件监听可以先执行,使得用户可以通过调用
           
// event.preventDefault()来取消事件的缺省处理行为。
           addEventListener( "alarm", handleAlarm, false, EventPriority.DEFAULT_HANDLER, true );
       }

      
      
/***
       * 一个简单方法,触发一个可被取消带缺省事件处理的事件。
       
*/

      
public function triggerAlarm():void
      
{
           
// 创建一个新的alarm事件。这里的关键点为构造函数的第三个参数,
           
// 该参数表示该事件可以通过event.preventDefault()来被取消。
           dispatchEvent( new Event( "alarm"falsetrue ) ); 
       }

      
      
/**
       * "alarm"事件的缺省处理
       
*/

      
protected function handleAlarm( event:Event ):void
      
{
           
// 检测该事件是否被其他的事件监听屏蔽了缺省处理行为
           if ( !event.isDefaultPrevented() )
           
{
                
// 事件没有被取消,所有继续缺省的事件处理
                Alert.show( "MyComponent内部Alarm事件缺省处理,handleAlarm" );
            }

       }

      
 }
 // end class
}
  //  end package

下面是一个简单的测试代码,我们定义了一个alarm事件的监听,在其内部调用event.preventDefault()来取消该事件的缺省行为执行:


    
<? xml version = " 1.0 "  encoding = " utf-8 " ?>
< mx:Application xmlns:mx = " http://www.adobe.com/2006/mxml "  layout = " vertical "  xmlns:local = " * " >
    
    
< mx:Script >
        
<! [CDATA[
            
            
protected  function handleAlarm(  event :Event ): void
            
{
                 
// 为了演示意图,我们在界面上有一个标记,
                 
// 用来表示我们是否要屏蔽缺省事件处理的执行
                 if ( preventToggle.selected )
                 
{
                      trace( 
"Default behavior is prevented" );
                      
event.preventDefault();
                  }

                 
else
                 
{
                      trace( 
"We didn't prevent the default behavior, so we'll see the alert from MyComponent." );
                  }

             }

            
        ]]
>
    
</ mx:Script >
    
    
< mx:Button label = " 触发事件 "  click = " myComp.triggerAlarm(); "   />
    
    
< mx:CheckBox id = " preventToggle "  label = " 禁止缺省行为? "  selected = " true "   />
    
    
< local:MyComponent id = " myComp "  alarm = " handleAlarm( event ); "   />
    
</ mx:Application >

查看实例

怎么样很简单吧,这是一个简单但是很有用的技巧,创建可被取消的缺省事件行为是Flex组件开发的一个重要部分,更详细的描述大家可以查看这里

 
使用Python爬虫抓取旅游景点评价数据并进行热度可视化 景点热度通常由景点的评分、评论数以及游客的热情度来决定。高热度的景点通常意味着更高的游客评分和更多的游客评论。热度不仅反映了景点的受欢迎程度,还可以揭示某些景点的潜力和存在的问题。评分:游客对景点的综合评分,通常是0到5分。评论数:景点的评论数量,反映了游客对景点的关注程度。热度变化:在一定时间内,景点的评价和评论数量变化,能够反映景点的热度波动。通过使用Python爬虫技术抓取旅游景点的评价和评论数据,我们能够深入分析景点的热度,并通过数据可视化工具将这些信息展示给用户。 阅读详情

相关推荐

杰理SDK入门教程(六):自定义按键事件

这篇教程介绍了在杰理AC695N芯片上实现自定义按键功能的完整流程,包含三个核心步骤:首先在key_event_deal.h文件中添加按键枚举定义;然后在adkey_table.c配置按键映射表,按模式和行为类型设置按键值;最后在app_common.c的消息处理函数中添加自定义按键逻辑。教程强调需注意不同模式按键表的列定义差异,并提供了具体代码示例,最后指导完成编译测试验证。全文结构清晰,配有关键代码截图,适合开发者快速上手自定义按键功能开发。

qq_42014563的博客 991

创建图形用户界面GUI和事件监听机制的简单实现(java)

创建图形化界面 1、创建Frame窗体 2、对窗体进行基本设置 比如:大小、位置、布局 3、定义组件 4、将组建通过窗体添加到窗体中 5、让窗体显示,通过setVisible()方法 事件监听机制组成: 事件源(组件) 事件(Event) 监听器(Listener) 事件处理(引发事件后处理方式) 说明: ...

weixin_30323631的博客 211

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1787

java常用的加密解密方法

加密是指对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息化为其原来数据的过程。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密。 一、双向加密  (一)、对称加密  采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这

tony的专栏 1万+

JAVA与js加密解密我常用的方法

常采用的是AES的加密解密方法,再稍微掺杂点随机数 JS端 //需要引入 aes.js /** * 非规则的aes加密,自己加了字符串 * @param s * @returns */ function aesEncode(s) { var key = CryptoJS.enc.Latin1.parse('abcdef0123456789'); var iv = CryptoJS.en...

PiaoMiaoXiaodao的博客 2565

java 常用方法的加密解密

java加密解密 package com.util; import java.math.BigInteger; import java.security.MessageDigest; import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; i

util_c的专栏 1560

java解密方法,java 常用方法的加密解密

java加密解密 package com.util; import java.math.BigInteger; import java.security.MessageDigest; import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax....

weixin_39647977的博客 214

java加密解密工具类(EncryptUtils)

是一个自定义的 Java 工具类,用于封装常见的加密和解密算法,如 MD5、SHA-1、SHA-256、AES、DES 等。这个工具类提供了简单易用的接口,使开发者能够方便地进行数据的加密、解密、签名和验证操作。旨在简化加密解密的过程,减少错误的发生,并提高代码的可读性和维护性。EncryptUtils是一个Java加密解密工具类,它提供了一些常用的加密解密算法,可以用于保护敏感数据的安全性。

Flying_Fish_roe的博客 5002

WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0 (整理)

package jct; import java.security.*;/*** 计算字符串和byte[]的数字摘要 * @Copyright:WDSsoft* @ad:WDSsoft “企业多级数字签名系统”- 最佳的企业电子文档多级数字签名方案*/public class Digest { /*** 计算字符串的SHA数字摘要,以byte[]形式返回**/public stat

Java之路 4222

java单向加密,双向加密解密方法介绍,收藏以后开发中必定有用

今天来给大家讲解一下,java如何进行加密解密的,这里面包含java的单向加密解密比如MD5等等,也包含java的双向加密解密方式,比如base64格式的等等,首先先给大家介绍一下大体的加密方法,然后再对具体的给出一些实例:1.md5/hash加密算法(单向加密)2.单匙密码体制:DES3.数字签名4.非对称密匙密码体制(公匙体系)5.base64式双向加密解密法:例如:  / * 编码原理:...

benben 1487

JAVA常用工具类汇总

一、字符串工具类 org.apache.commons.lang.StringUtils pom文件: <!-- https://mvnrepository.com/artifact/org.apache.commons/org.apache.commons.lang --> <dependency> <groupId>org.apache.common...

ourLang 3万+

Hutool中那些常用的工具类和实用方法 | 京东云技术团队

Hutool它是一个Java工具集类库,包含了很多静态方法的封装:流处理、时间日期处理、正则处理、加解密处理、文件处理、集合处理等,可以说是项目中几乎所有XxxxUtil的替代品,它可以使你更多的关注代码逻辑,优雅的写出高效代码,避免“复制粘贴,改改再战”。

JDDTechTalk的博客 2062

空调省电选购指南:从能效原理到上菱定频空调拆解

空调能效是衡量其节能性能的核心指标,其背后涉及压缩机、换热器等关键部件的技术原理。定频与变频压缩机的工作原理差异,直接决定了空调在不同使用场景下的能耗表现。从技术价值看,高效能空调通过优化热交换效率和运行逻辑,在长期使用中能显著降低电费支出。在家庭、办公等常见应用场景中,用户需结合自身使用习惯选择合适类型。本文以上菱KF-26GW/SHAR定频空调为例,通过分析其能效比、压缩机类型及耗电模型,探讨了如何在预算有限的情况下实现省电目标,并揭示了能效标识背后的技术细节与选购要点。

weixin_33947521的博客 396

Java常用工具类处理方法100例

Java常用工具类摘要 本文整理了100个Java常用工具类处理方法,涵盖8大类别: 字符串处理(1-20) - 提供拼接、反、判空、截取、替换、分割等字符串操作 加密解密(21-30) - 包含常见加密算法实现 文件操作(31-50) - 文件读写、复制、删除等功能 日期时间(51-60) - 日期格式化、计算等处理 集合操作(61-70) - 集合排序、过滤等工具方法 数字计算(71-80) - 数值换、计算等辅助方法 网络请求(81-90) - HTTP请求处理工具 其他工具(91-100) -

wudonglianga的专栏 324

java 加密解密 jar_java的加密解密

1. 使用md5和sha256必须导入commons-codec-1.9.jar包2. base64加密和解密是依赖于jdk自带的jar包3.md5和sha256是不可逆的,md5加密效率较快,sha256加密安全较高public class TestEncode {//异或实现加密解密public static String xor(String input){char[] chs = inp...

weixin_39809584的博客 873

Java相关加密解密算法

Base 64 消息摘要算法 非对称加密算法 对称加密算法

风云无忌的博客 4906

java实用_java常用实用类

1、String类概念java程序中默认导入java.lang包的,像java.lang.String等String类属于final类,用户不能扩展String类,String 类没有子类。String类常见的方法有如下:public int length(); public boolean equals(); public boolean startsWith(); pu...

weixin_29016833的博客 175

jmeter 加密解密_学会BeanShell,才敢说自己懂Jmeter

谢谢打开这篇文章的每个你关注我们 点击右上角 ··· 设为星标jmeter的BeanShell Sampler,可以直接引用java代码,有下面3种方式:1、直接输入java代码2、导入java文件3、导入class文件BeanShell脚本访问变量主要通过vars和props去访问,常用主要方法如下:vars.get(变量名):获取定义变量对应的值,含BeanShell脚本生成变量;vars.p...

weixin_39886024的博客 596

致远 A8+ 协同管理软件 V8.0SP2 用户操作手册(集团版).pdf

致远 A8+ 协同管理软件 V8.0SP2 用户操作手册(集团版)

WPF-Animation.rar_WPF_WPF 动画_WPF 视频_wpf Animation_wpf animation

一组介绍WPF动画编程的视频文件,其中包括一个完整的游戏程序。

上一篇: 【Flex CookBook】在FB3中发布工程的源代码
下一篇: Papervision3D基础I
zinking3
博客等级 码龄19年 262粉丝 215原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值