Очередной обновление getDefinitionNames (скачать исходники сразу) до версии 2.1. Появилась совместимость с Flash 10, изменен режим «только классы» на действительно только классы (без интерфейсов), а также в расширенном режиме находятся ещё и Vector.
Большое спасибо Даниелю за доскональное выяснение причин, по которым getDefinitionNames не работал с swf, скомпилированном с использованием Vector — оказалось, Adobe «забыла» задокументировать новый тип multiname для Vector.
Ожидается обновление ClassExplorer с теми же правками (поддержка Vector, но не уверен, что они будут перечислены в результирующем XML, т. к. на текущий момент generic-и в ABC реализованы кривовато), а также внесение в FontLoader поддержки тега DefineFont4 для совместимости с FTE. Следите за новостями!
Denis, I got your message on the related Flash Player bug tracking system and will check out your new code shortly. Thanks for putting so much effort into this. By the way, have you seen this library: http://code.google.com/p/flemit/ ?
Hi, Thomas!
I saw such libraries 1-2 years ago. I wanted to write the same, but didn’t find the time
Looked flemit — another piece of crazy code
Спасибо за обновление, как раз понадобилось для редактора тайлов =)
Hi, very nice work you done! One question: swfByteArray has method writeBytesFromString, i understand this can be used to modify the swf bytearray, but you have to have the correct bytes to inject… is it simple to change a variable in a swf from bytecode? like the one in your example download package example var testVariable?
It’s not simple, because you need to parse bytecode to the tables (see swf bytecode file format reference at adobe: http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf ), change the value at one of the tables, then build bytecode back from tables.
Thank you! This is an awesome tool for debugging loaded SWFs.