глубина отображения объекта - PullRequest
0 голосов
/ 21 марта 2012

Я создаю игровой клиент со сценой Загружает игровой экземпляр как ребенок Экземпляр игры создает новый фрагмент видеоролика и добавляет его к этапу экземпляра игры. Тайлсет имеет свою собственную сцену и загружает в качестве детей плитки (игровую карту), предметы, меню и героя. Когда я нажимаю на элемент, он добавляет мувиклип в набор плиток как дочерний элемент и в этот мувиклип загружает внешний SWF, который создает нового дочернего элемента внутри.

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

Интересно, есть ли ограничение на количество детей на сцене или я достиг предела на глубине.

1 Ответ

0 голосов
/ 21 марта 2012

Вы не достигли предела в отношении DisplayObjects так быстро, на самом деле смешно, насколько глубоки некоторые деревья отображения, в которых я принимал участие по сравнению с 3 deep:).

В этом контексте проблема заключается в загрузке внешнего SWF-файла, вы должны помнить, что код фактически был кросс-скомпилирован для работы на конкретной платформе.Что это означает (по моим лучшим оценкам), что в процессе преобразования могли учитываться порядковые номера байтов, порядок байтов, размер слова и другие специфичные для процессора и / или платформы свойства (не говоря уже о даун / кросс-компиляции в Dalvik,андроид JVM, байт-код или машинный код A4 / A5, не уверен, что там называется фактический набор инструкций).Я решил покопаться в этом, поэтому экспортировал свой проект в виде APK, открыл APK с 7-zip, нашел swf (и увидел все остальные структуры, построенные вокруг него), извлек указанный swf и поместил его рядом с темв папке bin-debug для тестирования в отладчике AIR.Открыл оба из них с 7-zip, и в SWF есть куча файлов DoABC из отладки bin и только один в apk-версии той же программы.Для дальнейшей проверки потребовался шестнадцатеричный редактор, так как многие файлы занимали всего 4 байта или около того, поэтому их чтение с помощью любого обычного текстового редактора не помогло.Если вы запустите его на устройстве в режиме отладки, вы, вероятно, получите какую-то ошибку.

Во всяком случае, техническая метка, кроме того, лучше всего загружать ресурсы во время выполнения в их "простом" формате, который является mp3., PNG, что бы это ни было.Вы также можете сжать их для экономии места и использовать библиотеку zip отсюда: http://nochump.com/blog/archives/15

Вы должны быть в состоянии достичь всего, что я могу думать о вас, с помощью внешне загруженного SWF, помимо наличия самих SWF.загружен.

Также для глубокого погружения во все, что происходит во всех этих бессмысленных swf-файлах, посмотрите утилиту swfdump.jar в SDK (гугл, вроде как мой 4-мегабайтный swf становитсяXML-файл размером 100 МБ со всем изложенным ... вроде, я использую «редактор XML первого объекта», чтобы просмотреть бессмысленный XML, как это) Я использовал этот jar, чтобы написать плагин maven, который узнает, какие классы определены в нашем исходном тексте.в конечном итоге в SWF, чтобы помочь очистить потерянный код.

...