几秒钟不触摸屏幕就闪烁精灵如何实现?

我的初步想法是在layer的update事件里用个标志变量判断是否有触摸,没有触摸就记录开始时间,然后在update判断时间流逝了多久,如果时间达到几秒钟,就进行闪烁。不过好像这样做会报错。不知道大家有什么好方法?另外,这个update方法中的参数dt具体是指的什么?我查了一下没找到。

先谢谢了。

void

Layer::
update(float

dt){
if
(
IsMoving ==
false
&&
HintsShowed ==
false
&&
dtHintsStart ==
0)
{

 dtHintsStart =

dt;
}
if
(
IsMoving ==
true)
{

 HintsShowed =

true;
}
if
(
dt

dtHintsStart >=
0.01
&&
HintsShowed ==
false)
{

  CCLOG(

“HintsShowd.”);

  auto

blink

Blink::
create(1.0f,
3);

     for

(itVector

cellHints.
begin();
itVector
!=
cellHints.
end();
itVector++)
{

       CellSprite*

cell

(
CellSprite*)*itVector;

       cell->

m_Sprite->
runAction(blink);

     }

  HintsShowed =

true;

  dtHintsStart =

0;
}
}

假设10秒不触屏有动画, 一进这个界面 启动一个10s后执行的定时器, 当有触屏回调时 终止这个定时器 并再次重新启动

— Begin quote from ____

引用第1楼ColaZhang于2015-05-12 19:18发表的 :
假设10秒不触屏有动画, 一进这个界面 启动一个10s后执行的定时器, 当有触屏回调时 终止这个定时器 并再次重新启动 http://www.cocoachina.com/bbs/job.php?action=topost&tid=300344&pid=1305741

— End quote

谢谢回复。“当有触屏回调时”,这个不太理解,不知如何实现。

注册触屏监听方法 啊 方法调用了就说明有触屏

— Begin quote from ____

引用第3楼ColaZhang于2015-05-12 21:09发表的 :
注册触屏监听方法 啊 方法调用了就说明有触屏 http://www.cocoachina.com/bbs/job.php?action=topost&tid=300344&pid=1305786

— End quote

明白了。我按你的方法实现了功能,但是仍然会报错,在blink停止的时候报错,这时_target是空的,但我明明blink的对象明明有值的。不知道是怎么回事。

void

Blink::
stop()
{

_target->

setVisible(
_originalState); --这句报错。

ActionInterval::
stop();
}

— Begin quote from ____

引用第4楼catthunder于2015-05-12 21:36发表的 :

明白了。我按你的方法实现了功能,但是仍然会报错,在blink停止的时候报错,这时_target是空的,但我明明blink的对象明明有值的。不知道是怎么回事。

http://www.cocoachina.com/bbs/job.php?action=topost&tid=300344&pid=1305800

— End quote

我知道怎么回事了,我的blink对象被销毁了。