技能冷却,翻译成设计时的语言就是:在一定时间内不断地使得某技能不可被使用,使技能不可使用的案例为数字君的沉默技能辅助,具体代码在本段下方,效果为禁用SJ。
$attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
不断使技能不可被使用,也就是使得禁用技能的代码在一段时间内不断地触发,这个效果可以通过在A、B点间每帧都写上禁用技能的代码来实现,当然也有简化写法,称为侦听器写法,需要用到帧频事件,简单的实例附在本段下方,效果为从A点到B点持续执行大括号内的代码(实例内为执行trace("ABCD"))。
//A点处
addEventListener(Event.ENTER_FRAME,侦听器的名称);
function 侦听器的名称(e:Event):void
{
trace("ABCD");
}
//B点处
removeEventListener(Event.ENTER_FRAME,侦听器的名称);
将这两者结合起来就是我们所需要的『技能冷却』了,下面是最终成果,各语句的意义可参考其中的注释。
//A点处
//实现$attacker_ctrler接口
var $attacker_ctrler:*;
function setAttackerCtrler(attackerCtrler:*):void
{
$attacker_ctrler = attackerCtrler;
}
//添加侦听器
addEventListener(Event.ENTER_FRAME,skill1Ban);
//侦听器的内容
function skill1Ban(e:Event):void
{
//禁用砍技1(SJ)
$attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
}
//B点处
//删除侦听器
removeEventListener(Event.ENTER_FRAME,skill1Ban);
//如果主人物在结束禁用时,处于站立状态,则需要下方的代码来手动更新技能状态
if ($attacker_ctrler.owner_fighter_ctrler.self.mc.currentLabel == "站立")
{
//设置砍技1(SJ)的纽带
$attacker_ctrler.owner_mc_ctrler.setSkill1();
}
$attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
不断使技能不可被使用,也就是使得禁用技能的代码在一段时间内不断地触发,这个效果可以通过在A、B点间每帧都写上禁用技能的代码来实现,当然也有简化写法,称为侦听器写法,需要用到帧频事件,简单的实例附在本段下方,效果为从A点到B点持续执行大括号内的代码(实例内为执行trace("ABCD"))。
//A点处
addEventListener(Event.ENTER_FRAME,侦听器的名称);
function 侦听器的名称(e:Event):void
{
trace("ABCD");
}
//B点处
removeEventListener(Event.ENTER_FRAME,侦听器的名称);
将这两者结合起来就是我们所需要的『技能冷却』了,下面是最终成果,各语句的意义可参考其中的注释。
//A点处
//实现$attacker_ctrler接口
var $attacker_ctrler:*;
function setAttackerCtrler(attackerCtrler:*):void
{
$attacker_ctrler = attackerCtrler;
}
//添加侦听器
addEventListener(Event.ENTER_FRAME,skill1Ban);
//侦听器的内容
function skill1Ban(e:Event):void
{
//禁用砍技1(SJ)
$attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
}
//B点处
//删除侦听器
removeEventListener(Event.ENTER_FRAME,skill1Ban);
//如果主人物在结束禁用时,处于站立状态,则需要下方的代码来手动更新技能状态
if ($attacker_ctrler.owner_fighter_ctrler.self.mc.currentLabel == "站立")
{
//设置砍技1(SJ)的纽带
$attacker_ctrler.owner_mc_ctrler.setSkill1();
}