2015-01-03 21 views
0

我偶然发现了一个似乎并不知道如何解决的问题。我在网上搜索了它,但没有找到答案。当你点击屏幕上的怪物时,它会增长,但是当你不点击时它会恢复到默认大小。我已经设法使它在挖掘时增长,但我似乎无法做到这一点,所以当你释放水龙头时,它会缩小。我谈论的一个例子就是cookie单击器,当你点击它增长的大饼干时,但是当你不这样做时,它就会变成它的原始大小。这里是我的代码到目前为止:AS3如何使物体在未被挖掘时收缩

var score:Number = 0; 
var score_str:String; 
var score_str_len:int; 

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

Monster.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler); 

Monster.width = 363.5; 
Monster.height = 344.9; 

function fl_TapHandler(event:TouchEvent):void 
{ 
    Monster.width = 378.4; 
    Monster.height = 359; 

    score = score + 1; 

    score_str = score.toString(); 
    score_str_len = score_str.length; 

    Taps_txt.text = 
     score_str_len > 3 

     ? score_str.substr(0, score_str_len-3) + ',' + score_str.substr(score_str_len-3) 
     : score_str 
    ; 

} 

帮助将不胜感激。

回答

0

按照actionscript reference,还有很多其他触摸事件,你可以使用,如TouchEvent.TOUCH_OUT或TouchEvent.TOUCH_END的。

我没有使用过他们,所以我不能告诉你哪一个将是有益的给你,但你可以运行一些测试,看看哪些事件的,当你从怪物松开手指被激发,就像你会使用鼠标事件。

所以基本上你会添加另一个侦听器(最好是在fl_TapHandler函数中)释放touchevent,并将怪物变量恢复到正常水平。

如果你想拥有多个怪物,最好的方法是为它创建一个类并调用这个类中的函数。例:

Monster.addEventListener(TouchEvent.TOUCH_TAP, Monster.fl_TapHandler); 

我希望这有助于。

0

如何将所有怪物存储在数组中?

var monsters:Vector.<Monster> = new Vector.<Monster>(); 
monsters.push(new Monster()); 
monsters.push(new Monster()); 
monsters.push(new Monster()); 

for(var monster : monsters) { 
    if(monster.isTapped){ 
     monster.grow() 
    } else { 
     monster.shrink() 
    } 
} 
+0

对不起,但因为我只是刚开始as3我不明白。请你简化它。 – user3406023

+0

@ user3406023在这种情况下,最好学习一些OOP(面向对象编程)。 – Iggy

+0

我无法看到答案如何帮助OP。你没有提供任何帮助他实现他所要求的帮助。 –