![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Oct 2009
Сообщений: 29
|
Здравствуйте.
Допустим, у меня имеется swf файл, в котором содержиться определенная анимация (к примеру действия с персонажем: ходьба, прыжки, удары и т.п.), но файл этот делал не я. Файл защищен от декомпиляции (при декомпиляции ресурсы декомпилируются, но анимации нет... она видимо сделана програмно, а .as файлы из-за защиты как абракадбра отображаются). Есть ли какой-то способ использовать этот файл? Либо обойти защиту от декомпиляции, либо узнать названия классов-методов внутри файла и просто использовать их (грубо говоря как dll использовать swf файл)... |
|
|||||
|
Lorem ipsum
|
Такие темы здесь не обсуждаются.
http://www.flasher.ru/forum/rules.php (п.3)
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 29
|
Пару слов по поводу ситуации, в которой мне это все необходимо (касательно ее противоправности).
Один человек, назовем условно подрядчиком, делал нам часть графики и анимации для проекта. Работу сдавал на программе-стенде, которую он собирал. Нам собственно выслал стендовую флешку без исходников, модули с анимацией с исходниками. Нас все устроило, рассчитались с ним. Когда начали интегрировать все это дело обнаружили, что исходники все одинаковые (т.е. к одному файлу с анимацией, человек который проверял запустил первый попавшийся исходник, увидел что что-то рабочее и дальше проверять не стал, схалтурил в общем). То ли прокинул нас подрядчик, то ли ошибся - трудно сказать. На имейлы он четвертый день не отвечает уже (но сейчас праздники, мало ли, может в запой ушел). На всякий случай решили искать способы решения проблемы без его участия... Если такое положение вещей удовлетворит модераторов, то буду благодарен за помощь по этой теме, если же это все таки трактуется как нарушение правил сайта - то не в обиде буду, т.к. понимаю, что ситуация крайне неоднозначно выглядит. |
|
|||||
|
Вообще использовать реально.
Флешку можно загрузить внутрь своей и использовать все ее внутренние ресурсы как свои. Единственная проблема в том что нужно ЗНАТЬ как использовать то что внути. Т.е. вас подрядчик мог даже не прокинуть, желательно как минимум связаться с ним и спросить какие классы внутри флешек как организованы. Плюс и еклипс и флешДевелоп(самые распространенные иде для кодинга ас3 минимальные данные могут показать сами. Т.е. просто имена классов вы сможете получить примерно вот так, как на картинке, с методами сложнее, вам нужно понимать как они работают, если там есть какой-то код соответственно.) ![]() Добавлено через 1 минуту На то что на картинке не свф а свц не обращайте внимания, свф точно так же разворачиваются. Ну и многое зависит от того как там всё это внутри организовано. Может получиться ситуация что использовать скорее нельзя чем можно банально из-за некрасивой внутренней структуры.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 29
|
Ну как использовать я надеюсь разберусь, все таки ТЗ я составлял для него
Но флешку эту импортировать в проект не могу, просит пароль импорта ввести, видимо надежно защитил ее подрядчик...Добавлено через 7 минут С импортом разобрался, буду пробовать работать дальше, спасибо за совет. Тему пожалуйста не закрывайте пока, может кто-нибудь еще чего присоветует! Добавлено через 16 часов 42 минуты При импорте флешки в проект, импортируются только обьекты графики, никаких классов или скриптов среда не отображает... Попробовал загрузить флешку в проект на этапе исполнения через Loader и продебажить ее... Дебаггер выдает кучу обьектов и методов внутри флешки (через ListObjects и ListVariables), но как до них добраться - не пойму, ведь загруженная флешка типа AVM1Movie, у которого внутри естественно ничего такого нет. Откуда вообще дебагер эти ListObjects/ListVariables формирует? Последний раз редактировалось Spider10k; 09.01.2012 в 17:02. |
|
|||||
|
Ну в флешке есть же некие классы и прочие структуры данных. Вот когда флешка загружена в другую то из той в которую загружена это всё видно. Вот собственно дебаггер это всё и показывает. Далее это всё можно использовать на свое усмотрение.
Нормальная практика разбивать программу на модули и подгружать потом по надобности всё это в один из. Например есть некий прелоадер, он загружает основную флешку, а основная флешка по надобности подгружает то или иное окно, в больших играх это вполне распространено ибо если каждый раз грузить всё то трафика много и игроки будут недовольными, та и долго всё будет. И таким образом подгружать можно не только графику а полностью функциональные блоки. После того как дочерняя флешка загружена - все ее внутренности становятся доступными в родительской, только там надо не напутать с контекстами безопасности. Естественно это всё проще если все модули писались одним человеком /командой. У вас по сути то же самое с тем лишь НО, что вы не знаете как устроены внутренности конкретно вашей дочерней флешки. Восполните пробел в знаниях и пользуйтесь.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 29
|
Приведу конкретный пример:
private function onAddedToStage(e:Event) { load("http://arena/anim.swf"); } private function load(name:String) { Security.allowDomain("*"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain); var url:URLRequest = new URLRequest(name); loader = new Loader(); loader.load(url, loaderContext); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); } private function onComplete(e:Event):void { loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete); addChild(loader); } Далее вызываю List Variables у дебаггера... Среди всех записей вижу строку: Переменная _level0.instance1.instance2.big = 1 _level0 - это как я понимаю главный мувиклип мой. instance1 - добалвеный в него Loader. instance2 - загружаемая swf в лоадер. Далее добавляю в код строки: var swf = loader.getChildAt(0); (при этом в переменной swf действительно сидит переменная типа AVM1Movie с именем instance2, проверил по дебагеру). trace(swf.big); - на это выдается ошибка: "Не удалось найти свойство big в flash.display.AVM1Movie; отсутствует значение по умолчанию." . Вот я и пытаюсь понять, как то, что выводит дебагер в List Variables, в коде выковырять.... |
|
|||||
|
Цитата:
Добавлено через 1 минуту Обычно для связи между флешкой на AS1/2 и AS3 используется LocalConnection. Добавлено через 3 минуты В принципе можете сделать обертку на AS2 которая обеспечит связь между вашим приложением и загруженной флешкой. Но, в вашей ситуации, я смысла в этом не вижу.
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 09.01.2012 в 20:29. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 29
|
У меня на AS3 проет. Буду разбираться что такое Local Connection, спасибо!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|