Flex sdk компиляция огромных файлов

Нужно было скомпилять флешку с огромным количеством ресурсов, более 100 мегабайт картинок.

Флекс сдк падает с java.lang.OutOfMemoryError: Java heap space

помогает зайти в файл {FlexSDK_Root}\bin\jvm.config

и поправить там значение в строке java.args

я поставил -Xmx1408m и всё заработало. Такое значение выявлено подбором т.к. при большем значении тоже не всегда работает.

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++’ »