|
|
|||||
Регистрация: Mar 2008
Сообщений: 259
|
Embed и CPU Usage
Проблема вот такая.
Имеем эмбеженную флешку так, чтобы сохранялись скрипты. Просто эмбед не подойдет, потому что трутся скрипты. [Embed (source="swf.swf", mimeType="application/octet-stream")] private static var swfClass:Class; public static var swfExample:MovieClip; private function init():void { var swfclass:Class = Class.swfClass; var loader:Loader = new Loader(); loader.loadBytes(new swfclass()); loader.contentLoaderInfo.addEventListener(Event.INIT,onInitCard); } private function onInitCard(e:Event):void { Class.swfExample = e.target.content; e.target.loader.unload(); e.target.removeEventListener(Event.INIT,onInitCard); } Конечно, ворк-эраунд - создания у флешки первого самого пустого кадра со стопом, который ничего тормозить не будет. Но может быть кто-то знает, как можно выгрузить этот экземпляр из памяти подчистую? P.S. что интересно, строчка - не вызывает никаких дополнительных висяков, т.е. что с ней, что без нее результат один. |
|
|||||
Регистрация: Mar 2008
Сообщений: 259
|
Эээ а комментарий к коду?
Если это код того, как остановить флешку, то я это прекрасно себе представляю. Но в конце я выделил, что дело происходит из-за экземпляра вот здесь: |
|
|||||
.
|
Цитата:
Цитата:
Ошибся немного. |
|
|||||
Регистрация: Mar 2008
Сообщений: 259
|
Иногда мне кажется, что аструмные флешеры со временем работы в аструме становятся все суровее и суровее
Итак, описываю еще раз. (stop - не решение, а workaround, который я в первом же посте и упомянул, мне НЕ нужен этот экземпляр в памяти). В чем разница между, как я сказал, между просто эмбедом и этим эмбедом. Этот эмбед: После загрузки сохранит все фреймскрипты Этот эмбед: и создание экземпляра этого класса для меня не сохраняет. Если научите, как их сохранить буду только рад. Далее просто дело в том, что после лоадинга заэмбеженного первым способом сообщения лишний и ненужный объект навеки провисает в памяти зачем-то. И как его оттуда выкинуть непонятно |
|
|||||
с помощью 10-чного unloadAndStop вроде бы удается избавится от экземпляра
и еще: если не хочется, чтоб висел в памяти, то логичнее хранить класс, а не экземпляр public static var swfExampleClass:Class; private function onInitCard(e:Event):void { var loaderInfo:LoaderInfo = e.target as LoaderInfo; loaderInfo.removeEventListener(Event.INIT,onInitCard); var clName:String = getQualifiedClassName(loaderInfo.content); Main.swfExampleClass = loaderInfo.applicationDomain.getDefinition(clName) as Class; loaderInfo.loader.unloadAndStop(); } Последний раз редактировалось silin; 13.06.2010 в 20:14. |
|
|||||
Регистрация: Mar 2008
Сообщений: 259
|
Я вот про анлоад проверил в первый раз, а вот по поводу того что класс хранить - это надо попробовать, что-то я не догадался как-то
P.S. А я вот делаю unload, а анлоадистоп не делаю, надо его еще попробовать, он оказывается круче чем просто стоп и анлоад отдельно Последний раз редактировалось Сайлас; 13.06.2010 в 20:57. |
|
|||||
.
|
Пляшите от того, в какой ApplicationDomain попадает загружаемый definition. Если будет хоть одна ссылка на этот app domain, либо на объект, инстанцированный из этого домена, то выгрузить этот домен не удастся.
|
Часовой пояс GMT +4, время: 18:38. |
|
« Предыдущая тема | Следующая тема » |
|
|