- 1
var file: * = File.userDirectory.resolvePath(CACHE_PATH + hashURL(key));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−86
var file: * = File.userDirectory.resolvePath(CACHE_PATH + hashURL(key));
На первый взгляд просто немного странный код, но за ним стоит интересная история.
Человек написавший этот код после долгих расспросов и двузначных ответов таки сознался, что таким образом он надеялся избежать компиляции AIR классов в бразуерном проекте. Но интереснее еще и то, что человек продолжает в это свято верить и отстаивать свою точку зрения... а я уволился.
Если вы не в курсе, Адоби делают несколько версий плееров, одна "ветка" предназначена для запуска с десктопа и ей можно обращаться к файловой системе, в то время как обычному плееру в браузере такое делать нельзя, ну или только после всяческих подтверждений и т.п. Человек таким образом пытлася написать кеширование загруженных картинок на диск к пользователю. Но тут судьба сыграла злую шутку, он компилировал все эти классы в библиотеку, которую забывал обновлять, и по счастливому стечению обстоятельств, библиотечный класс не содержал никаких упоминаний файловой системы - и все работало замечательно.
Прогрнозируемый разрыв шаблона произойдет примерно недели через две-три, когда нужно будет обновлять версию. Ну, это конечно при условии, что кеширование каким-то образом будут тестировать, но, скорее всего не будут, и шутка может затянуться.
−87
парсерНЛО.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;
}
А вот как пишут настоящие русские программисты )
−92
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 для логических значений всё-таки есть и называется !=
−111
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);
}
С демиарта.
−109
// код в модели - создаются фильтры для колонок
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;
}
Со слезами в глазах вопрошаю - ну нахуя, а????
−114
this.editable = true;
this.itemEditor = new ClassFactory(UIDEditor);
this.disableInEdit = true;
Чудесное сочетание значений при котором мы не можем редактировать запись но при этом видеть в окошке редактирования...
Это только два месяца разработки, интересно, костыли какой кудрявости я увижу через год?
−155
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();
}
Сижу, копипазжу... Специально не стала выбиваться из стандарта... Может хоть на секунду мысль о том что мы занимаемся маразмом кому нибудь в голову придет?
−167
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 ооп головного мозга.
−147
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;}
}
Помогите разобраться с циклом, вообще колобок, делает круг вокруг формы, а после он должен опять делать круг но он почему то уходит, я не пойму почему..
−153
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 :)