![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2008
Сообщений: 19
|
Цитата:
Я повторю. Не факт, но есть надежда, что removeMovieClip (unloadMovie) освободит память, занятую картинками. Но возникает проблема: подгружаемый снаружи мувик должен быть чётко связан с определённым классом. Как это сделать, я не понимаю. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
Регистрация: May 2008
Сообщений: 19
|
Связка attachMovie - removeMovieClip не работает.
Память не отдаётся. Вообще-то, я это ещё утром пробовал. По-моему, всё дело в том, что мувик по-прежнему в памяти - конкретно "в библиотеке". Нужны отгружаемые/подгружаемые, внешние swf. Вопрос, заданный в первом посте - как увязать подгружаемый мувик с конкретным классом? Это во флеше вообще реально сделать? Без привязки к моей задаче? Можно или нет? Последний раз редактировалось the_scratch; 30.01.2009 в 16:01. |
|
|||||
|
.
|
Можно. Определите классы в главном мувике. Для этого заставьте компилятор вкомпилить эти классы путем указания в первом (или нужном) кадре
При желани проверьте декомпилятором. |
|
|||||
|
Регистрация: May 2008
Сообщений: 19
|
Я извиняюсь, а дальше?
Главный мувик будет знать про мой класс. Но если я делаю loadMovie, то подгруженный мувик не имеет никакого класса, он просто мувик, и всё. Просто мувик. Класса MovieClip. Как сделать, чтобы он был (стал) моим классом? loadMovie(url:String,target:Object [, method:String]) : Void target Ссылка на мувиклип или строковое представление пути к мувиклипу, в который будет производиться загрузка. Содержимое мувиклипа, в который происходит загрузка, будет замещено загруженным SWF файлом или изображением. Если я сделаю так: то mc, насколько я понял из описания, вообще забудет всё и вся. Даже то, что он класса MyClass, -- и то забудет. Или нет? |
|
|||||
|
.
|
что-то типа этого:
// File main.swf import AClass; var aClassInstance:AClass; var mcl:MovieClipLoader = new MovieClipLoader(); this.mcl.addListener(this); this.mcl.loadClip('external.swf'); this.onLoadInit = function(target:MovieClip) { this.mcl.removeListener(this); delete this.mcl; this.aClassInstance = AClass.assign(target); trace( this.aClassInstance.isAlive() ); } //----------------------------- // File AClass.as //----------------------------- class AClass { public static function assign(mc:MovieClip):AClass { if (!mc) return null; var c:Function = AClass; mc.__proto__ = c.prototype; c.call(mc); return AClass(mc); } /** * Constructor. */ private function AClass() { super(); trace("AClass constructor"); } public function isAlive():String { return 'Yheee, I am real alive!'; } } Последний раз редактировалось dimarik; 02.02.2009 в 18:31. |
|
|||||
|
Регистрация: May 2008
Сообщений: 19
|
dimarik, спасибо. Я понял, опробовал, вроде работает.
Пока ещё не переписывал код, но кажется, всё получится и с размерами победим. |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|