2015-01-03 48 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。你沒有提供任何幫助他實現他所要求的幫助。 –