Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Идиотизмы

Даже в определениях идиотизма встречается идиотизм.
Цитата:
Идиотизм — устаревшее название идиомы
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
идиотизм
Аватар для BlooDHounD
стервочка (я мужик)

Кто не успел - тот опоздал

Запись от BlooDHounD размещена 19.04.2011 в 14:09
Обновил(-а) BlooDHounD 19.04.2011 в 14:23
для понимания материала необходимы следующие знания:
getTimer


давно ничего не писал. сейчас буду ругать таймеры.

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

со временем мы начали получать репорты о том, что у некоторых пользователей после десяти минут в игре действия ...
Старый
 
Размещено в идиотизм , ActionScript , bug , avm
Комментарии 22 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Загадочный CommaExpression

Запись от BlooDHounD размещена 06.09.2010 в 14:16
Обновил(-а) BlooDHounD 07.09.2010 в 00:17
как-то я проводил с пользой "день свободы от забот", помогая ребятам из realaxy в создании их творения, за что они благоухают ко мне ненавистью.
изучая поддержку CommaExpression в их редакторе, я обнаружил, что в самом компиляторе проблем с поддержкой данной конструкции тоже хватает.

для начала расскажу как и где может применяться CommaExpression.

самое распространённое применение он обрёл конечно же в объявлении переменных:
Код AS3:
var i:int = 5, j:int = 2;
...
Старый
 
Размещено в bug , compiler , avm , идиотизм , ActionScript
Комментарии 8 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: кэширование? да ну его!

Запись от BlooDHounD размещена 02.07.2010 в 05:00
вот мне интересно как так устроенно AS3 API, что оно так странно работает?

напрмиер чудесным образом заоптимизированное удаление детей, или странно работающий инкримент.

на ряду с этим у нас есть 2 метода:
getDefinitionByName
getClassByAlias

объясните мне идиоту, почему приходится писать обёртки для этих методов? что в них такого страшного происходит, что приходится делать локальные хэши?
в результате через такой метод всё работает ...
Старый
  Комментарии 6 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)
Рейтинг: 5.00. Голосов: 2.

Идиотизмы: не ByteArray а мусорка

Запись от BlooDHounD размещена 29.06.2010 в 02:07
Обновил(-а) BlooDHounD 02.07.2010 в 05:06
для понимания материала необходимы следующие знания:
flash.utils.ByteArray


сижу я, значит, пишу обновлении для своей крипто-библиотеки, и случайно вывожу на экран 2 результата от 2 запусков PNGEncoder.
первый вариант 100% совпадает с оригиналом, а второй был слегка искажён. я сперва не сообразил, что произошло, а потом пришёл в состояние шока. решил добавить ещё парочку результатов, и получил, ещё более искажённые результаты.

Название: Безымянный.jpg
Просмотров: 5825

Размер: 28.7 Кб
...
Старый
 
Размещено в ActionScript , bug , ByteArray , avm , идиотизм
Комментарии 31 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: с чем готовить haXe для флэш-гурмана?

Запись от BlooDHounD размещена 15.06.2010 в 05:03
Обновил(-а) BlooDHounD 15.06.2010 в 09:59
для понимания материала необходимы следующие знания:
haXe


haXe по свей идеологии остался на уровне AS2. хотя он и умеет компилировать в AVM2-байткод, до AS3 ему ещё очень далеко:
  • отсутствие namespace'ов
  • отсутствие internal в каком либо виде
  • отсутствие private как сущности: всё является protected
  • отсутствие констант
кроме недостатков самого языка есть более важные минусы:
  • после компиляции напрочь исчезают private и становятся public
  • отсутвие нативных getter/seeter
...
Старый
  Комментарии 4 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: с миру по нотке

Запись от BlooDHounD размещена 08.06.2010 в 02:39
Обновил(-а) iNils 08.06.2010 в 02:45
не секрет, что в AS есть различные недокументированные багафичи.

например у класса Object есть такие вот методы:
Код AS3:
protected static function _dontEnumPrototype(proto:Object):void;
protected static function _setPropertyIsEnumerable(o:*, V:String, enumerable:Boolean):void;
static function init():*;
а как обнаружил недавно Дениска ( etcs.ru ), если, попытаться объявить метод $construct у наследников DisplayObject, то получим следующие ошибки:
Код:
1021: Повторное определение функции.
...
Старый
  Комментарии 16 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: Metadata у Stage

Запись от BlooDHounD размещена 08.06.2010 в 02:09
Обновил(-а) iNils 09.06.2010 в 13:26
для понимания материала необходимы следующие знания:
Metadata
flash.utils.describeType


у себя в проектах, я довольно часто использую метаданные.

в AS есть зарезервированный метатэг [Exclude], который скрывает указанную сущность в инспекторе билдера, и иногда в подсказках к коду. тэг должен применяться к классу. множество примеров можно обнаружить во Flex-фрэймворке. но этот метатэг применим не только для флекса, но и к обычным pure-as3 проектам.
...
Старый
 
Размещено в bug , xml , идиотизм , ActionScript
Комментарии 0 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: мнемоники в XML

Запись от BlooDHounD размещена 08.06.2010 в 01:45
Обновил(-а) BlooDHounD 02.07.2010 в 05:07
для понимания материала необходимы следующие знания:
XML
Мнемоники


все знают, что у нас XML неправильный?
Код AS3:
var node:XML = <node />;
node.appendChild( '<>&"' );
node.@prop = '<>&"';
в результате в теле не будет заменена " ( кавычка ), а в атрибуте как есть останется >.
на такое поведение ругнётся практически любой валидатор. почему спец символы не всегда заменяются на мнемоники, для меня загадка...
главный ...
Старый
 
Размещено в идиотизм , ActionScript , bug , xml , avm
Комментарии 0 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: brackets vs dot

Запись от BlooDHounD размещена 08.06.2010 в 01:05
Обновил(-а) BlooDHounD 02.07.2010 в 05:07 (криво назвал)
как-то давно я просматривал исходники флекса и не врубался почему они используют [ ] ( brackets ) для доступа к свойствам ко многим объектами. хотя сама адоба вроде как рекомендует юзать . ( dot ). так вот недавно я ощутил на себе парадокс ситуации.
понадобилось мне написать такой вот код:
Код AS3:
var LoaderConfig:Class = ApplicationDomain.currentDomain.getDefinition( 'mx.messaging.config::LoaderConfig' ) as Class;
var parameters:Object = ( LoaderConfig ? LoaderConfig.parameters : null );
удивиться ...
Старый
 
Размещено в ActionScript , bug , compiler , avm , идиотизм
Комментарии 0 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)
Рейтинг: 5.00. Голосов: 2.

Идиотизмы: множественный addedToStage.

Запись от BlooDHounD размещена 07.06.2010 в 20:58
для понимания материала необходимы следующие знания:
flash.display.DisplayObject


множественный addedToStage... Вы думаете, что addedToStage срабатывает единожды? как бы не так!
давайте составим цепочку, в которой где в хэдлере на addedToStage будем создавать спрайт и ложить в только что добавленный спрайт (target).
Код AS3:
package {
 
    import flash.display.Sprite;
    import flash.events.Event;
 
    public class test extends Sprite {
...
Старый
 
Размещено в идиотизм , ActionScript , bug , display
Комментарии 7 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)
Рейтинг: 5.00. Голосов: 2.

Идиотизмы: кто мой папа?

Запись от BlooDHounD размещена 07.06.2010 в 20:36
для понимания материала необходимы следующие знания:
flash.text.TextField
flash.display.SimpleButton


вспомни цепочку наследования класса TextField:
TextField ► InteractiveObject ► DisplayObject ► EventDispatcher ► Object

так вот это враньё.
на самом деле там пропущен DisplayObjectContainer.

рассмотрим на примере:
Код AS3:
package { 
 
    import flash.display.Sprite;
    import flash.events.Event;
    import
...
Старый
  Комментарии 1 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: загрузка данных.

Запись от BlooDHounD размещена 07.06.2010 в 19:26
Обновил(-а) BlooDHounD 08.06.2010 в 01:10 (table)
для понимания материала необходимы следующие знания:
flash.display.Loader
flash.media.Sound
flash.net.URLLoader
flash.net.URLStream
flash.net.FileReference


все обязательно писали прелоадеры для различных этапов работы приложения. никто не обращал внимания на предоставленные интерфейсы для загрузки контента?
задача, делать прелоадер, который может отображать процесс загрузки любого ресурса. а таких у нас имеется аж 5:
  1. Loader
  2. Sound
  3. URLLoader
...
Старый
  Комментарии 10 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: как лишить родительских прав?

Запись от BlooDHounD размещена 07.06.2010 в 17:27
Обновил(-а) BlooDHounD 07.06.2010 в 18:11 (безграмотность)
для понимания материала необходимы следующие знания:
flash.display.DisplayObjectContainer


допустим у нас есть 2 объекта:
Код AS3:
var container:DisplayObjectConteiner
var child:DisplayObject;
известно, что child находится в container. у container переопределены методы удаления, или вовсе отсутствуют ( removeChild и т.д. ).
но нам, злым юристам, очень хочется забрать ребёнка у отца!

нет ничего проще:
Код AS3:
var s:Sprite = new Sprite();
s.addChild( child );
...
Старый
 
Размещено в идиотизм , ActionScript , display
Комментарии 1 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)
Рейтинг: 5.00. Голосов: 3.

Идиотизмы: Sound

Запись от BlooDHounD размещена 07.06.2010 в 17:01
Обновил(-а) BlooDHounD 07.06.2010 в 17:12
для понимания материала необходимы следующие знания:
flash.media.Sound
!true не всегда false


допустим есть класс SSS ( не спрашивайте, почему он такой ):
Код AS3:
package {
 
    import flash.media.Sound;
    import flash.media.SoundLoaderContext;
    import flash.net.URLRequest;
 
    public class SSS extends Sound {
 
        public function SSS() {
            super();
        }
 
        public
...
Старый
 
Размещено в ActionScript , bug , compiler , sound , идиотизм
Комментарии 3 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)

Идиотизмы: !true не всегда false

Запись от BlooDHounD размещена 23.04.2010 в 16:47
мы имеем очень странный компилятор ...
в некоторых случаях компилятор оптимизирует написанный нами код. например он вырезает не исполняемые блоки. такие как, код написанный после return, или блоки условий с заведомым false:
Код AS3:
if ( false ) {
	// ...
}
этот код вырежется, так как компилятор видит, что этот код не исполняется. но это происходит не всегда. конструкции посложнее он не трогает.
Код AS3:
if ( !true ) {
	// ...
}
а этот код вкомпилится =) ибо условие усложнилось ...
Старый
 
Размещено в идиотизм , ActionScript , bug , compiler
Комментарии 10 BlooDHounD вне форума
Аватар для BlooDHounD
стервочка (я мужик)
Рейтинг: 5.00. Голосов: 2.

Идиотизмы: Socket

Запись от BlooDHounD размещена 23.04.2010 в 14:34
Обновил(-а) BlooDHounD 07.06.2010 в 17:11
для понимания материала необходимы следующие знания:
flash.net.Socket
Подключение к сокетам




ну вот за что флэшерам такие мучения? Socket, казалось, ну что можно сломать в таком примитивном классе? анннет.
и так.
1. мы пытаемся законектися.
2. допустим наш сервер лежит.
3. нам само сабой вываливается ioError.
4. мы, узнав о такой трагедии, расстраиваемся и отписываемся от всех событий.
5. получаем unhadled securityError ...
Старый
 
Размещено в идиотизм , ActionScript , bug , socket
Комментарии 60 BlooDHounD вне форума

 


Часовой пояс GMT +4, время: 16:13.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.