您现在的位置是: 首页 > 车型信息 车型信息

xevent命令_xevent

tamoadmin 2024-08-15 人已围观

简介1.jascript在使用过程中,浏览器之间存在什么样的差异2.JS中的event 对象包含哪些东西 event,实例 详解3.js冲突怎么解决4.JaScript onmousemove 5.谁有xlib编程开发的中文电子文档6.命运22021年6月18日BUNGIE周报分享7.如何捕获android系统鼠标轨迹值和键盘值试试这个在“运行”中执行services.msc,打开“服务”窗口,把其中

1.jascript在使用过程中,浏览器之间存在什么样的差异

2.JS中的event 对象包含哪些东西 event,实例 详解

3.js冲突怎么解决

4.JaScript onmousemove

5.谁有xlib编程开发的中文电子文档

6.命运22021年6月18日BUNGIE周报分享

7.如何捕获android系统鼠标轨迹值和键盘值

xevent命令_xevent

试试这个

在“运行”中执行services.msc,打开“服务”窗口,把其中的Windows Management Instrumentation服务停止;然后进入系统分区的WINDOWS\system32\wbem\Repository目录下,删除该目录下的所有文件(WIN2000系统的在WINNT\system32\wbem\Repository下);最后再进入“服务”窗口把indows Management Instrumentation服务启动。

jascript在使用过程中,浏览器之间存在什么样的差异

编辑本段概述

DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。

举个例子吧,骨灰级玩家(玩游戏比较长的)以前在DOS下玩游戏时,可不像我们现在,安装上就可以玩了,他们往往首先要先设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入于输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,而且对游戏开发者来说就更头痛了,因为为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的 API(应用编程接口)来写不同的驱动程序,这对于游戏制作公司来说,是很难完成的,所以说在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持DirectX才行。

编辑本段组成

DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。

显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速。它包括很多方面:我们播放mpg、DVD**、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。

声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。我们前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。

输入部分DirectInput可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。

网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TPC/IP,IPX,Modem,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。

编辑本段分类

DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发之初是为了弥补Windows 3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。 DirectX 是一组低级“应用程序编程接口 (API)”,可为 Windows 程序提供高性能的硬件加速多媒体支持。Windows 支持 DirectX 8.0,它能增强计算机的多媒体功能。使用 DirectX 可访问显卡与声卡的功能,从而使程序可提供逼真的三维 (3D) 图形与令人如醉如痴的音乐与声音效果。 DirectX 使程序能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数。该程序使得多媒体软件程序能够在基于 Windows 的具有 DirectX 兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分利用高性能硬件。 DirectX 包含一组 API,通过它能访问高性能硬件的高级功能,如三维图形加速芯片和声卡。这些 API 控制低级功能(其中包括二维 (2D) 图形加速)、支持输入设备(如游戏杆、键盘和鼠标)并控制着混音及声音输出。构成 DirectX 的下列组件支持低级功能: Microsoft DirectDraw Microsoft DirectDraw API 支持快速访问计算机适配器的加速硬件功能。它支持在所有适配器上显示图形的标准方法,并且使用加速驱动程序时可以更快更直接地访问。DirectDraw 为程序(如游戏和二维图形程序包)以及 Windows 系统组件(如数字编解码器)提供了一种独立于设备之外的方法来访问特定显示设备的功能,而不要求用户提供设备功能的其它信息。 -------------------------------------------------------------------------------- Microsoft Direct3D Microsoft Direct3D API (Direct3D) 为大多数新适配器内置的 3-D 调色功能提供界面。Direct3D 是一种低级的 3-D API,它为软件程序提供一种独立于设备之外的方法以便与加速器硬件进行有效而强大的通信。Direct3D 包含专用 CPU 指令集支持,从而可为新型计算机提供进一步加速支持。 -------------------------------------------------------------------------------- Microsoft DirectSound Microsoft DirectSound API 为程序和音频适配器的混音、声音播放和声音捕获功能之间提供了链接。DirectSound 为多媒体软件程序提供低延迟混合、硬件加速以及直接访问声音设备等功能。维护与现有设备驱动程序的兼容性时提供该功能。 -------------------------------------------------------------------------------- Microsoft DirectMusic Microsoft DirectMusic API 是 DirectX 的交互式音频组件。与捕获和播放数字声音样本的 DirectSound API 不同,DirectMusic 处理数字音频以及基于消息的音乐数据,这些数据是通过声卡或其内置的软件合成器转换成数字音频的。DirectMusic API 支持以“乐器数字界面 (MIDI)”格式进行输入,也支持压缩与未压缩的数字音频格式。DirectMusic 为软件开发人员提供了创建令人陶醉的动态音轨的能力,以响应软件环境中的各种更改,而不只是用户直接输入更改。 -------------------------------------------------------------------------------- Microsoft DirectInput Microsoft DirectInput API 为游戏提供高级输入功能并能处理游戏杆以及包括鼠标、键盘和强力反馈游戏控制器在内的其它相关设备的输入。 -------------------------------------------------------------------------------- Microsoft DirectPlay Microsoft DirectPlay API 支持通过调制解调器、Internet 或局域网连接游戏。DirectPlay 简化了对通信服务的访问,并提供了一种能够使游戏彼此通信的方法而不受协议或联机服务的限制。DirectPlay 提供了多种游说服务,可简化多媒体播放器游戏的初始化,同时还支持可靠的通信协议以确保重要游戏数据在网络上不会丢失。DirectPlay 8.0 的新功能即支持通过网络进行语音通信,从而可大大提高基于多媒体播放器小组的游戏的性,同时该组件还通过提供与玩游戏的其他人对话的功能而使团体游戏更具魅力。 -------------------------------------------------------------------------------- Microsoft DirectShow Microsoft DirectShow API 提供了可在您的计算机与 Internet 服务器上进行高品质捕获与回放多媒体文件的功能。DirectShow 支持各种音频与格式,包括“高级流式格式 (A)”、“音频-交错 (AVI)”、“数字 (DV)”、“动画专家组 (MPEG)”、“MPEG 音频层 3 (MP3)”、 “Windows 媒体音频/ (WMA/WMV)”以及 WAV 文件。DirectShow 还具有捕获、DVD 回放、编辑与混合、硬件加速解码以及调谐广播模拟与数字电视信号等功能。 ------------------------------------------------------------------------------------------------------------------------------------------------------

编辑本段DirectX 的历史

DirectX 1.0

第一代的DirectX很不成功,推出时众多的硬件均不支持,当时基本都用专业图形API-OpenGL,缺乏硬件的支持成了其流行的最大障碍。

DirectX 1.0版本是第一个可以直接对硬件信息进行读取的程序。它提供了更为直接的读取图形硬件的性能(比如:显示卡上的块移动功能)以及基本的声音和输入设备功能(函数),使开发的游戏能实现对二维(2D)图像进行加速。这时候的DirectX不包括现在所有的3D功能,还处于一个初级阶段。

DirectX 2.0

DirectX 2.0在二维图形方面做了些改进,增加了一些动态效果,用了Direct 3D的技术。这样DirectX 2.0与DirectX 1.0有了相当大的不同。在DirectX 2.0中,用了“平滑模拟和RGB模拟”两种模拟方式对三维(3D)图像进行加速计算的。DirectX 2.0同时也用了更加友好的用户设置程序并更正了应用程序接口的许多问题。从DirectX 2.0开始,整个DirectX的设计架构雏形就已基本完成。

DirectX 3.0

DirectX 3.0的推出是在19年最后一个版本的Windows95发布后不久,此时3D游戏开始深入人心,DirectX也逐渐得到软硬件厂商的认可。年时应用程序接口标准共有三个,分别是专业的OpenGL接口,微软的DirectX D接口和3DFX公司的Glide接口。而那时的3DFX公司是最为强大的显卡制造商,它的Glide接口自然也受到最广泛的应用,但随着3DFX公司的没落,Voodoo显卡的衰败,Glide接口才逐渐消失了。

DirectX 3.0是DirectX 2.0的简单升级版,它对DirectX 2.0的改动并不多。包括对DirectSound(针对3D声音功能)和DirectPlay(针对游戏/网络)的一些修改和升级。DirectX 3.0集成了较简单的3D效果,还不是很成熟。

DirectX 5.0

微软公司并没有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动,加入了雾化效果、Alpha混合等3D特效,使3D游戏中的空间感和真实感得以增强,还加入了S3的纹理压缩技术。

同时,DirectX 5.0在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API,而且大有后来居上之势。

DirectX 6.0

DirectX 6.0推出时,其最大的竞争对手之一Glide,已逐步走向了没落,而DirectX则得到了大多数厂商的认可。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术,游戏中的3D技术逐渐走入成熟阶段。

DirectX 7.0

DirectX 7.0最大的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。

在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。

DirectX 8.0

DirectX 8.0的推出引发了一场显卡革命,它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader),反映在特效上就是动态光影效果。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的营造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成。

DirectX 9.0

2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了条。

PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,**级别的显示效果轻而易举的实现。

VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到**级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

DirectX 9.0c

与过去的DirectX 9.0b和Shader Model 2.0相比较,DirectX 9.0c最大的改进,便是引入了对Shader Model 3.0(包括Pixel Shader 3.0 和Vertex Shader 3.0两个着色语言规范)的全面支持。举例来说,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令数仅为256个,Pixel Shader最大指令数更是只有96个。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令数都大幅上升至65535个,全新的动态程序流控制、 位移贴图、多渲染目标(MRT)、次表面散射 Subsurface scattering、柔和阴影 Soft shadows、环境和地面阴影 Environmental and ground shadows、全局照明 (Global illumination)等新技术特性,使得GeForce 6、GeForce7系列以及Radeon X1000系列立刻为新一代游戏以及具备无比真实感、幻想般的复杂的数字世界和逼真的角色在品质的环境中活动提供强大动力。

因此DirectX 9.0c和Shader Model 3.0标准的推出,可以说是DirectX发展历程中的重要转折点。在DirectX 9.0c中,Shader Model 3.0除了取消指令数限制和加入位移贴图等新特性之外,更多的特性都是在解决游戏的执行效率和品质上下功夫,Shader Model 3.0诞生之后,人们对待游戏的态度也开始从过去单纯地追求速度,转变到游戏画质和运行速度两者兼顾。因此Shader Model 3.0对游戏产业的影响可谓深远。

Directx 10.0

已经包含在Windows Vista操作系统中,目前无法单独下载使用

新的DirectX使你获得更好的图像显示质量,使多人游戏具可伸缩性,以及包括更棒的音频效果。它强化了针对DirectDraw和Direct3D的接口,简化了应用扩展,提升性能;改善了图形创作工具,更易于做出最佳的3-D角色和环境;点光源式光影和像素式光影使图象更逼真;强化了DirectSound和DirectMusic,简化了其应用扩展;DLS2音频合成功能提高了乐器音频的真实感; DirectInput的设备影射功能令对设备的支持更简单;DirectPlay使多人游戏的性能和可扩展性得到了提高; DirectPlay提供了IP声音通讯;DirectShow的应用编程接口提供了音频/的实时合成和即时编辑; DirectShow支持Windows媒体音频和(WMA和WMV)的读写; Microsoft TV技术可以支持数字电视节目。当然,最重要的是一些新游戏需要它。 DirectX Redist通常每两个月更新一次,包含了DirectX Runtimes的所有更新,可以替代此前发布的旧版本,适合Windows XP、Server 2003、Vista等操作系统,不支持Windows 9x/2000。一般最新的3D游戏等应用程序都需要新的DirectX接口,因此强烈推荐更新,

Vista DX10用户也同样需要。

显卡所支持的DirectX版本已成为评价显卡性能的标准,从显卡支持什么版本的DirectX,用户就可以分辨出显卡的性能高低,从而选择出适合于自己的显卡产品。

现在不下载DirectX的最新版本后果很严重!可以点击下面的链接可以连接到目前最新的DirectX下载页(2008年6月更新)

://.microsoft/downloads/details.aspx?familyid=822640AB-0983-4C41-9C70-632F6F42C557&displaylang=zh-cn

[font size=4]DirectX 10.1[/font]

正如以前的DX版本一样,DX10.1也是DX10的超集,因此它将支持DirectX 10的所有功能,同时它将支持更多的功能,提供更高的性能。

DX10.1的一个主要提高是改善的shader存取功能,在多样本AA时,在读取样本时有更好的控制能力。除此之外,DX10.1还将可以创建定制的下行样滤波器。

DX10.1还将有更新的浮点混合功能,对于渲染目标更有针对性,对于渲染目标混合将有新的格式,渲染目标可以实现独立的各自混合。阴影功能一直是游戏的重要特效,Direct3D 10.1 的阴影滤波功能也将有所提高,从而可望进一步提高画质。

在性能方面,DirectX 10.1将支持多核系统有更高的性能。而在渲染,反射和散射时,Direct3D 10.1将减少对API的调用次数,从而将获得不错的性能提升。

其他方面,DX10.1的提高也不少,包括32bit浮点滤波,可以提高渲染精确度,改善HDR渲染的画质。完全的抗锯齿应用程序控制也将是DX10.1的亮点,应用程序将可以控制多重样和超级样的使用,并选择在特定场景出现的样模板。DX10.1将至少需要单像素四样。

DX10.1还将引入更新的驱动模型,WDDM 2.1。与DX10的WDDM2.0相比,2.1有一些显著的提高。

首先是更多的内容转换功能,WDDM2.0支持处理一个命令或三角形后进行内容转换,而WDDM2.1则可以让内容转换即时进行。由于GPU同时要并行处理多个线程,因此内容转换的即时性不仅可以保证转换质量,还可以提升GPU效率,减少等待时间。另外,由于WDDM 2.1支持基于过程的虚拟内存分配,处理GPU和驱动页面错误的方式也更为成熟。

微软预计将在两周之内(2008年7月中旬)宣布新一代API:DirectX 11。消息来源指出,微软将在7月22日举办的Gamefest 2008上宣布新一代API,此前我们得到有关DirectX 11的最新消息是NVIDIA将在八月末的“NVISION 08”会议上讲解DirectX 11。

由微软举办的Gamefest 2008大会将于7月22-23日在西雅图召开,Gamefest 2008大会是微软每年一度的游戏技术探讨盛会,所以有关下一代游戏技术接口API的消息自然也是少不了的话题。

DirectX 11引入最大新技术特征无疑是Tessellation/Displacement,我们还听说了多线程渲染、Compute Shaders也将是DirectX 11中重要环节,另外据说DirectX 11还将引入Shader Model 5.0,具体细节信息目前基本上还是一无所知,Ray Tracing(光线跟踪)与Rasterization(光栅化)技术的支持也还没有提及。

至于DirectX 11何时正式推出,微软一直没有给出确切的消息,此前的传言声称会在今年底明年初完成,可能会随着Windows Vista SP2或Windows 7一同登场,而在DX11之前,DX10.1将成为最后一次小幅更新。

JS中的event 对象包含哪些东西 event,实例 详解

JaScript在IE浏览器和Firefox浏览器中存在一些差异,以下对这些差异部分进行了总结,以及解决方案:

1.HTML对象的 id 作为对象名的问题

IE:HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用

Firefox:不支持

解决方法:使用document.getElementById替代document.all

2.如果控件只有name,没有id, 用getElementById时:

IE:可以找到对象

Firefox:返回NULL

解决方法:所有控件必须设置ID属性

3.Evel:

IE:支持,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象

Firefox:不支持

解决方法:统一使用getElementById(idName) 代替 eval(idName)。

4.Event:

IE:用全局对象window.event

Firefox:event只能在发生的现场使用,在调用函数时传入event对象

解决方法:使用之前做一下浏览器类型判断,各用各的。

5.对象名称中美元符号‘$’ 改为使用下划线‘_’

6.集合类对象问题

IE:可以使用()或[]获取集合类对象

Firefox:只能使用[]获取集合类对象

现有代码中存在许多,不能在 Firefox 下运行

解决方法:统一使用[]获取集合类对象。document.form.item(“itemName”) 这样的语句改为document.form.elements["elementName"]

7.变量名与某 HTML 对象 id 相同的问题

IE:不能使用与 HTML 对象 id 相同的变量名

Firefox:可以使用

解决方法:在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。

8.Event定位问题

IE:支持event.x 和event.y

Firefox:支持event.pageX和event.pageY

解 决方法,统一使用event.clientX和event.clientY,但是在Firefox中event.clientX 与 event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。如果要完全一样,可以判断浏览器类型后对应使用。

9.父结点的问题

IE:parentElement parentElement.children

Firefox:parentNode parentNode.childNodes

childNodes的下标的含义在IE和Firefox中不同,Firefox使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。

当html中节点缺失时,IE和Firefox对parentNode的解释不同。例如:

<form> <table> <input/> </table> </form>

IE:input.parentNode的值为空节点

Firefox:input.parentNode的值为form

解决方法:Firefox中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)

10.const 问题

IE:不支持 const 关键字。如 const constVar = 32; 在IE中这是语法错误

Firefox:支持

解决方法:不使用 const ,以 var 代替。

11.body 对象

IE:在body标签完全被读入之后才存在

Firefox:在body标签没有被浏览器完全读入之前就存在

12.自定义属性问题

IE:可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性

Firefox:只能使用getAttribute()获取自定义属性.

解决方法:统一通过getAttribute()获取自定义属性

13.event.srcElement问题

IE:even.srcElement

Firefox:even.target

解决方法:使用时判断浏览器类型,各用各的。

14.模态和非模态窗口

IE:支持模态和非模态窗口

Firefox:不支持

解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口。

15.innerText

IE:innerText

Firefox:textContent

16.类似 obj.style.height = imgObj.height 的语句

IE:有效

Firefox:无效

解决方法:统一使用obj.style.height = imgObj.height + ‘px’;

js冲突怎么解决

JS的event对象

Event属性和方法:

1. type:的类型,如onlick中的click;

2. srcElement/target:源,就是发生的元素;

3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键)

4. clientX/clientY:发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到发生的坐标相对于文档开头的位置,要加上

document.body.scrollLeft和 document.body.scrollTop)

5. offsetX,offsetY/layerX,layerY:发生的时候,鼠标相对于源元素左上角的位置;

6. x,y/pageX,pageY:检索相对于父要素鼠标水平坐标的整数;

7. altKey,ctrlKey,shiftKey等:返回一个布尔值;

8. keyCode:返回keydown何keyup发生的时候按键的代码,以及keypress 的Unicode字符;(firefox2不支持 event.keycode,可以用 event.which替代 )

9. fromElement,toElement:前者是指代mouseover中鼠标移动过的文档元素,后者指代mouseout中鼠标移动到的文档元素;

10. cancelBubble:一个布尔属性,把它设置为true的时候,将停止进一步起泡到包容层次的元素;(e.cancelBubble = true; 相当于 e.stopPropagation();)

11. returnValue:一个布尔属性,设置为false的时候可以组织浏览器执行默认的动作;(e.returnValue = false; 相当于 e.preventDefault();)

12. attachEvent(),detachEvent()/addEventListener(),removeEventListener:为制定 DOM对象类型注册多个处理函数的方法,它们有两个参数,第一个是类型,第二个是处理函数。在

attachEvent()执行的时候,this关键字指向的是window对象,而不是发生的那个元素;

13. screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;

一些说明:

1. event代表的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等;

2. event对象只在发生的过程中才有效。

firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。

在IE/Opera中是window.event,在Firefox中是event;而的对象,在IE中是 window.event.srcElement,在Firefox中是event.target,Opera中两者都可用。

3. 下面两句效果相同

var evt = (evt) ? evt : ((window.event) ? window.event : null);

var evt = evt || window.event; // firefox下window.event为null, IE下event为null

4. IE中的起泡

IE中可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的处理函数,到了上层的节点如果还有和下层相同类型的处理函数,那么上层的处理函数也会执行。例如, div 标签包含了 a ,如果这两个标签都有onclick的处理函数,那么执行的情况就是先执行标签 a 的onclick处理函数,再执行 div 的处理函数。如果希望的处理函数执行完毕之后,不希望执行上层的 div 的onclick的处理函数了,那么就把cancelBubble设置为true即可。

JaScript onmousemove

a.最容易出现的就是js的命名冲突

①、变量名冲突

变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JaScript错误,甚至死循环。

②、方法名冲突

函数中有很多方法,不同的js之间可能函数名一样,这就使得程序执行时不知道改调用那个方法或者哪个方法执行后的结果,最终导致程序加载失败。

③、函数名冲突

一般是命名导致JS冲突。解决方法主要是查找在加载的js中是否具有相同命名的情况,然后修改命名

b.onload 冲突

如果在js中调用了window.onload = function(),同时在页面上又有body onload语句,会导致window.onload覆盖掉body onload而出现错误.

解决方法:attachEvent给onload添加所需运行的函数。

c . 浏览器不兼容问题,虽然这个不属于js冲突但是也常见的js的原因之一

①document.form.item 问题

(1)现有问题: 现有代码中存在许多document.formName.item("itemName") 这样的语句,不能在Fx 下运行

(2)解决方法: 改用document.formName.elements["elementName"]

②集合类对象问题

(1)现有问题: 现有代码中许多集合类对象取用时使用(),IE 能接受,Fx 不能。

(2)解决方法: 改用[] 作为下标运算。如:document.forms("formName") 改为document.forms["formName"]。又如:document.getElementsByName("inputName")(1) 改为document.getElementsByName("inputName")

③window.event

(1)现有问题: 使用window.event 无法在Fx 上运行

(2)解决方法: Fx 的event 只能在发生的现场使用,此问题暂无法解决。可以这样变通:

原代码(可在IE中运行):

代码:

<inputtype="button" name="someButton" value="提交

"onclick="jascript:gotoSubmit()"/>

...

<script language="jascript">

function gotoSubmit() {

...

alert(window.event);

// use window.event

...

}

</script>

新代码(可在IE和Fx中运行):

代码:

<input type="button" name="someButton" value="提交"

onclick="jascript:gotoSubmit(event)"/>

...

<script language="jascript">

function gotoSubmit(evt) {

evt = evt ? evt : (window.event ? window.event : null);

...

alert(evt);

// use evt

...

}

</script>

此外,如果新代码中第一行不改,与老代码一样的话(即gotoSubmit 调用没有给参数),则仍然只能在IE中运行,但不会出错。所以,这种方案tpl 部分仍与老 代码兼容。

④HTML 对象的id 作为对象名的问题

(1)现有问题 :在IE 中,HTML 对象的ID 可以作为document 的下属对象变量名直接使用。在Fx 中不能。

(2)解决方法 :用getElementById("idName") 代替idName 作为对象变量使用。

⑤用idName字符串取得对象的问题

(1)现有问题 :在IE中,利用eval(idName) 可以取得id 为idName 的HTML 对象,在Fx 中不能。

(2)解决方法 :用getElementById(idName) 代替eval(idName)。

⑥变量名与某HTML 对象id 相同的问题

(1)现有问题 :在Fx 中,因为对象id 不作为HTML 对象的名称,所以可以使用与HTML 对象id 相同的变量名,IE 中不能。

(2)解决方法 :在声明变量时,一律加上var ,以避免歧义,这样在IE 中亦可正常运行。

此外,最好不要取与HTML 对象id 相同的变量名,以减少错误。

⑦event.x 与event.y 问题

(1)现有问题 :在IE 中,event 对象有x, y 属性,Fx中没有。

(2)解决方法 :在Fx中,与event.x 等效的是event.pageX。但event.pageX IE中没有。

故用event.clientX 代替event.x。在IE 中也有这个变量。

event.clientX 与event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。 如果要完全一样,可以稍麻烦些:

mX = event.x ? event.x : event.pageX;

然后用mX 代替event.x

(3)其它:event.layerX 在IE 与Fx 中都有,具体意义有无差别尚未试验。

⑧关于frame

(1)现有问题 :在IE中 可以用window.testFrame取得该frame,Fx中不行

(2)解决方法 :在frame的使用方面Fx和ie的最主要的区别是: 如果在frame标签中书写了以下属性:

<frame src="xx.htm" id="frameId" name="frameName" />

那么ie可以通过id或者name访问这个frame对应的window对象,而Fx只可以通过name来访问这个frame对应的window对象,例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问

ie: window.top.frameId或者window.top.frameName来访问这个window对象

Fx: 只能这样window.top.frameName来访问这个window对象

另外,在Fx和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签 ,并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容 ,也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容

⑨在Fx中,自己定义的属性必须getAttribute()取得

⑩在Fx中没有parentElement parement.children 而用

parentNode parentNode.childNodes

childNodes的下标的含义在IE和Fx中不同,Fx使用DOM规范,childNodes中会插入空白文本节点。

一般可以通过node.getElementsByTagName()来回避这个问题。 当html中节点缺失时,IE和Fx对parentNode的解释不同,例如:

<form>  

<table> 

<input/> 

</table> 

</form>

Fx中input.parentNode的值为form, 而IE中input.parentNode的值为空节点

Fx中节点没有removeNode方法,必须使用如下方法node.parentNode.removeChild(node)

d . const 问题

(1)现有问题: 在IE 中不能使用const 关键字。如const constVar = 32; 在IE中这是语法错误。

(2)解决方法: 不使用const ,以var 代替。

.. body 对象

Fx的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在

. url encoding

  在js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';

frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器

一般会服务器报错参数没有找到,当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&

一般Fx无法识别js中的&

e . nodeName 和tagName 问题

(1)现有问题: 在Fx中,所有节点均有nodeName 值,但textNode 没有tagName 值。在IE 中,nodeName 的使用好象

有问题(具体情况没有测试,但我的IE已经死了好几次)。

(2)解决方法: 使用tagName,但应检测其是否为空。

元素属性:IE下input.type属性为只读,但是Fx下可以修改

document.getElementsByName() 和document.all[name] 的问题

(1)现有问题: 在IE 中,getElementsByName()、document.all[name] 均不能用来取得div 元素(是否还有其它不能取的元素还不知道)。

谁有xlib编程开发的中文电子文档

定义和用法

onmousemove?会在鼠标指针移动时发生。

语法

onmousemove="SomeJaScriptCode"

参数描述

SomeJaScriptCode必需。规定该发生时执行的?JaScript。

支持该的?HTML?标签:

<a>,?<address>,?<area>,?<b>,?<bdo>,?<big>,?<blockquote>,?<body>,?<button>,?

<caption>,?<cite>,?<code>,?<dd>,?<dfn>,?<div>,?<dl>,?<dt>,?<em>,?<fieldset>,?

<form>,?<h1>?to?<h6>,?<hr>,?<i>,?<img>,?<input>,?<kbd>,?<label>,?<legend>,?

<li>,?<map>,?<ol>,?<p>,?<pre>,?<samp>,?<select>,?<small>,?<span>,?<strong>,?

<sub>,?<sup>,?<table>,?<tbody>,?<td>,?<textarea>,?<tfoot>,?<th>,?<thead>,?

<tr>,?<tt>,?<ul>,?<var>

支持该的?JaScript?对象:

onmousemove?is,?by?default,?not?an?event?of?any?object,?

because?mouse?movement?hens?very?frequently.

提示和注释

注释:每当用户把鼠标移动一个像素,就会发生一个?mousemove?。这会耗费系统去处理所有这些?mousemove?。因此请审慎地使用该。

实例:

下面的例子中,当用户把鼠标移动到图像上时,将显示一个对话框:

<img?src="/i/eg_mouse2.jpg"?alt="mouse"

onmousemove="alert('您的鼠标刚才经过了!')"?/>

命运22021年6月18日BUNGIE周报分享

//XButton.c

#include

#include

main()

{

Display *d;

Window w, wb;

XEvent event;

Font f;

GC gc;

d = XOpenDisplay( NULL );

w = XCreateSimpleWindow( d, RootWindow( d, 0 ),

180, 50,

260, 160,

1, WhitePixel(d, 0), BlackPixel(d, 0) );

XSelectInput( d, w, ExposureMask|ButtonPressMask );

wb = XCreateSimpleWindow( d, w,

20, 20,

100, 20,

1, WhitePixel(d, 0), BlackPixel(d, 0) );

XSelectInput( d, wb, ExposureMask|ButtonPressMask );

gc = XCreateGC( d, w, 0, 0 );

f = XLoadFont( d, "fixed" );

XSetFont( d, gc, f );

XMapWindow( d, w );

XMapWindow( d, wb );

XFlush( d );

while( 1 ){

XNextEvent( d, &event );

switch( event.type ){

case Expose:

if ( event.xany.window == wb ){

XSetForeground( d, gc, BlackPixel(d, 0) );

XFillRectangle( d, w, gc, 0, 0, 260, 160 );

XSetForeground( d, gc, WhitePixel(d, 0) );

XDrawString( d, wb, gc, 10, 10, "push", 4 );//把push换成中文例如”确 //定”?为什么编译完后,执行,不能出现中文

}

break;

case ButtonPress:

if ( event.xany.window == w ){

printf( "w " );

fflush( stdout );

}

if ( event.xany.window == wb ){

printf( "wb ");

fflush( stdout );

}

break;

}

}

}

如何捕获android系统鼠标轨迹值和键盘值

命运2官方在2021年6月18日发布了最新一期的BUNGIE周报,部分玩家可能还不知道具体的内容,下面一起来看看吧。

命运2 2021年6月18日BUNGIE周报分享

本周在Bungie,我们为宗师日落的回归做好了准备。

永夜还在继续,而守护者也继续通过超控和删除入侵Vex网络。尽管我们击败了无数Vex思维,但是我们所面对的谜题依然没有解答。本周,你们中的很多人已经发现了谁在幕后策划这起网络战争,在为破坏圣城的未来埋下。如果你这周还没有玩过,我们静等你发现这些故事的节点。发现谜题,是命运中最具有感染力的瞬间,所以我们不会剧透任何内容。

除了永夜赛季本身的活动之外,玻璃拱顶的挑战也开始了。每周,突袭中的一个关卡都会有一个挑战等待着你的火力战队去克服。如果你成功了,那么你在前往巅峰能量等级的路上会多收获一个奖励。有些人可能会好奇,那么多能量有什么用处。我们在这个赛季会有两个活动上线。宗师日落下周回归,之后7月7日的时候玻璃拱顶的大师难度也将上线。所以,让我们来说说宗师吧,好吗?

继续征服

对于那些已经进入游戏终局的玩家来说,宗师日落是命运2的“鼓励内容”。每周,你和你的火力战队都会在追求强力奖励的时候面对更强大的敌人、更复杂的修改器、更恐怖的勇士以及更结实的最终首领。复活次数受限,所以你需要更小心地指定交战策略。节约你的来在关键的时候爆发输出特定的目标,使用超能来确保队友的生存,同时使用最恰当的护甲模组来让自己的技能尽可能快地转好冷却。

守护者必须达到1335光等才能进入宗师日落活动。这个数值包括你从装备获取的巅峰光等以及你通过获得经验值来提升的神器光等。如果你的等级还是有些不够,那么不要忘了完成你的赛季挑战,在进行每周活动的时候领一些悬赏,并完成你的每周突袭、日落、仪式活动的里程碑。现在,让我们来说说奖励。

上个赛季,专家级武器在PvE中首次出现,而我们这次仍将延续这一传统!插头一号、绞刑判官以及天钿RR4都将拥有专家级版本,在大师时获得额外属性奖励,同时可装备专家武器模组。

每周,宗师本将会循环,如现在的低难度日落一样。在你完成每个打击的同时,你还会获得解锁征服者称号的成就进度。如果你已经解锁了基本称号,那么你可以镀金自己的称号并获得金色外观。如果你错过了这个赛季此称号所需要的某个特定打击,不要紧。所有精选的打击都可在8月4日通过宗师日落节点选择。这一节点会在赛季剩余的时间中持续开放。

从7月14日开始,日落奖励将会以四周为一期进行轮换。第一周是插头一号,第二周为绞刑判官,第三周为天钿RR4,而第四周则是有暗影代价、回文和蜂群作为潜在奖励。

我们祝你们能成功克服宗师日落的挑战。不过我们知道你们并不需要运气。你们的技巧已足够纯熟。在我们接近第15赛季的时候,我们会有一些关于打击的体验提升消息分享给大家。下个赛季你镀金征服者称号的方式会有所改变,同时萨瓦拉和他的商人奖励也会有些变化。

更多消息,敬请期待!

我们说过我们会做个烤箱 在2020年6月,命运社区在Bungie的Gaming Community Expo(GCX)直播中为St.Jude儿童医院筹集了超过80万美金的善款。在直播过程中,Bungie宣布了如果我们能达到$777777.77额度的善款,我们就会制作一款官方命运烤箱。

“拿着那个面包!”已经成为了社区中获取最佳特性战利品的梗,但现在,实体命运烤箱终于在Bungie商店推出了。同时我们很开心地声明,命运烤箱的销售利润的10%将捐给St.Jude儿童医院。

是的,这个烤箱会给你的面包上烤出一个命运图标。是的,它还包括一个免费的三明治储藏盒,确保你在做任务的时候你的食物是安全的。哦,它还包含一个游戏中的烧焦边缘徽标。

有的人说:“别让梦想空做梗。”为所有之前捐过款的人鼓掌,也感谢所有现在于GCX慈善直播中积极捐款的人。如果你还未捐款,去看看GCXEvent吧!

排队登上重力电梯

每天,命运玩家支持团队都会在#帮助论坛上寻找可以帮助我们解决问题的细节。在调查中,他们还会为大家提供关于命运2系统的各种知识,从奖励到跨平台保存等等。

以下是他们的报告。

跨平台保存提醒

跨平台保存不会永久将你的角色和游戏数据转移到其他平台上。这是不可能的。

包含你想使用的游戏角色的账户必须被选为“启用中的跨平台保存账号”。

停用跨平台保存会进入90天的跨平台保存停用期,且无法跳过这一阶段。此政策无例外情况。

可下载内容和银币无法使用跨平台保存在平台间转移。

跨平台保存只在命运2上支持,命运1角色无法使用。

玻璃拱顶BUNGIE奖励

想要购买玻璃拱顶突袭戒指和玻璃拱顶突袭夹克的玩家需要在北京时间7月1日凌晨12点59分之前通过Bungie奖励页面领取奖励,否则他们将无法购买相应物品。玩家在北京时间7月1日下午2点59分之前可通过Bungie商店购买突袭戒指和突袭夹克。

过往季票奖励

我们目前正在调查过往赛季页面的问题,该问题导致过往季票奖励在浏览器中选择不同角色的时候不刷新。遇到该问题的玩家依然可以通过同伴App来领取他们之前季票的奖励。

已知问题

在我们继续调查各种已知问题的同时,下面是最近在#帮助论坛中报告的问题

列表:

如果三个玩家同时使用虚无典狱官打击最后的电梯,总有一个人会死。玩家需要待在泡泡外面等待一会儿,再加入你的盟友以避免死亡。

在玩家获得150个合成弦之后,艾达-1的路径点标志会闪烁,即便已无可接取悬赏也是一样。

在木卫二的特定平台附近,敌人可能会站在半空中。

一、找出设备中,我用的是什么event?

关于该设备打开的是哪个event,我们可以通过命令,cat /proc/bus/input/devices 来查看,执行这个命令后,你会看到您的设备上有多少eventX。

root@lenovo-desktop:~# cat /proc/bus/input/devices

I: Bus=0019 Vendor=0000 Product=0001 Version=0000

N: Name="Power Button"

P: Phys=PNP0C0C/button/input0

S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0

U: Uniq=

H: Handlers=kbd event0

B: EV=3

B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000

N: Name="Power Button"

P: Phys=LNXPWRBN/button/input0

S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1

U: Uniq=

H: Handlers=kbd event1

B: EV=3

B: KEY=100000 0 0 0

I: Bus=0017 Vendor=0001 Product=0001 Version=0100

N: Name="Macintosh mouse button emulation"

P: Phys=

S: Sysfs=/devices/virtual/input/input2

U: Uniq=

H: Handlers=mouse0 event2

B: EV=7

B: KEY=70000 0 0 0 0 0 0 0 0

B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41

N: Name="AT Translated Set 2 keyboard"

P: Phys=isa0060/serio0/input0

S: Sysfs=/devices/platform/i8042/serio0/input/input3

U: Uniq=

H: Handlers=kbd event3

B: EV=120013

B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe

B: MSC=10

B: LED=7

I: Bus=0003 Vendor=17ef Product=600e Version=0111

N: Name="Lenovo Optical Mouse"

P: Phys=usb-0000:00:1d.1-1/input0

S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input4

U: Uniq=

H: Handlers=mouse1 event4

B: EV=17

B: KEY=70000 0 0 0 0 0 0 0 0

B: REL=103

B: MSC=10

..

..

我的ubunte系统上敲完这个命令后,能够看到event0—event7,共8个设备。

如上面红色标记,可以很快找出该设备对应的输入设备,以及对应的eventX,跨入眼前视野的“Lenovo Optical Mouse” 这肯定是我鼠标啊,用的牌子就是这个Lenovo,背面上写着呢。

二、对input_event数据结构的解释

标准按键的编码的定义在 linux/input.h中

struct input_event {

struct timeval time; //按键时间

__u16 type; //类型,在下面有定义

__u16 code; //要模拟成什么按键

__s32 value;//是按下还是释放

};

1、code:

的代码.如果的类型代码是EV_KEY,该代码code为设备键盘代码. 代码植0~127为键盘上的按键代码,

0x110~0x116 为鼠标上按键代码,

其中0x110(BTN_ LEFT)为鼠标左键,

0x111(BTN_RIGHT)为鼠标右键,

0x112(BTN_ MIDDLE)为鼠标中键.

如果的类型代码是EV_REL,code值表示轨迹的类型.如指示鼠标的X轴方向REL_X(代码为0x00),指示鼠标的Y轴方向REL_Y(代码 为0x01),指示鼠标中轮子方向REL_WHEEL(代码为0x08).

其它代码含义请参看include/linux/input.件.

2、type:

EV_KEY,键盘

EV_REL,相对坐标(轨迹球)

EV_ABS,绝对坐标(鼠标)

。。。

/*

*Event types参考值

*/

#define EV_SYN 0x00

#define EV_KEY 0x01 //按键

#define EV_REL 0x02 //相对坐标(轨迹球)

#define EV_ABS 0x03 //绝对坐标(鼠标)

#define EV_MSC 0x04 //其他

#define EV_SW 0x05

#define EV_LED 0x11 //LED

#define EV_SND 0x12//声音

#define EV_REP 0x14//repeat

#define EV_FF 0x15

#define EV_PWR 0x16

#define EV_FF_STATUS 0x17

#define EV_MAX 0x1f

#define EV_CNT (EV_MAX+1)

3、value:

的值.如果的类型代码是EV_KEY,当按键按下时值为1,松开时值为0; 如果的类型代码是EV_ REL,value的正数值和负数值分别代表两个不同方向的值.

三、抓取event值的原理:

对eventX进行read/write来抓取event的各种信息;

1、打开event设备

event0_fd = open(“/dev/input/event0”, O_RDWR);

2、read 设备

rd = read(event0_fd, &event0, sizeof(struct input_event) * 64);