1. ActionScript / Говнокод #1861

    −90.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    function getActiveRoot():int
    {
    	for(var c:int=0;c<i;c++) if(r_arr[c].isActive) return c;
    	return -1;
    }
    
    
    
    
    
    public function addEntry():void
    {
    	if(getActiveRoot()<0)
    	{
    		r_arr.push(new Roots(i,in_txt.text,""));
    		r_arr[i].addEventListener(MouseEvent.MOUSE_DOWN, downHandler);
    		r_arr[i].addEventListener(MouseEvent.MOUSE_UP, upHandler);
    				
    		addChild(r_arr[i++]);
    	}
    	else
    	{
    	        r_arr[getActiveRoot()].w_arr.push(new Words(getActiveRoot(),r_arr[getActiveRoot()].wi,in_txt.text,""));
    		r_arr[getActiveRoot()].w_arr[r_arr[getActiveRoot()].wi].addEventListener(MouseEvent.MOUSE_DOWN, WdownHandler);
    		r_arr[getActiveRoot()].w_arr[r_arr[getActiveRoot()].wi].addEventListener(MouseEvent.MOUSE_UP, WupHandler);
    				
    		var ls:Shape=new Shape();
    		ls.graphics.lineStyle(1, 0xFF0000,0.2);
    		ls.graphics.moveTo(r_arr[getActiveRoot()].x,r_arr[getActiveRoot()].y);
    	        ls.graphics.lineTo(r_arr[getActiveRoot()].w_arr[r_arr[getActiveRoot()].wi].x,r_arr[getActiveRoot()].w_arr[r_arr[getActiveRoot()].wi].y);
    		addChildAt(ls,++wd);
    		addChildAt(r_arr[getActiveRoot()].w_arr[r_arr[getActiveRoot()].wi++],++wd);
    	}
    }

    Ой. А давайте проц погоняем! Чтоб не скучал. Отовсюду будем запускать getActiveRoot() чтобы узнать индекс! Ха-ха-ха..

    Запостил: t8apb, 17 Сентября 2009

    Комментарии (6) RSS

    • Да-да. На самом деле, я постю все это вместо бэкапа. Вдруг по-нормальному внезапно не заработает! %-.).
      Ответить
    • правильно чувак делает, чтоб зарплату подняли, или бобла дали, чтобы стало по быстрее работать!
      Ответить
    • Это тупой copy/paste, у автора во время написания ничего кроме ctrl-c/ctrl-v в голове не было.
      Ответить
    • Я, кажется, понимаю, о чём думал автор кода.
      Фаулер был не против такого подхода, когда это не понижало читабельность кода. Сперва пишется работающая модель, а потом с профайлером наперевес программист приступает к оптимизации, в данном случае путём введения локальной переменной с однократным вычислением.
      Но по-моему, в данном случае читабельность всё же хромает, по-сравнению с локальной переменной activeRoot
      Ответить
    • if(getActiveRoot()<0)
      неверная проверка. а если getActiveRoot() возвратит 0 (для первого элемента масива)...
      Ответить
      • ой. извиняюсь... я прочел так: if(getActiveRoot()>0)
        Ответить

    Добавить комментарий