Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Flasm выдает ошибку при ассемблировании (http://www.flasher.ru/forum/showthread.php?t=113898)

Chel1 12.07.2008 18:19

Flasm выдает ошибку при ассемблировании
 
Постановка задачи:
код на флеш рекурсивно обрабатывает все узлы xml-документа и по определенным правилам производит изменения в файле.
нужно снять ограничение на рекурсию и время выполнения скрипта.
Проблема:
При использовании Flasm 1.62 получаем файл .flm, в котором убираем ограничения и ассемблируем обратно в .swf. Однако при ассемблировании выдается ошибка:

SWC

^
Line 0001 of file.swf:
syntax error

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

Подскажите пожалуйста, с чем это может быть связано? настройки, параметры публикации, установленные плееры, фазы луны? я уже не знаю что попробовать
:wacko:

wvxvw 12.07.2008 18:33

Версия плеера под которую компилировался SWF, было ли использовано сжатие при компиляции. А вообще, время выполнения скрипта легче просто выставить в настройках публикации во флеше. Глубина рекурсии... 256 вложеных узлов в ХМЛе? зачем так много? Ну, и в конце концов, опять же просто решается в флеше, просто по достижении максимальной глубины вызываем функцию setTimeout'oм...

Chel1 12.07.2008 18:45

Компилировать пробовал под девятую, восьмую, седьмую версию плееров,
сжатие использовалось и неиспользовалось (то есть попробовал вроде бы все варианты, щас еще раз все перепробую). код публиковался при помощи flash 8 и flash cs3.

Время выполнения может быть и проще выставить просто так, спорить не буду, а вот с рекурсией - 256 мало. 256 - это не вложенных друг в друга узлов, а узлов вообще! (обход начинается с первого тэга и рекурсия заканчивается по достижении последнего).

Про setTimeout можно поподробнее? то есть имеешь ввиду, что нужно просто считать кол-во вызовов и потом на 255-ом вызывать ее же по таймеру?

wvxvw 12.07.2008 19:19

ну, да, считать количество вызовов.... а почему нельзя все дочерние узлы за 1 такт обработать? так вызовов гораздо меньше будет...
Подожди... а зачем ты SWF собираешь? Тебе ж FLM надо собирать?..

Chel1 12.07.2008 19:42

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

по поводу собираешь...

процесс ведь такой, как я его понимаю :)
1 - flasm file.swf
2 - редактируем полученный файл file.flm
3 - собираем обратно с изменениями: flasm -a flasm.flm

Chel1 12.07.2008 19:44

написал только что ответ и понял, что я [вырезано цензурой][вырезано цензурой][вырезано цензурой]...

я ведь действительно пытался сделать flasm -a file.swf!!!

какой день без выходных работаю по 12 часов, так что похоже уже не в себе )))

Chel1 12.07.2008 19:45

спасибо за помощь, реально пока не написал руками процедуру того, что делаю, так и не воткнул что делаю идиотизм


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

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