怎么用xmouse设置lol连招

自定义光标类——CustomCursor - [Action Script讨论区] -
闪吧论坛 flash,flash8,闪客 - Powered by Discuz!
帖子3070&积分399&技术分70 &在线时间65 小时&注册时间&
自定义光标类——CustomCursor
//功能:设置自定义的光标并在指定的区域或MC上显示
//AS2.0编写
//该类使用单列模式,且只public一个静态方法:setCursor(style:String, targetArr:Array, area)
//用例1:CustomCursor.setCursor(&linkname&,[mc1,mc2,mc3],{left:0,right:400,top:0,bottom:100}) 将库中链接名为“linkname”的MC作为自定义光标,并作用在mc1,mc2,mc3以及矩形区域(0,0)~(400,100)上
//用例2:CustomCursor.setCursor() 恢复使用默认光标
下载次数: 214
(14.31 KB)
下载次数: 112
class CustomCursor {
private var eventMC:MovieC
private var cursorMC:MovieC
private var areaO
private var targetArr:A
private var style:S
private var using:B
private var onMouseMove:F
private static var instance:CustomC
//静态方法,创建自定义光标,设置光标样式和显示区域
public static function setCursor(style:String, targetArr:Array, area) {
&&if (instance == null) {
& &instance = new CustomCursor();
&&}
&&instance.setCursorStyle(style);
&&instance.setArea(area);
&&instance.setTargets(targetArr);
&&instance.refurbish();
}
//私有构造函数
private function CustomCursor() {
&&this.eventMC = _root.createEmptyMovieClip(&myCursor_eventMC&, 7085);
&&this.cursorMC =
&&this.areaObj =
&&this.targetArr =
&&this.style =
&&this.using =
&&this.eventMC.parent =
&&this.eventMC.onMouseMove = function() {
& &this.parent.refurbish();
&&};
}
//设置光标样式
private function setCursorStyle(value:String) {
&&this.style =
&&if (this.style == null) {
& &Mouse.show();
& &this.cursorMC.removeMovieClip();
& &this.cursorMC =
& &this.onMouseMove =
&&} else {
& &Mouse.hide();
& &this.cursorMC = _root.attachMovie(style, &myCursor_cursorMC&, 7086);
& &var mc = this.cursorMC;
& &mc._x = _root._
& &mc._y = _root._
& &this.onMouseMove = function() {
& & mc._x = _root._
& & mc._y = _root._
& &};
&&}
}
//设置自定义光标的使用区域,obj可以是null,也可以是Object {left:*,right:*,top:*,bottom:*}
private function setArea(obj) {
&&if (obj != null) {
& &obj.left = obj.left == null ? 0 : obj.
& &obj.right = obj.right == null ? Stage.width : obj.
& &obj.top = obj.top == null ? 0 : obj.
& &obj.bottom = obj.bottom == null ? Stage.height : obj.
&&}
&&this.areaObj =
}
//设置自定义光标的使用对象MovieClip
private function setTargets(arr) {
&&this.targetArr =
}
//是否显示自定义光标
private function useStyle(use:Boolean) {
&&this.using =
&&if (this.cursorMC != null) {
& &if (use) {
& & this.cursorMC._visible =
& & Mouse.hide();
& &} else {
& & this.cursorMC._visible =
& & Mouse.show();
& &}
&&}
}
//刷新光标
private function refurbish() {
&&var area = this.areaO
&&var arr = this.targetA
&&var condition1 = area != null && _root._xmouse&area.left && _root._xmouse&area.right && _root._ymouse&area.top && _root._ymouse&area.
&&var condition2 =
&&for (var i in arr) {
& &if (arr[i].hitTest(_root._xmouse, _root._ymouse, true)) {
& & condition2 =
& &
& &}
&&}
&&//当光标位于设定区域内或是位于目标MC上时,显示自定义光标,否则显示默认光标
&&if (condition1 || condition2) {
& &this.useStyle(true);
& &this.onMouseMove();
& &updateAfterEvent();
&&} else {
& &this.useStyle(false);
&&}
}
}复制代码
[ 本帖最后由 该闪就闪 于
20:49 编辑 ]
帖子143&积分37&技术分0 &在线时间215 小时&注册时间&
:victory: :lol
帖子112&积分18&技术分0 &在线时间64 小时&注册时间&
帖子3823&积分711&技术分155 &来自大家闪才是真的闪&在线时间1430 小时&注册时间&
恩,谢谢分享~
帖子358&积分68&技术分13 &在线时间113 小时&注册时间&
看到类,头就晕啊.......................
发现大老做个特效,都喜欢写个类,各人都有一套标准,
让初学者还真头痛的
帖子307&积分50&技术分4 &在线时间148 小时&注册时间&
refurbish那里当condition1=false才判断condition2,同时targetArr去掉重合的mc和rect,效率会高些
ps 很奇怪lz为什么不建个不可见的矩形mc放到targetArr里?另外既然instance只能有一个为何不把所有变量和函数定义为静态?
[ 本帖最后由 neutra 于
02:41 编辑 ]
帖子3713&积分635&技术分21 &来自猥琐神教&在线时间2260 小时&注册时间&
帖子3070&积分399&技术分70 &在线时间65 小时&注册时间&
原帖由 neutra 于
02:38 发表
refurbish那里当condition1=false才判断condition2,同时targetArr去掉重合的mc和rect,效率会高些
ps 很奇怪lz为什么不建个不可见的矩形mc放到targetArr里?另外既然instance只能有一个为何不把所有变量和函数 ... 1.效率方面的确有些地方需要改进.
2.很多时候我们只需要在某个矩形区域使用光标,并不需要targetArr,此情况下直接写区域范围比建个MC再取名要方便很多,而且弄个没用的MC出来觉得比较累赘
3.把所有变量和函数设置为静态有什么好处,这个我不清楚,请指教
帖子307&积分50&技术分4 &在线时间148 小时&注册时间&
回复 #8 该闪就闪 的帖子
设置为静态,变量初始化和在setCursor里获取或修改值会方便和直观点
帖子390&积分81&技术分16 &在线时间189 小时&注册时间&
我也写了个类似的,看看。
帖子1670&积分334&技术分88 &来自重庆渝北&在线时间620 小时&注册时间&
向大家学习!
帖子206&积分26&技术分0 &来自魔界&在线时间37 小时&注册时间&
提示: 作者被禁止或删除 内容自动屏蔽
无脚本,不动画。

我要回帖

更多关于 lol瑞文连招 的文章

 

随机推荐