专利名称:一种自定义光标的实现方法及装置的制作方法
技术领域:
本发明涉 及光标显示控制领域,尤其涉及一种自定义光标的实现方法及装置。
背景技术:
在现有的面对对象的脚本语言Flash Actionscript3.0 (以下简称Actionscript3.0)当
中,对普通的目标对象,定义有手型光标和箭头型光标的鼠标显示样式,光标的显示样 式比较单一,在较为复杂的实际应用中,为了使光标的显示更为灵活生动,需要实现更 为个性化和多样化的光标显示形式。
发明内容
本发明实施例提供了一种能够显示多样化和个性化光标的自定义光标的实现方
法及装置。本发明实施例提供的一种自定义光标的实现方法,包括隐藏默认光标,监听舞台stage的鼠标移动事件;加载自定义的光标资源,将其作为光标对象显示在所述stage的顶层;当所述鼠标移动事件被触发时,将所述光标对象移动至鼠标当前所在位置进行显不。加载自定义的光标资源,将其作为光标对象显示在所述stage的顶层,包括建立Sprite类的cursorContainerSprite对象作为光标对象;加载自定义的光标资源为光标显示对象cursordisplayobject ;调用为所述光标对象添加子对象的函数,将所述光标显示对象添加至所述光标 对象中。将所述光标对象移动至鼠标当前所在位置,包括根据鼠标移动事件的记录的当前鼠标所在的坐标信息,将所述光标对象移动至 对应的位置。本发明实施例提供的一种自定义光标的实现方法,还包括监听所述stage的鼠标悬停事件;当所述鼠标悬停事件被触发时,获取该鼠标悬停事件的目标对象对应的光标属 性值;根据获取的光标属性值确定对应的光标资源;判断确定出的光标资源是否与当前显示的光标对象中的光标资源一致;若不一致,加载确定出的光标资源,并替换当前显示的光标对象中的光标资 源。所述获取该鼠标悬停事件的目标对象对应的光标属性值,包括在所述目标对象的属性中查找其光标属性;若查找到,获取该目标对象的光标属性值;
若未查找到,继续遍历所述目标对象的各上级节点,在所述各上级节点的属性 中查找光标属性;若查找到,获取上级节点的光标属性值作为该目标对象对应的光标属 性值;若未查找到,获取默认的光标资源的标识作为该目标对象对应的光标属性值。本发明实施例还提供了一种自定义光标的实现装置,包括监听模块,用于隐藏默认光标,监听舞台stage的鼠标移动事件;加载模块,用于加载自定义的光标资源,将其作为光标对象显示在所述stage的 顶层;移动模块,用于当监听模块监听到所述鼠标移动事件被触发时,将所述光标对 象移动至鼠标当前所在位置进行显示。所述加载模块,还用于建立Sprite类的CursorContainerSprite对象作为光标对象;
加载自定义的光标资源为光标显示对象cursordisplayobject ;调用为所述光标对象添加子 对象的函数,将所述光标显示对象添加至所述光标对象中。所述移动模块,还用于根据监听的鼠标移动事件中记录的当前鼠标所在的坐标 信息,将所述光标对象移动至对应的位置。本发明实施例提供的自定义光标的实现装置,还包括获取模块,判断模块;所述监听模块,还用于监听所述stage的鼠标悬停事件;所述获取模块,用于当所述监听模块监听到鼠标悬停事件被触发时,获取该鼠 标悬停事件的目标对象对应的光标属性值;所述判断模块,用于根据获取的光标属性值确定对应的光标资源,并判断确定 出的光标资源是否与当前显示的光标对象中的光标资源一致;所述加载模块,还用于当判断模块判断结果为不一致时,加载确定出的光标资 源,并替换当前显示的光标对象中的光标资源。所述获取模块,还用于在所述目标对象的属性中查找其光标属性;若查找到,获取该目标对象的光标属性值;若未查找到,继续遍历所述目标对象的各上级节点,在所述各上级节点的属性 中查找光标属性;若查找到,获取上级节点的光标属性值作为该目标对象对应的光标属 性值;若未查找到,获取默认的光标资源的标识作为该目标对象对应的光标属性值。本发明实施例的有益效果包括本发明实施例提供的自定义光标的实现方法及装置,隐藏了默认的光标,监听 stage的鼠标移动事件(MouseEvent.Mouse—Move),并且加载自定义的光标资源,将其作 为光标对象显示在stage的顶层,当鼠标移动事件被触发后,将光标对象移动至鼠标当前 的位置进行显示,与现有技术相比,实现了在鼠标移动过程中显示自定义的光标资源, 使得光标的显示效果更为个性化和多样化,提高了用户的使用体验。
图1为本发明实施例提供的自定义光标的实现方法的流程图之一;图2为本发明实施例提供的自定义光标的实现方法的流程图之二 ;图3为本发明实施例提供的获取鼠标悬停事件的目标对象对应的光标属性值的 流程图4为本发明实施例提供的自定义光标的实现装置的结构示意图。
具体实施例方式下面结合附图,用对本发明提供的一种自定义光标的实现方法及装置的具体实 施方式进行详细的说明。本发明实施例提供的一种自定义光标的实现方法,如图1所示,包括下述步 骤SlOU隐藏默认的光标,监听舞台stage的鼠标移动事件MouseEvent.Mouse— Move ;S102、加载自定义的光标资源,将其作为光标对象显示在所述stage的顶层;S103、当鼠标移动事件被触发时,将光标对象移动至鼠标当前所在位置进行显
示下面对上述各步骤进行详细的说明。上述步骤SlOl中,默认光标指的是ActionScript3.0中定义的手型或者箭头型光 标。例如可以采用现有Actionscript3.0中的Mouse.hideC..)的方法,将默认的光标隐藏,
以便显示自定义的个性化的光标。 鼠标移动事件即MouseEvent.Mouse—Move是ActionScript3.0中定义的鼠标事件之
一,鼠标移动事件当鼠标发生移动时触发。上述步骤S102中,加载自定义的光标资源,将其作为光标对象显示在所述stage 的顶层,具体包括建立一个Sprite类的Sprite对象即cursorContainerSprite作为光标对象,stage自 身有多层实现,该光标对象cursorContainerSprite显示在stage的顶层。加载自定义的光标资源为光标显示对象cursordisplayobject,加载的自定义的光
标资源可以是矢量图文件、位图文件或者flash动画文件。通过调用为光标对象cursorContainerSprite添加子对象的函数例如 cursorContainerSprite.addchild(cursordisplayobject)函数,可以实现将加载的光标资源作为 光标显示对象cursordisplayobject添加到光标对象cursorContainerSprite中。步骤S103中,当监听的鼠标移动事件发生后,根据鼠标移动事件记录的当前鼠 标所在的坐标信息,将光标对象移动至对应的位置,光标对象中的光标显示对象即自定 义的光标资源也随之移动到鼠标当前的位置,显示在stage的顶层。本发明实施例提供的一种自定义光标的实现方法,当鼠标移动过程中落在某个 目标对象上时,还能够根据不同目标对象的属性信息,变换不同的个性化的光标资源, 这样,当用户将鼠标落在不同的目标对象时,可以显示更为多样化的光标。为了实现根据不同的目标对象,显示多样化的光标,在本发明实施例提供的自 定义光标的实现方法中,需要预先对继承于显示对象displayobject类或者其子类,在其公 开的(public)属性中添加光标属性。举一个实例来说,为一个继承于displayobject的Sprite对象添加光标属性,状码
如下class CustomSprite extends Sprite {
public var cursorID:string="cursor/l.swf'; public function CustomSprite()在上述代码中,为一个Sprite对象添加光标属性,通过为其添加公开(public) 的属性实现,在Sprite对象公开的属性中,光标属性为cursorlD,光标的属性值等于 "cursor/l.swf",也就是说可以预先为不同对象的光标属性定义各种不同的光标资源,
上述代码中,光标属性值中“l.swf”即自定义的光标资源(一段flash动画)的标识,当 然,光标资源也可以是其他图片或动画等。为了实现更为多样化、个性化的光标,本发明实施例提供的自定义光标实现方 法中,如图2所示,还执行下述步骤S201、监听舞台stage的鼠标悬停MouseEvent.Mouse—OVER事件;当鼠标悬停
事件被触发时,执行步骤S202;S202、获取MouseEvent.Mouse—OVER事件的目标对象对应的光标属性值;S203、根据获取的光标属性值确定对应的光标资源;S204、判断确定出的光标资源是否与当前显示的光标对象中的光标资源一致; 若一致,保持当前光标的显示不变,执行步骤S206退出流程;若不一致,则执行步骤 S205 ;步骤S205、加载步骤S203中确定出的光标资源,并替换当前显示的光标对象中 的光标资源。在上述步骤S201 中,鼠标悬停 MouseEvent.Mouse—OVER 事件是 Actionscript3.0
定义的鼠标事件之一,当鼠标移动到目标对象上并在设定的时间内不在发生移动时触发。上述步骤S202中,获取MouseEvent.Mouse—OVER事件的目标对象对应的光标
属性值;MouseEvent.Mouse—OVER事件的目标target参数记录了鼠标落在哪个具体对象
上。因为该目标对象的属性可能包含光标属性,也可能不包含,在本发明实施例中,目 标对象所对应的光标属性值,可能是其自身光标属性的值,也可能是其上级节点光标属 性的值。目标对象本身并不包含光标属性的情况下,需要继续其查找其父节点是否具有 光标属性,如果其父节点不具备光标属性,则继续查找其父节点的上级接点,遍历各上 级节点,查找各上级节点对应的光标属性,直至查找到上级节点的光标属性值。具体过 程如图3所示,包括 S301、在MouseEvent.Mouse—OVER事件的目标对象的属性中查找其光标属性; 若查找到,执行步骤S302,否则,执行步骤S303;S302、获取该目标对象的光标属性值;S303、继续在该目标对象的上级节点的属性中查找光标属性,若查找到,执行S304 ;若没有查找到,执行S305 ;S304、获取 上级节点的光标属性值作为该目标对象对应的光标属性值;S305、判断是否该目标节点的各级上级节点都已查找完毕,若否,重复执行步 骤S303,若是,执行步骤S306 ;S306、获取默认的光标资源的标识作为该目标对象对应的光标属性值。上述步骤S201至步骤S205的流程与步骤SlOl至步骤S103的流程相互独立,在 具体实施时,可以同时对MouseEvent.Mouse—Move事件和MouseEvent.Mouse—OVER事件 进行监听,当MouseEvent.Mouse—Move事件被触发时,执行步骤S102至S103的流程, 当MouseEvent.Mouse—OVER事件被触发时,执行步骤S202至S205的流程。这个两个 事件可能会交替触发,从而实现了当鼠标移动时,显示个性化的光标,当鼠标悬停在某 个目标对象之上时,根据该对象预先设置的光标属性对应的光标资源,替换原有的光标 对象中的光标资源,使得当前显示的光标采用该目标对象预先设定的光标资源所定义的 光标。例如在以社区为主题的动画游戏的设计中,可以设置该社区中各种不同实现对 象的光标属性,例如社区中各建筑物、人物形象、动物形象都预先设置对应的光标属 性,在具体实现时,可以只对上级节点的对象设置光标属性,对其子节点的对象不再重 复设置光标属性,当鼠标落在上级节点的子节点上时,查找到上级节点的光标属性值, 如果查找到的光标属性值所对应的光标资源与当前采用的光标资源不一致,则加载查找 到的光标属性值对应的光标资源替换当前光标对象中的光标资源,实现当鼠标落在社区 中的建筑物、人物形象或动物形象上时,分别采用不同的光标以区分显示。基于同一发明构思,本发明实施例中还提供了一种自定义光标的实现装置,由 于该装置解决问题的原理与前述一种自定义光标的方法相似,因此这些装置的实施可以 参见方法的实施,重复之处不在赘述。本发明实施例提供的自定义光标的实现装置,如图4所示,包括监听模块 401、加载模块402和移动模块403 ;监听模块401,用于隐藏默认光标,监听舞台stage的鼠标移动事件;加载模块402,用于加载自定义的光标资源,将其作为光标对象显示在stage的 顶层;移动模块403,用于当监听模块401监听到鼠标移动事件被触发时,将光标对象 移动至鼠标当前所在位置进行显示。上述加载模块402,还用于建立Sprite类的cursorContainerSprite对象作为光标对 象;加载自定义的光标资源为光标显示对象cursordisplayobject;调用为所述光标对象添 加子对象的函数 cursorContainerSprite.addchild(cursordisplayo bject),将所述光标显示对象
添加至所述光标对象中。移动模块403,还用于根据监听模块401监听的鼠标移动事件中记录的当前鼠标 所在的坐标信息,将光标对象移动至对应的位置。为了实现根据不同的目标对象,显示多样化的光标,本发明实施例提供的自定 义光标的实现装置,如图4所示,进一步还可以包括获取模块404和判断模块405;监听模块401,还用于监听stage的鼠标悬停事件;
获取模块404,用于当监听模块401监听到鼠标悬停事件被触发时,获取该鼠标 悬停事件的目标对象对应的光标属性值;判断模块405,用于根据获取的光标属性值确定对应的光标资源,并判断确定出 的光标资源是否与当前显示的光标对象中的光标资源一致;加载模块402,还用于当判断模块405判断结果为不一致时,加载确定出的光标 资源,并替换当前显示的光标对象中的光标资源。本发明实施例提供的自定义光标实现装置中的获取模块404,还用于在所述目标 对象的属性中查找其光标属性;若查找到,获取该目标对象的光标属性值;若未查找到,继续遍历所述目标对象的各上级节点,在所述各上级节点的属性 中查找光标属性;若查找到,获取上级节点的光标属性值作为该目标对象对应的光标属 性值;若未查找到,获取默认的光标资源的标识作为该目标对象对应的光标属性值。本发明实施例提供的自定义光标的实现方法及装置,隐藏了默认的光标,监听 stage的鼠标移动事件(MouseEvent.Mouse—Move),并且加载自定义的光标资源,将其作 为光标对象显示在stage的顶层,当鼠标移动事件被触发后,将光标对象移动至鼠标当前 的位置进行显示,与现有技术相比,实现了在鼠标移动过程中显示自定义的光标资源。更进一步地,本发明实施例提供的自定义光标的实现方法及装置,还可以监听 鼠标悬停(MouseEvent.Mouse—OVER)事件,当 MouseEvent.Mouse—OVER 事件触发时, 获取该鼠标悬停事件的目标对象所对应的光标资源,并判断该目标对象对应的光标资源 是否与当前光标对象中的光标资源一致,若不一致,则使用该对象对应的光标资源替换 当前光标对象中的原有的光标资源,对与不同目标对象,对应采用不同的光标资源,实 现更为个性化和多样化的光标显示,提高了用户的使用体验。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的 精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的 范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种自定义光标的实现方法,其特征在于,包括 隐藏默认光标,监听舞台stage的鼠标移动事件;加载自定义的光标资源,将其作为光标对象显示在所述stage的顶层;当所述鼠标移动事件被触发时,将所述光标对象移动至鼠标当前所在位置进行显示。
2.如权利要求1所述的方法,其特征在于,加载自定义的光标资源,将其作为光标对 象显示在所述stage的顶层,包括建立Sprite类的cursorContainerSprite对象作为光标对象; 加载自定义的光标资源为光标显示对象cursordisplayobject ;调用为所述光标对象添加子对象的函数,将所述光标显示对象添加至所述光标对象中。
3.如权利要求1所述的方法,其特征在于,将所述光标对象移动至鼠标当前所在位 置,包括根据鼠标移动事件记录的当前鼠标所在的坐标信息,将所述光标对象移动至对应的 位置。
4.如权利要求1所述的方法,其特征在于,还包括 监听所述stage的鼠标悬停事件;当所述鼠标悬停事件被触发时,获取该鼠标悬停事件的目标对象对应的光标属性值;根据获取的光标属性值确定对应的光标资源;判断确定出的光标资源是否与当前显示的光标对象中的光标资源一致; 若不一致,加载确定出的光标资源,并替换当前显示的光标对象中的光标资源。
5.如权利要求4所述的的方法,其特征在于,所述获取该鼠标悬停事件的目标对象对 应的光标属性值,包括在所述目标对象的属性中查找其光标属性; 若查找到,获取该目标对象的光标属性值;若未查找到,遍历所述目标对象的各上级节点,在所述各上级节点的属性中查找光 标属性;若查找到,获取上级节点的光标属性值作为该目标对象对应的光标属性值;若 未查找到,获取默认的光标资源的标识作为该目标对象对应的光标属性值。
6.—种自定义光标的实现装置,其特征在于,包括监听模块,用于隐藏默认光标,监听舞台stage的鼠标移动事件;加载模块,用于加载自定义的光标资源,将其作为光标对象显示在所述stage的顶层;移动模块,用于当监听模块监听到所述鼠标移动事件被触发时,将所述光标对象移 动至鼠标当前所在位置进行显示。
7.如权利要求6所述的装置,其特征在于,所述加载模块,还用于建立Sprite类 的cursorContainerSprite对象作为光标对象;加载自定义的光标资源为光标显示对象 cursordisplayobject ;调用为所述光标对象添加子对象的函数,将所述光标显示对象添加 至所述光标对象中。
8.如权利要求6所述的装置,其特征在于,所述移动模块,还用于根据监听的鼠标移 动事件中记录的当前鼠标所在的坐标信息,将所述光标对象移动至对应的位置。
9.如权利要求6所述的装置,其特征在于,还包括获取模块,判断模块;所述监听模块,还用于监听所述stage的鼠标悬停事件;所述获取模块,用于当所述监听模块监听到鼠标悬停事件被触发时,获取该鼠标悬 停事件的目标对象对应的光标属性值;所述判断模块,用于根据获取的光标属性值确定对应的光标资源,并判断确定出的 光标资源是否与当前显示的光标对象中的光标资源一致;所述加载模块,还用于当判断模块判断结果为不一致时,加载确定出的光标资源, 并替换当前显示的光标对象中的光标资源。
10.如权利要求9所述的装置,其特征在于,所述获取模块,还用于在所述目标对象 的属性中查找其光标属性;若查找到,获取该目标对象的光标属性值;若未查找到,继续遍历所述目标对象的各上级节点,在所述各上级节点的属性中查 找光标属性;若查找到,获取上级节点的光标属性值作为该目标对象对应的光标属性 值;若未查找到,获取默认的光标资源的标识作为该目标对象对应的光标属性值。
全文摘要
本发明公开了一种自定义光标的实现方法及装置,其中方法包括隐藏默认光标,监听舞台的鼠标移动事件;加载自定义的光标资源,将其作为光标对象显示在的舞台顶层;当鼠标移动事件被触发时,将光标对象移动至鼠标当前所在位置进行显示。与现有技术相比,本发明实现了在鼠标移动过程中显示自定义的光标资源,使得光标的显示效果更为个性化和多样化,提高了用户的使用体验。
文档编号G06F9/44GK102012805SQ20091016899
公开日2011年4月13日 申请日期2009年9月4日 优先权日2009年9月4日
发明者黄朝兴 申请人:腾讯科技(深圳)有限公司