AS3 如何在不点击时使对象收缩
AS3 How to make an object shrink when it is not tapped
我偶然发现了一个我似乎不知道如何解决的问题。我已经在网上搜索过,但没有找到答案。就是当你点击屏幕上的怪物时它会变大,但是当你不点击它时 returns 到它的默认大小。我已经设法让它在轻敲时变大,但我似乎做不到,所以当你松开水龙头时它会收缩。我正在谈论的一个例子是 cookie clicker,当你点击大 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
;
}
将不胜感激。
如何将所有怪物存储在一个数组中?
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()
}
}
根据actionscript reference,还有很多其他触摸事件可以使用,例如TouchEvent.TOUCH_OUT或TouchEvent.TOUCH_END。
我没有使用过它们,所以我不能告诉你哪个对你有帮助,但你可以 运行 进行一些测试,看看当你将手指从怪物,就像你处理鼠标事件一样。
所以基本上你会为发布 touchevent 添加另一个侦听器(最好在 fl_TapHandler 函数内)并将怪物变量恢复到正常水平。
如果你想拥有多个怪物,最好的办法是为它创建一个class并调用这个class中的函数。示例:
Monster.addEventListener(TouchEvent.TOUCH_TAP, Monster.fl_TapHandler);
希望对您有所帮助。
我偶然发现了一个我似乎不知道如何解决的问题。我已经在网上搜索过,但没有找到答案。就是当你点击屏幕上的怪物时它会变大,但是当你不点击它时 returns 到它的默认大小。我已经设法让它在轻敲时变大,但我似乎做不到,所以当你松开水龙头时它会收缩。我正在谈论的一个例子是 cookie clicker,当你点击大 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
;
}
将不胜感激。
如何将所有怪物存储在一个数组中?
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()
}
}
根据actionscript reference,还有很多其他触摸事件可以使用,例如TouchEvent.TOUCH_OUT或TouchEvent.TOUCH_END。
我没有使用过它们,所以我不能告诉你哪个对你有帮助,但你可以 运行 进行一些测试,看看当你将手指从怪物,就像你处理鼠标事件一样。
所以基本上你会为发布 touchevent 添加另一个侦听器(最好在 fl_TapHandler 函数内)并将怪物变量恢复到正常水平。
如果你想拥有多个怪物,最好的办法是为它创建一个class并调用这个class中的函数。示例:
Monster.addEventListener(TouchEvent.TOUCH_TAP, Monster.fl_TapHandler);
希望对您有所帮助。