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

    −86

    1. 1
    var file: * = File.userDirectory.resolvePath(CACHE_PATH + hashURL(key));

    На первый взгляд просто немного странный код, но за ним стоит интересная история.
    Человек написавший этот код после долгих расспросов и двузначных ответов таки сознался, что таким образом он надеялся избежать компиляции AIR классов в бразуерном проекте. Но интереснее еще и то, что человек продолжает в это свято верить и отстаивать свою точку зрения... а я уволился.
    Если вы не в курсе, Адоби делают несколько версий плееров, одна "ветка" предназначена для запуска с десктопа и ей можно обращаться к файловой системе, в то время как обычному плееру в браузере такое делать нельзя, ну или только после всяческих подтверждений и т.п. Человек таким образом пытлася написать кеширование загруженных картинок на диск к пользователю. Но тут судьба сыграла злую шутку, он компилировал все эти классы в библиотеку, которую забывал обновлять, и по счастливому стечению обстоятельств, библиотечный класс не содержал никаких упоминаний файловой системы - и все работало замечательно.

    Прогрнозируемый разрыв шаблона произойдет примерно недели через две-три, когда нужно будет обновлять версию. Ну, это конечно при условии, что кеширование каким-то образом будут тестировать, но, скорее всего не будут, и шутка может затянуться.

    wvxvw, 07 Сентября 2012

    Комментарии (24)
  2. ActionScript / Говнокод #11653

    −87

    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
    парсерНЛО.parse(new XML (new ufo1())); //разбираем модель
    			for each (объект3Д in парсерНЛО.objects) {				
    				мешПерсонажа_ = объект3Д as Mesh;
    			}			
    			клипПерсонажа_ = парсерНЛО.animations[0] as AnimationClip;
    			
    			for (i = 0; i < 10; i += 1) {
    				парсерНЛО.parse(new XML (new ufo1())); //разбираем модель
    				for each (объект3Д in парсерНЛО.objects) {				
    					мешПерсонажа[i] = мешПерсонажа_.clone() as Mesh;
    				}
    				мешПерсонажа[i].setMaterialToAllSurfaces(new TextureMaterial (new BitmapTextureResource((new ufo1_text()).bitmapData)));
    				rootContainer.addChild(мешПерсонажа[i]);
    
    							
    				клипПерсонажа[i] = клипПерсонажа_.clone() as AnimationClip;
    				клипПерсонажа[i].attach(мешПерсонажа[i], true);
    				
    				анимПерсонажа[i] = new AnimationClipController;	
    				анимПерсонажа[i].root = клипПерсонажа[i] as AnimationClip;
    				
    
    			}

    А вот как пишут настоящие русские программисты )

    makc3d, 27 Августа 2012

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

    −92

    1. 1
    2. 2
    3. 3
    public function xor(lhs:Boolean, rhs:Boolean):Boolean {
     return !( lhs && rhs ) && ( lhs || rhs );
    }

    Из http://as3snippets.blogspot.com/2010/09/logical-xor.html

    Как известно, в AS3 есть численный оператор XOR ^, а вот для логических значений ^^ нет. Поэтому ребята придумали такую конструкцию (и ещё вариант return Boolean(int(a) ^ int(b)); в комментах), и только через год какой-то чувак догадался что XOR для логических значений всё-таки есть и называется !=

    makc3d, 02 Августа 2012

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

    −111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    lv.onData = function(data:String):Void{
      htmlData = data;
      
      xml.parseXML(htmlData);
      trace(xml.firstChild.lastChild.firstChild.lastChild.lastChild.lastChild.childNodes[1].childNodes[1].childNodes[0]);
      trace(xml.firstChild.lastChild.firstChild.lastChild.lastChild.lastChild.childNodes[1].childNodes[2].childNodes[1].firstChild);
    }

    С демиарта.

    kyzi007, 29 Июля 2012

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

    −109

    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
    // код в модели - создаются фильтры для колонок
    override protected function createFiltersData():IList
      {
       var filtersDescription:IList = new ArrayList();
       filtersDescription.addItem(new StatusFilter());
       filtersDescription.addItem(new ProdUIDFilter());
       filtersDescription.addItem(new ProdLongNameFilter());
       filtersDescription.addItem(new ProductTypeFilter());
       filtersDescription.addItem(new LatestRecordFilter());
       
       filtersDescription.addItem(new LastActionFilter(true));
       filtersDescription.addItem(new UsersFilter(this.userModel.users, true));
       filtersDescription.addItem(new PublishFilter(true));
       filtersDescription.addItem(new ProdNameFilter(true));
       filtersDescription.addItem(new ProductComplexityRatingFilter(true));
       filtersDescription.addItem(new ProductDescriptionFilter(true));
       return filtersDescription;
      }
    
    // код в контроллере - создаются сами колонки
    override protected function createTableColumns () : Array
      {
       var columns : Array = new Array();
       columns.push(new ProdUIDColumn(0));
       columns.push(new ProdLongNameColumn(1));
       columns.push(new ProdNameColumn(2));
       columns.push(new ProductDescriptionColumn(8));
       columns.push(new ProdTypeColumn(3));
       columns.push(new ProdComplRatingColumn(4));
       columns.push(new EditorSeparator(40, 5));
       columns.push(new CommentsColumn(9));
       columns.push(new ValidStartDateColumn(6));
       columns.push(new ValidEndDateColumn(7));
       columns.push(new LastActionColumn());
       columns.push(new UserColumn());
       columns.push(new LastActionDateColumn());
       columns.push(new LatestRecordColumn());
       columns.push(new StatusColumn());
       columns.push(new PublishColumn());
       return columns;
      }

    Со слезами в глазах вопрошаю - ну нахуя, а????

    kyzi007, 28 Июля 2012

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

    −114

    1. 1
    2. 2
    3. 3
    this.editable = true;
    this.itemEditor = new ClassFactory(UIDEditor);
    this.disableInEdit = true;

    Чудесное сочетание значений при котором мы не можем редактировать запись но при этом видеть в окошке редактирования...
    Это только два месяца разработки, интересно, костыли какой кудрявости я увижу через год?

    kyzi007, 20 Июля 2012

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

    −155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    override public function execute():void
    {
    	var maintainProductAttributePresenter:ITableBasedPresentrer = this.appPresenter.maintainProductAttributePresenter;
    	var maintainProductAttributeView:View = maintainProductAttributePresenter.view;
    
    	this.appView.showModuleView(maintainProductAttributeView);
    	this.appView.showModuleHeader(maintainProductAttributePresenter.getModuleTitle());
    
    	maintainProductAttributePresenter.updateData();
    }

    Сижу, копипазжу... Специально не стала выбиваться из стандарта... Может хоть на секунду мысль о том что мы занимаемся маразмом кому нибудь в голову придет?

    kyzi007, 25 Июня 2012

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

    −167

    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
    public function getFiltersDescription () : IList
    {
    	var model : ITableBasedModuleModel = this.getTableBasedModel();
    	return model.filtersDescription;
    }
    
    public function getModuleTitle () : String
    {
    	var model : ITableBasedModuleModel = this.getTableBasedModel();
    	return model.getTitle();
    }
    
    //....
    private function getTableBasedModel () : ITableBasedModuleModel
    {
    	return this.model as ITableBasedModuleModel;
    }
    
    private function getTableBasedView () : ITableBasedModuleView
    {
    	return this.view as ITableBasedModuleView;
    }

    Java ооп головного мозга.

    kyzi007, 19 Июня 2012

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

    −147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function myfunc(e:Event):void
    {
      kolobok.x+=pathX;
      kolobok.y+=pathY;
      if(kolobok.x==25&&kolobok.y==25) {pathX=10;pathY=0;}
      if(kolobok.x==475&&kolobok.y==25) {pathX=0;pathY=10;}
      if(kolobok.x==475&&kolobok.y==475) {pathX=-10;pathY=0;}
      if(kolobok.x==25&&kolobok.y==475) {pathX=0;pathY=-10;}
    }

    Помогите разобраться с циклом, вообще колобок, делает круг вокруг формы, а после он должен опять делать круг но он почему то уходит, я не пойму почему..

    kyzi007, 11 Июня 2012

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

    −153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var regs:Array;
    				if ( USE_NEW_SYNTAX )
    					regs = line.match( /vc\[([vif][acost]?)(\d*)?(\.[xyzwrgba](\+\d{1,3})?)?\](\.[xyzwrgba]{1,4})?|([vif][acost]?)(\d*)?(\.[xyzwrgba]{1,4})?/gi );
    				else
    					regs = line.match( /vc\[([vof][actps]?)(\d*)?(\.[xyzwrgba](\+\d{1,3})?)?\](\.[xyzwrgba]{1,4})?|([vof][actps]?)(\d*)?(\.[xyzwrgba]{1,4})?/gi );

    игра найди 10 отличий от Adobe :)

    makc3d, 23 Мая 2012

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