AS3如何在未点击时使对象缩小

时间:2015-01-03 19:46:54

标签: actionscript-3

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

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
    ;

}

非常感谢帮助。

2 个答案:

答案 0 :(得分: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()
    }
}

答案 1 :(得分:0)

根据actionscript reference,您可以使用许多其他触摸事件,例如TouchEvent.TOUCH_OUT或TouchEvent.TOUCH_END。

我还没有使用它们,所以我无法告诉你哪一个会对你有所帮助,但你可以进行一些测试,看看当你从怪物身上移开手指时会发生哪些事件,就像你对鼠标事件一样。

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

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

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

我希望这会有所帮助。