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)
  2. ActionScript / Говнокод #1860

    −91.2

    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
    function upHandler(event:MouseEvent):void 
    {
            //r_arr[event.currentTarget.index].stopDrag();
    				
    	event.currentTarget.stopDrag();
    				
            //r_arr[event.currentTarget.index].removeChildAt(2);
    
    	if((r_arr[event.currentTarget.index].x>550)||(r_arr[event.currentTarget.index].x<160)||(r_arr[event.currentTarget.index].y>400)||(r_arr[event.currentTarget.index].y<0))
    	{
    	        r_arr[event.currentTarget.index].x=546;
    		r_arr[event.currentTarget.index].y=(r_arr[event.currentTarget.index].index+1)*30;
    	}
    }

    Сама семантика малопримечательна. Вся соль в способе адресации к объекту массива r_arr при совершении события мыши прямо над этим же объектом. Методы и свойства объекта достаются через ***у по индексу из-за пазухи: r_arr[event.currentTarget.index].removeChildAt(2)
    вместо достаточного: event.currentTarget.removeChildAt(2)

    t8apb, 17 Сентября 2009

    Комментарии (1)
  3. ActionScript / Говнокод #1720

    −97.5

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    //-------------------РИСОВАНИЕ и МАТЕМАТИКА--------------------------------
    //Рендерить сцену
    _root.onEnterFrame = render;
    
    //Функция отрисовки текущего положения
    function render()
    {
    	if (enable_anim)		//Рисовать только ЕСЛИ разрешена анимация, т.е. файл загружен
    	{
    		empty.clear();		//Очистка области для рисования
    		for (obj in arr_m)	//Пройтись по всем элементам кинематической схемы
    		{
    			switch(arr_m[obj].type){
    				case "crank":  /*type="0" l="50" angle="0" s0="2" s1="1"*/
    					//Кривошип
    					//trace(arr_m[obj].type);
    					//trace(arr_m[obj].num + " " + arr_m[obj].angle);
    					empty["arr_o"+arr_m[obj].s1]._x = empty["arr_o"+arr_m[obj].s0]._x +arr_m[obj].l*Math.cos(arr_m[obj].angle*k);
    					empty["arr_o"+arr_m[obj].s1]._y = empty["arr_o"+arr_m[obj].s0]._y +arr_m[obj].l*Math.sin(arr_m[obj].angle*k);
    					
    					if (enable_dv) //------------------------Движение звена разрешено-------
    					{
    						arr_m[obj].angle += 0.3; 
    						if (arr_m[obj].angle >= 360)
    						{ 
    							arr_m[obj].angle = 0;
    						}
    					}
    						
    					//Невидимка
    					if(arr_m[obj].hidden) continue;					
    					empty.lineStyle(2,0x404040);					empty.moveTo(empty["arr_o"+arr_m[obj].s0]._x,empty["arr_o"+arr_m[obj].s0]._y);
    					empty.lineTo(empty["arr_o"+arr_m[obj].s1]._x,empty["arr_o"+arr_m[obj].s1]._y);
    				break;
    				case "1":  /*type="1" l1="100" l2="100" s0="2" s1="3" s2="4"*/
    					//шатун + коромысло
    					//trace(arr_m[obj].type);
    					
    					var x0 = empty["arr_o"+arr_m[obj].s0]._x;
    					var y0 = empty["arr_o"+arr_m[obj].s0]._y;
    					var x1 = empty["arr_o"+arr_m[obj].s1]._x;
    					var y1 = empty["arr_o"+arr_m[obj].s1]._y;
    					
    					var r = distance(x0, y0, x1, y1);
    					var a0 = Math.acos((Math.pow(arr_m[obj].l1,2) + Math.pow(r,2) - Math.pow(arr_m[obj].l2,2))/(2*arr_m[obj].l1*r));
    					var a1 = get_angle(x0, y0, x1, y1); 
    					
    					var x2 = x0 + arr_m[obj].l1 * Math.cos(a1 - a0);
    					var y2 = y0 + arr_m[obj].l1 * Math.sin(a1 - a0);
    					//trace(a1/k);
    					
    					empty["arr_o"+arr_m[obj].s2]._x = x2;
    					empty["arr_o"+arr_m[obj].s2]._y = y2;
    					
    					//Невидимка
    					if(arr_m[obj].hidden) continue;
    					
    					empty.lineStyle(2,0x404040);
    					empty.moveTo(x0,y0);
    					empty.lineTo(x2,y2);
    					empty.lineTo(x1,y1);					
    				break;
    //... Тут еще очень много таких кейсов
    		}
    	}
    }

    Давненько писал на симулятор механический, это функция апдейта всех элементов.
    Что в остальном коде, догадаться несложно.

    Werdn, 29 Августа 2009

    Комментарии (0)
  4. ActionScript / Говнокод #1569

    −132.6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public function showNotAvailableAlert(str:String):void
    {
    	var defString:String = str = "Connection with server is lost. Unfortunately you can not continue now. Please try later.";
    	if(str)
    	{
    		Alert.show(str, "Not connected to server");
    	}
    	else
    	{
    		Alert.show(defString, "Not connected to server");
    	}
    }

    Kuros, 13 Августа 2009

    Комментарии (7)
  5. ActionScript / Говнокод #1560

    −129.7

    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
    // method that break down the application
    public function hide():void
    {
    	try
    	{
    		removeMenu();
    		TextField(txtTitle).text = '';
    		// WTF place - this setter raise error
    		TextArea(txt).htmlText = '';
    	} catch (e:Error) {
    		// russians are not surrender!
    		// catch error and call them recursively
    		trace(e);
    		hide();
    	}
    }

    Затыкание метода, выбрасывающего трудноуловимый эсксепшн

    remoteobject, 12 Августа 2009

    Комментарии (5)
  6. ActionScript / Говнокод #1446

    −94

    1. 1
    c == __SectorsTotal ? __IsDepleted = true : __IsDepleted = false;

    guest, 31 Июля 2009

    Комментарии (0)
  7. ActionScript / Говнокод #1225

    −275

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static function isWrongName(src:String):Boolean
    {
    	if(src){
    		src = src.toLowerCase();
    		if (hasWrongChars(src)) return false;
    		return true;
    	}
    	return false;
    }

    guest, 19 Июня 2009

    Комментарии (7)
  8. ActionScript / Говнокод #1222

    −275.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // обрабатываем obj
    
    var id = obj.icon;
    if (id == -1) id = 1;
    if (id == "undefined") id = undefined;
    if (id == undefined && obj.uid == undefined) id = obj;
    if ("" + id == "0") id = "image:" + obj.uid;
    if (id == undefined) id = 1;
    if (id.split(":").shift() == "image") {
      ...
    }

    Обрабатывается obj (строка, объект или число), в результате получаем нечто.

    guest, 18 Июня 2009

    Комментарии (0)
  9. ActionScript / Говнокод #1150

    −98

    1. 1
    if (!EventManager.getInstance().hasEventListener("START_NEW_LEVEL")) EventManager.getInstance().addEventListener("START_NEW_LEVEL", preCreateLevel);

    guest, 04 Июня 2009

    Комментарии (6)
  10. ActionScript / Говнокод #1147

    −334.1

    1. 1
    2. 2
    3. 3
    if (scrollBar != null && scrollBar != null) {
    .....
    }

    Случайно нашел у себя в коде. Видать, после рефактора.
    "Я хочу быть твердо уверен!"

    guest, 04 Июня 2009

    Комментарии (4)