BuKT
20.06.2011, 15:48
AS2. Версия флешплеера 8. Проект большой. Итоговая SWF чуть-чуть недотягивает до 50 метров. Есть прелоадер, вшитый в первый кадр и на некотором кадре есть вызов статичного свойства класса. Выглядит это примерно так:
var someVar:String = SomeClass.someClassVar
Помимо этого класса (приведённого ниже) остальной код вшит во FLA и посмотреть я его не могу.
SomeClass.as из себя представляет класс, инстанс которого никогда не создаётся и выглядит так:
class SomeClass {
static var someClassVar:String = 'asdf';
static var someOtherClassVar:String = 'zxcv';
function SomeClass() {
}
}
У меня стоит задача: при помощи консольного (линухового, если это важно) mtasc "переписать" уже вшитый в SWF класс SomeClass моим изменённым SomeClass, отличающийся только значением статичных переменных.
Делаю следующий запрос к mtasc:
mtasc -swf SomeSWF.swf SomeClass.as -v
На что он мне отвечает:
ClassPath <...>
Parsed /usr/local/bin/std/StdPresent.as
Parsed /usr/local/bin/std/Object.as
Parsed /usr/local/bin/std/Boolean.as
Parsed /usr/local/bin/std/String.as
Parsed /usr/local/bin/std/Number.as
Parsed /usr/local/bin/std/Array.as
Parsed /usr/local/bin/std/Function.as
Parsed SomeClass.as
Typing SomeClass.SomeClass
Parsed /usr/local/bin/std/TopLevel.as
Parsed /usr/local/bin/std/MovieClip.as
Parsed /usr/local/bin/std/ContextMenu.as
Parsed /usr/local/bin/std/TextSnapshot.as
Parsed /usr/local/bin/std/FunctionArguments.as
Fatal error: exception Invalid_argument("String.create")
Что я делаю не так и в какую сторону мне копать?
Добавлено через 17 часов 36 минут
Где-то на французском форуме через гугля вычитал, что мтаск не гарантирует работу с swf > 15 МБ. Действительно ли это так?
Проблему частично решил через swfmill, конвертнув в свф и с превеликой радостью заменив одну строку в стометровой XML. Неужели теперь придётся всегда так? *Смурно глядит на большую коллекцию подобных файлов*
var someVar:String = SomeClass.someClassVar
Помимо этого класса (приведённого ниже) остальной код вшит во FLA и посмотреть я его не могу.
SomeClass.as из себя представляет класс, инстанс которого никогда не создаётся и выглядит так:
class SomeClass {
static var someClassVar:String = 'asdf';
static var someOtherClassVar:String = 'zxcv';
function SomeClass() {
}
}
У меня стоит задача: при помощи консольного (линухового, если это важно) mtasc "переписать" уже вшитый в SWF класс SomeClass моим изменённым SomeClass, отличающийся только значением статичных переменных.
Делаю следующий запрос к mtasc:
mtasc -swf SomeSWF.swf SomeClass.as -v
На что он мне отвечает:
ClassPath <...>
Parsed /usr/local/bin/std/StdPresent.as
Parsed /usr/local/bin/std/Object.as
Parsed /usr/local/bin/std/Boolean.as
Parsed /usr/local/bin/std/String.as
Parsed /usr/local/bin/std/Number.as
Parsed /usr/local/bin/std/Array.as
Parsed /usr/local/bin/std/Function.as
Parsed SomeClass.as
Typing SomeClass.SomeClass
Parsed /usr/local/bin/std/TopLevel.as
Parsed /usr/local/bin/std/MovieClip.as
Parsed /usr/local/bin/std/ContextMenu.as
Parsed /usr/local/bin/std/TextSnapshot.as
Parsed /usr/local/bin/std/FunctionArguments.as
Fatal error: exception Invalid_argument("String.create")
Что я делаю не так и в какую сторону мне копать?
Добавлено через 17 часов 36 минут
Где-то на французском форуме через гугля вычитал, что мтаск не гарантирует работу с swf > 15 МБ. Действительно ли это так?
Проблему частично решил через swfmill, конвертнув в свф и с превеликой радостью заменив одну строку в стометровой XML. Неужели теперь придётся всегда так? *Смурно глядит на большую коллекцию подобных файлов*