搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【轻松拿捏】java中为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?_java中为什么要用克隆
2
数学建模国赛2022C解题分享_2022国赛c
3
[kudu] 使用语句+数据类型等_kudu数据库怎么添加字段描述
4
yum&apt安装指定版本的软件包_yum安装指定版本的软件包的方法
5
python数据库开发_python数据库编程
6
爬虫-获取某网站token的过程_网页token怎么获取
7
大饼简记._大饼交易是什么意思
8
YUM本地安装Docker_yum列举可以安装的docker包
9
SingleStore数据库(mysql分布式)-装载TPCH数据_tpch下载
10
Yapi安装部署到后台运行从0到1,女朋友看了都摇头(超详细版)_yapi 安装
当前位置:
article
> 正文
AS3.0教程:强大的事件机制(3)
作者:你好赵伟 | 2024-08-18 19:23:12
赞
踩
subscribe as3
2) addEventListener语法的不同,原因,和const型必要性和用法
本例如果是AS2.0,那么代码是这样写的:
outsideChild.addEventListener("click", inclassHandler)
本例是3.0,如果你trace一下其中的MouseEvent.CLICK,输出的也是字符串"click"。
看起来AddEventListener的方法和以前也没什么大的出入。和这世界上大多数相同的事物一下,表象的类似却掩盖着本质的巨大差异。
我们先从最小的差异讲起:
[1b]1.使用类静态属性,用const定义事件字符串名称变量[/1b]
AS3.0中用了一个新的关键字定义了事件名称字符串变量,代码是
public static const CLICK:String = "click"
const,是英文constant的缩写,意思使不变的,常量。那就意思很明白了,一旦这种类型的常量被定义就不可再更改。好处通俗的说就是规范好项目,规范你自己,也规范任何其他项目人员,动不了这个变量。
你可能还是会不屑一顾,这么小的一个改动,对我没什么用!
可我的AS2.0开发血泪经验是,我曾经花了一个下午来找bug,最后却发现是某个类的addEventlistener()里面的事件名称"click"手误打成了"cilck"。编译器可不管这个。
如果是3.0,你打成了MouseEvent.CILCK,那么编译时立刻会报错提醒你,多好啊。一个项目一个人做十几个类还好办,自己认真点还能顶的住;如果是一个项目几个人几十个类,那么没有const和static的帮忙,管理事件类型还真是有点麻烦。即使实现了也没有AS3.0这么简单直观。
回到代码,我们要记住,日后我们开发自己的Event类时,也要像这样,用public static const来定义我们自己的事件名称。
如何自定义自己的事件,我会在EventDispatch那一节讲述。
看看代码,我们还发现AS3.0中侦听器也发生变化了,只能用function来做侦听器,不再用Object。
[1b]2.addEventListener高级运用[/1b]
AS3.0中对侦听器的改进远远不止以上这些,看一看addEventListener的实现接口:
function addEventListener(eventName:String,
listener:Object,
useCapture:Boolean=false,
priority:Integer=0,
useWeakReference:Boolean=false):Boolean;
哇塞,有三个莫名奇妙的参数。可是当你知道这三个参数背后隐藏的巨大改进之后,相信你要大叫三个哇塞。
第一个神秘参数,目前暂不解释,埋个伏笔,留到EventDispatcher那一节,讲ActionScript3崭新的Event Flow事件流机制.
第二个参数:优先级。 有趣吧,在ActionScript 3.0中我们可以控制事件的优先级,从而达到控制function侦听器的执行顺序。如果你不填这个参数,那么事件默认为同一个级别0,事件的执行按先来后到的天经地义的顺序。
如果设为1,那么事件级别降一个档次,稍后执行。数字越高优先级越高。级别可以为负数。
[1b](注意: Flex Builder 2 Beta3中事件级别是越低越高)[/1b]
好好利用这个功能吧,在AS2.0中要想达到同样效果可不知道要多费多少力气!
第三个参数,讲的是是否设为弱引用。
兄弟们初学As2.0时一定经常忘了在删除Listener对象时,却忘了removeEventListener吧。这会导致很多莫名奇妙的情况发生。也是最常见的诡异bug种类之一。即使老鸟偶尔也会被阴一把。
最郁闷的是这种情况往往不被发现,在后台默默的消耗大量资源。
现在可以用弱引用可以在某种程度上解决这种bug。
设为true,就是告诉垃圾回收器,这个侦听器function的引用是弱引用。一旦这个侦听器在运行时只剩下了这一个弱引用,那么垃圾回收器可以不理它,直接把它回收咯屁了,节省资源。
[1b]从AS3.0引入这个弱引用这个概念就可以看出,AS3.0是如何的重视资源管理和有效率的运用。一个标准的重量级的程序语言必须具有这样的特征。
现在AS3.0有了![/1b]
下一节:
(3) Listener和As2.0有何不同,和this关键字的“改进了的记忆力”
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1763.html
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/998847
推荐阅读
article
从
0
入门
大
模型
,
看这5
本
就够
了
!...
随着人工智能技术的飞速发展
,
大
模型
已经成为推动这一领域进步的核心力量。它们通过处理海量数据
,
学习复杂的模式和关系
,
为各种...
赞
踩
article
什么
是
Bitlocker
?(收藏
一
)...
说说这个新的
Bitlocker
,这个组组件主要
是
在本地用软硬结合的方式来保护我们硬盘上的数据的。现在电脑的丢失已经
是
很常...
赞
踩
article
两种读取
环境变量
的方法:
os
.
getenv
()和
os
.
environ
[]区别...
和都用于访问
环境变量
,但它们在使用上有一些区别。
os
.
environ
字典KeyError
os
.
getenv
函数None。...
赞
踩
article
Mesa3D
图形库
与
NIR
(New
Intermediate
Representation)...
Mesa3D
图形库
与
NIR
(New
Intermediate
Representation)_mesa3dmesa3d ...
赞
踩
article
MYSQL
三、
mysql
基础知识
1(
数据
类型
)_
mysql
数据
类型
有没有
集合
类型
...
浮点数和定点数
类型
的特点是可以处理小数,你可以把整数看成小数的一个特例。因此,浮点数和定点数的使用场景,比整数大多了。M...
赞
踩
article
欢迎
免费下载最新
Solaris
白皮书
...
Solaris
X64解决方案<[url]http://sunevent.bizcom.com.cn/events/cn...
赞
踩
article
从事
软件测试
工作
五年
,
30
岁还感觉很
迷茫
,
目前环境不好
,
转行做
了
python
逆风翻盘_
软件测试
30
岁...
在一个
工作
岗位上持续
工作
了
5年
,
一般来说
,
可以算是一位资深的专业人士
了
。这个时候的
迷茫
感
,
来源为何?先从发展的角度来看:...
赞
踩
article
NLP
之
统计
语言
模型
SLM(三)...
统计
语言
模型
是用来计算一个句子产生概率的概率
模型
。句子S由w1 , w2 , … , Wn组成,我们将S这个序列出现的概...
赞
踩
article
神经网络
的反向
传播
_
神经网络
梯度
反向
传播
...
对于复杂的复合函数,我们将其拆分为一系列的加减乘除或指数,对数,三角函数等初等函数,通过链式法则完成复合函数的求导。在实...
赞
踩
article
29
岁
才
转行
软件测试
,
目前
31
了,我
的
一些经历跟感受(完)_
31
岁
两年
的
软件测试
工作经验...
接上文,回答几个粉丝们关注
的
问题
29
岁
才
转行
软件测试
,
目前
31
了,我
的
一些经历跟感受
29
岁
才
转行
软件测试
,
目前
31
了,我...
赞
踩
article
safetensors
介绍...
safetensors
是 Huggingface 推出的一种可靠、易移植的机器学习模型存储格式,用于安全地存储 Ten...
赞
踩
article
ROS
概述...
参考:古月居《
ROS
探索总结》《
ROS
·wiki: Introduction》入门介绍
ROS
(Robot Operati...
赞
踩
article
具身
智能
简史
、
现状与
未来
展望...
他在麻省理工学院的人工
智能
实验室进行的研究,特别是他开发的移动机器人“Genghis”,展示了这种设计哲学的实际应用,该...
赞
踩
article
硬件
工程师
学习
英语
必备_
硬件
工程师
常用
英语
单词
...
1 -英文电子专业词汇(
硬件
工程师
学习
英语
必备)1 backplane 背板2 Band gap voltage ref...
赞
踩
article
电脑开机
出现
bitlocker
_
BitLocker
+
VHD
替换
TrueCrypt
及其后继VeraCr...
标题:
BitLocker
+
VHD
替换
TrueCrypt
及其后继
VeraCrypt
创建:2020-11-1316:21更...
赞
踩
article
在
electron
打包
出现
无法
载入本地视频与
图片
问题_
electron
-
egg
打包
后
img
图片
无...
本文讲述了在Electron应用
打包
后遇到本地视频和
图片
无法
载入的问题,原因是跨域设置问题。解决办法是在启动文件(如ba...
赞
踩
article
毕业5年
,
从
信息管理
转行
软件测试
工程师
,
我
的
月薪终于突破
了
12k_信管
专业
能做
软件测试
吗...
本文分享
了
作者转行成为
软件测试
工程师
的
经历
,
强调
了
这个职业
的
市场需求大和入门门槛适中。通过学习路径、必备技能(如Linu...
赞
踩
article
FusionMamba
:动态特征增强与曼巴的多模态图像融合_
fusionmamba
:
dynamic
...
多模态图像融合旨在从不同的模态中整合信息,以创建具有全面信息和详细纹理的单张图像。然而,基于卷积神经网络融合模型在捕捉全...
赞
踩
article
基于
YOLOv5
与
LPRnet
的
车牌
识别_
基于
yolov5
和
lprnet
车牌
识别项目...
运行结果如上。_
基于
yolov5
和
lprnet
车牌
识别项目
基于
yolov5
和
lprnet
车牌
识别项目 ...
赞
踩
article
electron
和vue开发
的
音乐
播放
器
遇到
的
一些问题(
本地
音频
文件
的
播放
,
文件
信息
的
读取)_ele...
最近在学习
electron
,尝试开发了一个音乐
播放
器
。在
播放
器
本地
音乐
的
时候遇到了一些问题。在获取到
本地
的
音频
文件
路径之...
赞
踩
相关标签
操作系统
python
GPU
Mesa3D
mysql
数据库
开发语言
python入门
转行
职场和发展
人工智能
神经网络
机器学习
软件测试
深度学习
llm
safetensors
EAI
具身智能
机器人
电脑开机出现bitlocker
electron
前端
javascript