FlexiPedia Wiki on Adobe Flex
Флэш Потрошитель - Жизнь вокруг технологииЖизнь вокруг технологии

Флэш Потрошитель этот | тот | 1.0

С 09.09.2002
  • Коллекция багов Flash
  • Ссылки для начинающего аниматора
  • Flex для PHP-разработчиков
  • Как вы используете Flash?

Поток сознания

makc3d ответил на Избранные баги Flash:

beer good. spam bad!

12 часов назад

Флэшер-аноним ответил на Избранные баги Flash:

Хотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...

14 часов назад

Флэшер-аноним ответил на Еще один способ заработать на играх:

прям таки тебе и скажут здесь посмотри

2 дня назад

Флэшер-аноним ответил на Нужна помощь по остановке видео и очистке памяти после него:

Напишите мне на имейл (sbnur@front.ru) - очистка памяти в флеш-плеере нетривиальная проблема и все зависит от конкретного кода - чтобы не превращать, как уже отмечалось, в форум, лучше обсудить все приватно 

3 дня назад

makc3d ответил на Еще один способ заработать на играх:

403

R05T
 

Sorry, access denied for you. You may want to:

Log in
or
Register
 

Thank you.

Test key: 1

 

3 дня назад

imset ответил на Нужна помощь по остановке видео и очистке памяти после него:

1) Спасибо всем кто ответил.

2) Чтобы блог действительно не превращался в форум хотелось бы видет более обоснованные ответы, приводите пожалуйста доводы доказывающие вашу точку зрения.

3) Из комментов видно, что не все понимают зачем нужен именно мувик с вложенными в его кадры анимациями. Поясняю: этот мувик обычно собирается дизайнером, который не имеет особого представления о работе AS. Дизайнеру проще сделать мувик с лейблами чем написать специальный класс. Я же использую один класс для всех подобных мувиков в котором программно обрабатываю переход от одной анимации к другой. Таким образом для всех мувиков используется один класс.

4) Знаю что использование мувиков, созданных в IDE не является хорошей практикой, но в данном случае удобен именно этот подход. К тому же если метод мувика gotoAndStop реализован и описан в официальной документации он может использоваться и должен правильно работать.

5) Если встраивание видео в мувик несет в себе какие-то сложности, об этом должно быть указано в хэлпе.

6) Теоретически наверное можно найти какое-то другое решение проблемы, но речь изначально шла о том является ли такое поведение багом, и если так - этот баг должен быть добавлен в базу Adobe.

7) Очень хотелось бы ,чтобы кто-то проверил это у себя или указал как эту проблему можно решить.

3 дня назад

Artem Brigert ответил на Нужна помощь по остановке видео и очистке памяти после него:

gotoAndStop(label);

мама роди меня обратно ...

3 дня назад

shaman4d ответил на Нужна помощь по остановке видео и очистке памяти после него:

Блог превращаетсо в форум -- пичалько.

3 дня назад

Флэшер-аноним ответил на Нужна помощь по остановке видео и очистке памяти после него:

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

примерно так:

var _class:Class = getDefinitionByName("nameClass") as Class;

var _mc:MovieClip = new MovieClip(new _class());

addChild(_mc);

...

removeChild(_mc);

3 дня назад

imset ответил на Нужна помощь по остановке видео и очистке памяти после него:

Спасибо за ответ. Хочу пояснить что я пробовал чтобы люди могли лучше понять суть проблемы. Сорри, если много букв. Вот код функции для переключения кадров с видео: [collapse] <code> public function playAnim(label:String):void { // проверяем есть ли такая метка в списке доступных if (labels.indexOf(label) != -1) { // если метка отличается от текущей выполняем переход if (currentLabel != label) { // "anim" - это мувик с именем "anim" и объектом Video внутри, в нем также могут находится мувики с графикой if (anim) { // стопим его, при помощи ENTER_FRAME Event с WeakReference я проверял его текущий кадр и трейс показывает что он нормально стопится anim.stop(); // удаляем его из DisplayList removeChild(anim); // проходим по всем его вложенным DisplayObject-ам while (anim.numChildren) { var vid:Video = anim.getChildAt(0) as Video; // если находим видео, пытаемся принудительно вызвать GarbageCollector if (vid) { trace(">>> FORCE GC! <<<"); try { new LocalConnection().connect('foo'); new LocalConnection().connect('foo'); } catch (e:*) {} } // удаляем все найденные DisplayObject-ы anim.removeChildAt(0); } // обнуляем автоматически созданную переменную (сам флэш иногда это не делает) anim = null; } // переходим на новый кадр с мувиком "anim" внутри которого лежит другое видео gotoAndStop(label); } } } </code> [/collapse] Странно, что без вызова GarbageCollector-а все видео продолжают висеть в памяти. Если вызывать GarbageCollector как показано в коде, то некоторые видео удаляется (исчезают трейсы от них), а некоторые продолжают висеть в памяти остановленные на одном кадре, хотя ссылок на них в коде больше нет. Хэлп от Адоб утверждает (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Video.html) что потоковое видео можно остановить соответствующими вызовами: myVid.attachCamera(null); myVid.attachNetStream(null); Про то как остановить встроенное видео нет ни слова. Хотелось бы видет простой метод dispose() как у BitmapData что какжется логичным. Хочется делать простые вещи без всяких костылей и хакерства.

3 дня назад

Более старые 
Главная › Блоги › Блог Alexey

Как отредактировать .swf-файл, не имея исходного файла .fla

Пишет Алексей Малов, iSpringSolutions:

Часто бывают ситуации, когда необходимо внести небольшое исправление в готовую страницу на сайте: это может быть устаревшая дата, название, картинка и т.д. В этом случае необязательно прибегать к использованию тех сложных инструментов, с помощью которых был создан данный проект, а бывает достаточно простого и легкого инструмента для внесения локальных исправлений. Например для того, чтобы подкрасить пятно на стене, не нужно разбирать и заново строить дом, достаточно просто подкрасить стену.

В то время, как текст можно с легкостью поправить с помощью, например, редактора Notepad, в случае же с картинкой или флэшкой необходимо открыть исходный файл в редакторе, в котором он создавался, и затем сохранить в нужном формате. Это занимает довольно много времени и усилий, к тому же не всегда под рукой оказываются исходные файлы. Более того, если исходный файл недоступен, то отредактировать что-то во флэше будет вообще невозможно.

Используя редактор SWiX, все что Вам нужно — это открыть swf-файл, внести необходимые исправления и сохранить его. При этом исходное качество Flash не ухудшится, так как все данные, кроме тех, которые вы исправили, сохраняются в оригинальном виде.

Интерфейс SWiX весьма прост, он состоит из панели интрументов (верхняя часть), дерева тэгов и ресурсов (слева) и xml-редактора (центр). При редактировании вам могут быть пригодиться такие встроенные инструменты, как преобразование цвета из палитры в шестнадцатиричный вид и наоборот; Base64 энкодер, проверка xml-синтаксиса. Вызвать их можно выбрав из меню Tools или из контекстного меню, кликнув правой кнопкой мыши. Для предпросмотра ваших изменений достаточно просто нажать на синюю кнопку Play.

SWiX swf editor

Примерами того, что Вы можете легко исправить во флэшке, являются цвета любых элементов, динамические тексты, включая настройки шрифта, редактирование HTML, выравнивание, частота кадров и многое другое.

Инструмент является бесплатным и доступен для скачивания с сайта: http://swixkit.com. С помощью SWiX editor я недавно быстро поправил название сайта и ссылку на баннере.

Удачи всем в работе с флеш-проектами.

  • edit
  • flash
  • swf
  • SWiX
  • without fla
  • без исходников
  • редактор
  • релактировать
  • Статьи
  • флэш
- Alexey, пт, 28/08/2009 - 19:39
  • Блог пользователя Alexey
  • В Жуйк

Комментарии

так с его помощью можно и с нуля флешку накатать в хмл?

whitered (не проверено) 22:58 28/08/09

Да, можно и с нуля написать. Можешь начать с того, что создать пустую swf в Adobe CS например, открыть ее с помощью SWiX и посмотреть, из каких тэгов она состоит. Это будет минимальный пример.

Алексей (не проверено) 19:09 30/08/09

Чото обратно собранная флешка немного не соответствует оригиналу. Как минимум слетели все blend mode у мувиклипов.

Мне больше интересно, а аналог Flasm для AS3 есть? Хотелось бы покопаться в байткоде, что-то ручками покрутить, посмотреть как компилер работает, а тулзы не нашел.

scmorr (не проверено) 09:47 29/08/09

Более продвинутый аналог Sothink SWF Decompiler.
Из плюсов: постоянно развивается, поддерживает as3 (включая флекс модули, правда с ограничениями), выкусывает практически все, делает fla файлы, выдает дампы в p-кодах (для исследования компиляторов более чем интересная информация)
Из минусов: более менее сложные флешки некорректно обрабатывает, декомпиляция as3 в исходные кода часто бывает некорректной, к некоторым тегам добраться невозможно.

С Flex 4 SDK идет интересная утилита swfdump, которая полноценно парсит всю swf и выдает xml c ее структурой (утилиты которая собирает данный xml обратно нет, прийдется писать самим). Смотрел ее давно, она вылетала на векторе и давала только дамп байткодов функций (без преобразования в p-код). Тем не менее она достаточно интересна для понимания что и как хранится в swf.

Мое отношение к декомпиляторам - это автомат Калашникова. Для серьезных разработчиков возможностей декомпиляторов явно недостаточно, для "юных хакеров" - возможность залезть во флешку, убрать оттуда производителя и распространять ее под "собственными правами".

well - http://absolutist.com/ 10:59 29/08/09
well пишет:

Более продвинутый аналог Sothink SWF Decompiler.

Мою флешку он некорректно раскрутил. А вот Trillix вполне адекватно. Зато Trillix почему-то дампы только для as2 кода показывает.

well пишет:

Мое отношение к декомпиляторам - это автомат Калашникова. Для серьезных разработчиков возможностей декомпиляторов явно недостаточно, для "юных хакеров" - возможность залезть во флешку, убрать оттуда производителя и распространять ее под "собственными правами".

Оно понятно, вот я и спросил про аналог Flasm. В нагрузку к флазму идет куча информации по косякам компилера, по оптимизации кода на уровне байткода итд. Но то все было актуально для AS2. Вот интересно, если ли уже аналог для AS3.

scmorr (не проверено) 11:56 29/08/09

Основная проблема Sothink в том, что он разворачивает свф полностью для работы в среде флеша (отсюда и косяки), а Trillix как я понимаю просто подправляет теги.

As2 и as3 в корне отличаются друг от друга (для as3 выделен отдельный тег со своей спецификацией формата и естественно абсолютно другим набором команд), поэтому многие декомпиляторы и не заморачиваются на разбор as3 до уровня исходных кодов.

Аналога Flasm для as3 в полном виде в публичном доступе еще нет. Haxe позволяет добавлять ассемблерные вставки, но если хочется что-нибудь серьезное написать, то это дело будет не для слабонервных. Есть еще пара разработок позволяющих делать ассемблерные вставки в код, но они к сожалению еще не доделаны. С точки зрения оптимизации кода для as3 есть масса статей.

Но мы немного отклонились от мысли автора статьи. Если нужно что-нибудь подправить или изменить в свф не особо влазя в код, то Trillix более чем удачное решение (к тому же и бесплатное). А средства для разбора as кода - это наверное уже тема для отдельной статьи Smile

well - http://absolutist.com/ 12:33 29/08/09
well пишет:

Основная проблема Sothink в том, что он разворачивает свф полностью для работы в среде флеша (отсюда и косяки), а Trillix как я понимаю просто подправляет теги.

Вообще-то Trillix аналогично создает fla файл итд. Ну он и платный тоже Smile.

В моей флешке Sothink декомпилировал код в котором потерял или спутал имена аргументов. То-есть тип правильный а имя одно и то-же для всех аргументов и взято из другого места. То что создал мне Trillix я не пробовал скомпилить, но на вид все было без косяков.

Вот я пока для просмотра попробовал http://www.docsultant.com/nemo440/ - неплохо.

well пишет:

Аналога Flasm для as3 в полном виде в публичном доступе еще нет. Haxe позволяет добавлять ассемблерные вставки, но если хочется что-нибудь серьезное написать, то это дело будет не для слабонервных. Есть еще пара разработок позволяющих делать ассемблерные вставки в код, но они к сожалению еще не доделаны.

Спасибо за информацию, буду ждать.

well пишет:

С точки зрения оптимизации кода для as3 есть масса статей.

Да, про это я уже проштудировал заранее и использую. Просто в том числе хочется понять почему "new a : Array = new Array()" работает медленне чем "new a : Array =[]".

well пишет:

Но мы немного отклонились от мысли автора статьи. Если нужно что-нибудь подправить или изменить в свф не особо влазя в код, то Trillix более чем удачное решение (к тому же и бесплатное). А средства для разбора as кода - это наверное уже тема для отдельной статьи Smile

Даешь статью! Smile

(У меня сложилось впечатление что вы имеете в виду какую-то другую тулзу а не Trillix, поскольку Trillix это практически аналог Sothink, платный тоже)

scmorr (не проверено) 12:48 29/08/09

По поводу Trillix. Сорри, идиосинкрозия на имена - перепутал с утилитой, которую описывал автор статьи.

По поводу массивов:
var a :Array = new Array();
:findpropstrict Array
:constructprop Array 0
:coerce Array
:setlocal 1
var b :Array = [];
:newarray 0
:coerce Array
:setlocal 2
при классическом нью, компилятор не заморачивается и создает массив как обычный объект (сначала находит его описание, что дико медленно), потом собственно его создает универсальной командой (что тоже не быстро).
при втором методе - использует встроенную команду флеша.
Из этого примера и из многих других следует, что ребята из Адоба не особо заморачивались в плане синтаксической оптимизации кода (пример был откомпилен на Flex 3).

По поводу статьи, надеюсь время появится, тем более, что Росту я обещал.

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

well - http://absolutist.com/ 13:45 29/08/09

Спасибо!

Собственно, еще раз - я так понял нет сейчас тулзы которая позволила бы сделать руками эту оптимизацию? Ведь кроме случая с Array наверно есть и другие, которые однако в исходном AS3 коде не поправить. Flasm это позволял.

scmorr (не проверено) 14:11 29/08/09

Тулзы, которой можно подправить уже готовый код я не видел.
Haxe позволяет делать ассемблерные вставки.
Для flash/flex более-менее рабочая альтернатива вставки ассемблерного кода AS3C http://code.google.com/p/as3c/ - к сожалению последние изменения в ней были год назад. По поводу удобства работы с ней скажу честно - у меня терпения не хватило на ней писать "по взрослому" Smile

well - http://absolutist.com/ 14:26 29/08/09

Понял, спасибо!

scmorr (не проверено) 08:54 30/08/09

В плане исследований оптимизации as3 кода, советую обратить внимание на последний пост Роста о TAAS.
Первое впечатление - одно из самых продвинутых в опенсорсе исследование по оптимизации кода и инлайновым функциям. Достаточно навороченная система анализа кода. Может тонкая оптимизация с преобразованием типов и ветвениями программы и не столь существенна, но инлайновые функции - более чем вкусно (инлайновые вставки дают 20 кратный рост производительности, по сравнению с вызовом функций).
Ссылка на проект http://code.google.com/p/apparat/

well - http://absolutist.com/ 10:10 03/09/09

Спасибо еще раз!

scmorr (не проверено) 10:16 03/09/09

Я ненавижу деомпиляторы. Это как чит-код в играх. Если флешер реально крут, ему даже в голову не придет использовать декомпилятор. Может быть он подойдет тем НЕРЕАЛЬНО КРУТЫМ флешерам, которые взяли работку на фрилансе за 5 баксов подправить слоган и т.д.
Защищайте свои флешки от тех, кто юзает декомпилы!!! Они в-первую очередь люди нечестные!!!

Flastar - http://flastar.ru 14:59 29/08/09

Ерунду какую-то говорите.

Dan 16:44 29/08/09
Flastar пишет:

Я ненавижу деомпиляторы. Это как чит-код в играх. Если флешер реально крут, ему даже в голову не придет использовать декомпилятор. Может быть он подойдет тем НЕРЕАЛЬНО КРУТЫМ флешерам, которые взяли работку на фрилансе за 5 баксов подправить слоган и т.д.
Защищайте свои флешки от тех, кто юзает декомпилы!!! Они в-первую очередь люди нечестные!!!

не будте такими ограниченными. у вас декомпилер ассоциируется тока с воровством кода

Гриф (не проверено) 19:47 30/08/09

Защитить флешку от декомпилирования невозможно.

Obi (не проверено) 15:57 31/08/09
1.02

Извини, Алексей, но твой продукт (ты ведь продакт менеджер?) не дотягивает до:

Full support of Flash format version 5, 6, 7, 8, 9 and 10

Не поддерживается actionscript, ни 2 ни 3, следовательно, никакой речи об:

SWF debugging

Раз уж так откровенно пиаришь свой (все таки ограниченно бесплатный) продукт в блоге, в котором бывают профессионалы, то будь любезен, пиши честно, и поменьше лапши. Иначе это вызывает только негативные ассоциации.
И да, привет Йошкар-Оле Smile и CPS Labs...

fldev (не проверено) 01:56 30/08/09
2.01

А как насчет Flash Decompiler Trillix?? все работает и скрипты разбирает на раз:))))

foxskum (не проверено) 13:17 31/08/09

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

Flash Decompiler Trillix - это shareware, стоит $79.95.

Alexey - http://swixkit.com 15:48 31/08/09

Ну и инструменты разного уровня по качеству.
В вашем - в некоторых местах даже неудосужились перевести twips в pixels.
Кстати, вопрос на засыпку (раз вы продакт): сколько стоит лицензия для коммерческого использования?

fldev (не проверено) 16:19 31/08/09

Инструменты разные по многим критериям, поэтому их сравнивать некорректно.
Спасибо за замечание, учтем.
Лицензия на коммерческое использование обгаваривается индивидуально. С большой долей вероятности она также будет бесплатной.

Alexey - http://swixkit.com 16:43 31/08/09

Наши ребята попробовали - понравилось! Обязательно свяжемся на счет коммерческой лицензии.
1. Утилита полезна при подправке базовых параметров свф (размеры, цвет фона и т.п.)
2. Удобно "чистить" неиспользуемые теги
3. На первый взгляд не изменяет ничего лишнего (чем часто страдают другие утилиты)
4. Надеемся, что будет развиваться по ходу
Со своей стороны могу добавить - отсутствие парсера экшинскрипта не является недостатком. Когда необходимо поменять логотип (эмбеднутую картинку) в 30-40 файлах, думаю подобная утилита будет самым лучшим и быстрым решением.
Удачи Вашей команде в продвижении продукта.

well - http://absolutist.com/ 09:11 01/09/09
Alexey пишет:

Пишет Алексей Малов, iSpringSolutions:
С помощью SWiX editor я недавно быстро поправил название сайта и ссылку на баннере.

Если баннер инжектируется в HTML, то, имхо, ссылку с баннера лучше прописывать во FlashVars.

Born 16:05 31/08/09
3

Вы ребята молотки!
Респектно что безплатно.
Сам отчет:
http://www.zlash.com/
- Древний платный аналог.
https://h30406.www3.hp.com/campaigns/2009/wwcampaign/1-5TUVE/index.php?key=swf
- Весьма любопытная подача темы декомпиляции. Собственно идея: "смотрю потому, что боюсь"
Обыграна тема анализа кода и выковыривания интересующих мест в отдельный отчет с коментариями.
Бесплатно кстати.

axio 13:19 02/09/09
3

Очень полезный ресурс.Я вам скажу очень мне понравилось как доходчиво все разложено.Качаю прогу и иду тестить. спасибо

applee (не проверено) 22:43 22/09/09

Что то мне подсказывает SWiX возможно сделан на основе SWFMILL
(исходный код которого обновлялся еще в эпоху динозавров)
Соответсвтенно с swf файлами собранными под последние версии плеера будут проблемы

На сайте заявленна поддержка вплоть до FP10, что само по себе подозрительно.
На сколько я помню адоб так и не открыл swf формат и свежей документации на него нет.

peko (не проверено) 20:07 24/09/09
Примечания: Статус документа => в процессе ·
Статьи · Идеальный клип · Персоналии · Глоссарий (уст.) · Что делать? · К началу ↑
© 2002-2012 Ростиславр · О проекте · Подписка на RSS · α-тестировани невероятного
]]>
]]>
Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Регистрация
  • Запросить новый пароль