2011-04-30 60 views
0

我第一次使用andengine for android。我創建了一個簡單的文本列表,只需要能夠調用相同的方法,但根據列表中的位置發送不同的變量即可。該列表不需要滾動並且很短。我決定使用簡單的文本並創建一個for循環,以便從字符串數組中爲我創建它們。AndEngine和Android:OnArea在for循環中保持不變唯一

循環工作並正確創建文本,但觸摸時,它們都執行最後一次觸摸賦值而不是相應的賦值。

onAreaTouched代碼是否需要引用,或者是否保存在某些位置,一旦觸摸區域被註冊。

那就是:

for(x =1; x<base.locale.length;x++){ 
       textLoc[x-1]=new Text(10,(110+(x*30)),base.getmFont(), 
             base.locale[x],HorizontalAlign.CENTER){ 
        @Override 
        public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { 

         base.moveListen(Integer.toString(x)); 
       loadNewScene(); 
         return true; 
        } 

       }; 

       scene.getLastChild().attachChild(textLoc[x]); 
       scene.registerTouchArea(textLoc[x]); 

      } 

回答

0

這是否代碼編譯?如在此行中:

base.moveListen(Integer.toString(x));

您正在引用非最終循環變量x。