Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.01.2012, 17:02
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 1  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
По умолчанию Использование в своем проекте стороннего SWF.

Здравствуйте.
Допустим, у меня имеется swf файл, в котором содержиться определенная анимация (к примеру действия с персонажем: ходьба, прыжки, удары и т.п.), но файл этот делал не я. Файл защищен от декомпиляции (при декомпиляции ресурсы декомпилируются, но анимации нет... она видимо сделана програмно, а .as файлы из-за защиты как абракадбра отображаются). Есть ли какой-то способ использовать этот файл? Либо обойти защиту от декомпиляции, либо узнать названия классов-методов внутри файла и просто использовать их (грубо говоря как dll использовать swf файл)...

Старый 08.01.2012, 17:26
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Такие темы здесь не обсуждаются.
http://www.flasher.ru/forum/rules.php (п.3)
__________________
Поймай яблоко 2!

Старый 08.01.2012, 21:21
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 3  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Пару слов по поводу ситуации, в которой мне это все необходимо (касательно ее противоправности).

Один человек, назовем условно подрядчиком, делал нам часть графики и анимации для проекта. Работу сдавал на программе-стенде, которую он собирал. Нам собственно выслал стендовую флешку без исходников, модули с анимацией с исходниками. Нас все устроило, рассчитались с ним. Когда начали интегрировать все это дело обнаружили, что исходники все одинаковые (т.е. к одному файлу с анимацией, человек который проверял запустил первый попавшийся исходник, увидел что что-то рабочее и дальше проверять не стал, схалтурил в общем). То ли прокинул нас подрядчик, то ли ошибся - трудно сказать. На имейлы он четвертый день не отвечает уже (но сейчас праздники, мало ли, может в запой ушел). На всякий случай решили искать способы решения проблемы без его участия...

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

Старый 08.01.2012, 22:35
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Вообще использовать реально.
Флешку можно загрузить внутрь своей и использовать все ее внутренние ресурсы как свои.
Единственная проблема в том что нужно ЗНАТЬ как использовать то что внути. Т.е. вас подрядчик мог даже не прокинуть, желательно как минимум связаться с ним и спросить какие классы внутри флешек как организованы.

Плюс и еклипс и флешДевелоп(самые распространенные иде для кодинга ас3 минимальные данные могут показать сами. Т.е. просто имена классов вы сможете получить примерно вот так, как на картинке, с методами сложнее, вам нужно понимать как они работают, если там есть какой-то код соответственно.)



Добавлено через 1 минуту
На то что на картинке не свф а свц не обращайте внимания, свф точно так же разворачиваются. Ну и многое зависит от того как там всё это внутри организовано. Может получиться ситуация что использовать скорее нельзя чем можно банально из-за некрасивой внутренней структуры.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 09.01.2012, 00:18
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 5  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Ну как использовать я надеюсь разберусь, все таки ТЗ я составлял для него Но флешку эту импортировать в проект не могу, просит пароль импорта ввести, видимо надежно защитил ее подрядчик...

Добавлено через 7 минут
С импортом разобрался, буду пробовать работать дальше, спасибо за совет.
Тему пожалуйста не закрывайте пока, может кто-нибудь еще чего присоветует!

Добавлено через 16 часов 42 минуты
При импорте флешки в проект, импортируются только обьекты графики, никаких классов или скриптов среда не отображает... Попробовал загрузить флешку в проект на этапе исполнения через Loader и продебажить ее... Дебаггер выдает кучу обьектов и методов внутри флешки (через ListObjects и ListVariables), но как до них добраться - не пойму, ведь загруженная флешка типа AVM1Movie, у которого внутри естественно ничего такого нет.

Откуда вообще дебагер эти ListObjects/ListVariables формирует?


Последний раз редактировалось Spider10k; 09.01.2012 в 17:02.
Старый 09.01.2012, 19:41
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 6  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Ну в флешке есть же некие классы и прочие структуры данных. Вот когда флешка загружена в другую то из той в которую загружена это всё видно. Вот собственно дебаггер это всё и показывает. Далее это всё можно использовать на свое усмотрение.

Нормальная практика разбивать программу на модули и подгружать потом по надобности всё это в один из. Например есть некий прелоадер, он загружает основную флешку, а основная флешка по надобности подгружает то или иное окно, в больших играх это вполне распространено ибо если каждый раз грузить всё то трафика много и игроки будут недовольными, та и долго всё будет.

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

Естественно это всё проще если все модули писались одним человеком /командой. У вас по сути то же самое с тем лишь НО, что вы не знаете как устроены внутренности конкретно вашей дочерней флешки. Восполните пробел в знаниях и пользуйтесь.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 09.01.2012, 20:19
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 7  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Приведу конкретный пример:

Код AS3:
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, в коде выковырять....

Старый 09.01.2012, 20:26
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
но как до них добраться - не пойму, ведь загруженная флешка типа AVM1Movie
Из AS3 вы до них не доберетесь. Код на AS1 выполняется в отдельной виртуальной машине и вам доступен одним куском. Или ваш проект на AS1/AS2?

Добавлено через 1 минуту
Обычно для связи между флешкой на AS1/2 и AS3 используется LocalConnection.

Добавлено через 3 минуты
В принципе можете сделать обертку на AS2 которая обеспечит связь между вашим приложением и загруженной флешкой. Но, в вашей ситуации, я смысла в этом не вижу.
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 09.01.2012 в 20:29.
Старый 09.01.2012, 21:01
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 9  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
У меня на AS3 проет. Буду разбираться что такое Local Connection, спасибо!

Старый 09.01.2012, 21:21
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 10  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Да, уж нажили вы себе... болезнь одну. Лучше бы вам, конечно, найти исполнителя и утюжком по пяткам )

Кстати, по поводу общения между AVM1,2 есть у wvxvw-га здесь. В архиве есть и доки. Авось поможет... Сам эту штуку не пробовал - пока случая не было.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.