Archive for the ‘IT’ Category.

embedFonts as3 TTF не работает

При эмбеде шрифта TTF обнаружилось что ничего не работает.

FD4 генерирует вот такой код

[Embed(source="../../assets/MY_FONT.TTF",fontName = 'myFont', mimeType="application/x-font")]

А надо писать

[Embed(source="../../assets/MY_FONT.TTF",embedAsCFF="false",fontName = 'myFont', mimeType="application/x-font")]

embedAsCFF="false" работает.

AS3 eval

http://code.google.com/p/as3eval/

Содержит тамарин целиком и позволяет евалить код экшнскрипта находу. Естественно что классы подгружаемые в рантайме должны быть в нашей флешке. Иначе не сработает. Можно правда создавать темповую swf с нужным набором классов, через loadbytes в рантайме грузить и получать динамическое подключение нужных классов. Но это уже тонкости. Никогда не пользовался eval, но мысль интересная.

UPD 11.11.2011

Можно просто получать все классы через getDefenitionByName и тогда всё будет работать.

О реакции на проблемы и ошибки

При обнаружении ошибки, перед тем как её исправлять, необходимо воспроизвести её в тепличных условиях. Обязательно. Сегодня я потратил ~7 часов рабочего времени из за ошибки в чужом компоненте. К сожалению ситуация сложилась так что я, взаимодействуя специфическим образом с этим компонентом чудесным образом избегал этой ошибки. В некоторых моделях взаимодействия ошибка проявлялась, а в некоторых нет. В результате казалось что ошибка в моих моделях поведения. Стоило только собрать дефолтный пример с дефолтной моделью поведения и выяснилось что проблема есть и там. Она находилась совсем на другом уровне, не на том на котором я её искал и вообще работал. Только спустя 7 часов ковыряния и безуспешной попытки выявить баг шрёдингера я решил всё остановить и начать с начала. И баг ждал меня с распростёртыми объятиями.

MinimalComps editable multiline InputText

Для многострочного инпута следует использовать com.bit101.components.Text вместо com.bit101.components.InputText

Дебаг adobe Air

Можно получить список ошибок для установленного приложения.

After installation, create an empty file with file name “debug” in the folder META-INF/AIR inside the installed application’s folder. This solution works for current AIR version (1.5) but not sure if it is supported in the future.

cookbooks.adobe.com (архив), тема на флешере (архив)

Изменения значения корневого элемента в XML в as3.

var a:XML = <node/>;
a.appendChild( 10 );

var num:Number = 10;
var b:XML = <node>{num}</node>;

var c:XML = <node/>;
c.* = 10;

trace( a.toXMLString() ); // <node>10</node>
trace( b.toXMLString() ); // <node>10</node>
trace( c.toXMLString() ); // <node>10</node>
взято отсюда http://www.ultrashock.com/forum/viewthread/123595/

Property в C++: Upgrade

Geser создал свой блог, поэтому теперь все статьи его авторства могут быть найдены там. Property в C++: Upgrade теперь можно прочитать там.

Как я и думал, публикация идей на хабре – хорошая штука. В комментариях к предыдущей статье я нашёл несколько очень важных замечаний.
Первое, самое очевидное – никак не проверяется вызов init в конструкторе. То есть если программист забыл проинициализировать свойства, то компилятор ничего не скажет, а падение в рантаме в коде класса Property – весьма непонятная для дебага ошибка.
Continue reading ‘Property в C++: Upgrade’ »

Property в C++

Наверное, все любители языка C++, которые использовали другие языки, такие как C#, удивляются: почему же в плюсах нет property. Ведь это действительно удобное средство, позволяющее полностью контролировать доступ к членам класса. В общем и я недавно заинтересовался данным вопросом. Подумав, полистав Страуструпа и наконец, погуглив, я пришёл к выводу, что property можно реализовать средствами языка. Думаю многие уже видели разнообразные реализации, например, от microsoft, но для кого-то, надеюсь, это будет интересным открытием.
Continue reading ‘Property в C++’ »

Быстрая сортировка на AS 3.0

У большинства людей на слово «flash» появляется две главные ассоциации:

  1. Надоедливые баннеры, часто непристойного содержания.
  2. Меееедленно и тормозит.

И то и другое по большей части, правда, но только с поправкой «в большинстве своём». Действительно большая часть flash-контента это баннеры. Да они сильно тормозят, но виновата в этом не технология flash и не компания Adobe. Большинство тормозящих flash-приложений просто написаны так (криворукими) ленивыми программистами.  Так уж повелось, что flash стал платформой для быстрой «красивой» интерактивной рекламы, но ведь это далеко не всё, на что он способен. Достаточно популярны flash-игры, которые часто содержат не только вычислительно сложную физику, но часто и не менее сложную игровую логику. Поэтому  раз в сто лет появляется человек, которому нужно написать флешку, которая должна работать быстро. И вот тут и появляется проблема – flash действительно небыстрая платформа. Что делать если тормозит нормально написанный, с алгоритмической точки зрения код? Когда алгоритмы уже отточены, нужно оптимизировать код.

Предложу, наверное, самый извращённый выход из ситуации – шейдеры.

Continue reading ‘Быстрая сортировка на AS 3.0’ »

С днём программиста!

С днём программиста!
Буду краток: лёгкого кода, стабильных библиотек и простой отладки!
С праздником.