Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2009, 15:03
the_scratch вне форума Посмотреть профиль Отправить личное сообщение для the_scratch Найти все сообщения от the_scratch
  № 11  
Ответить с цитированием
the_scratch

Регистрация: May 2008
Сообщений: 19
Цитата:
Собственно, Вопрос. Мувики внутри библиотеки у меня ассоциированы с классом. А как их ассоциировать с классом при хранении снаружи SWF? Код класса где должен быть? Помогите. пожалуйста, разобраться.
А с тем, что память не чистится, ничего не сделать. Пока мувики не отгружены через removeMovieClip, память (занятую плеером под какие-то нужды для каждой картинки отдельно) так и будет занятой. Причём, насколько я понял из чтения интернетов, это касается и всё того же system.gc() из AS3.

Я повторю. Не факт, но есть надежда, что removeMovieClip (unloadMovie) освободит память, занятую картинками. Но возникает проблема: подгружаемый снаружи мувик должен быть чётко связан с определённым классом. Как это сделать, я не понимаю.

Старый 30.01.2009, 15:20
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Мувики показываются, память какое-то время отъедается, отъедается, потом, когда уже все картинки показаны хотя бы раз
...
Как я сейчас вижу решение? Хочу попробовать мувики-мультики хранить не в библиотеке внутри swf, а в виде отдельных файлов swf, и подгружать их через loadMovie, а не attachMovie, как сейчас
Вы сначала связку attachMovie - removeMovieClip попробуйте.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 30.01.2009, 15:51
the_scratch вне форума Посмотреть профиль Отправить личное сообщение для the_scratch Найти все сообщения от the_scratch
  № 13  
Ответить с цитированием
the_scratch

Регистрация: May 2008
Сообщений: 19
Связка attachMovie - removeMovieClip не работает.
Память не отдаётся.

Вообще-то, я это ещё утром пробовал.
По-моему, всё дело в том, что мувик по-прежнему в памяти - конкретно "в библиотеке".
Нужны отгружаемые/подгружаемые, внешние swf.

Вопрос, заданный в первом посте - как увязать подгружаемый мувик с конкретным классом?
Это во флеше вообще реально сделать? Без привязки к моей задаче? Можно или нет?


Последний раз редактировалось the_scratch; 30.01.2009 в 16:01.
Старый 30.01.2009, 18:25
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 14  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Можно. Определите классы в главном мувике. Для этого заставьте компилятор вкомпилить эти классы путем указания в первом (или нужном) кадре
Код AS1/AS2:
import AClass;
AClass;
При желани проверьте декомпилятором.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 02.02.2009, 15:42
the_scratch вне форума Посмотреть профиль Отправить личное сообщение для the_scratch Найти все сообщения от the_scratch
  № 15  
Ответить с цитированием
the_scratch

Регистрация: May 2008
Сообщений: 19
Я извиняюсь, а дальше?

Главный мувик будет знать про мой класс. Но если я делаю loadMovie, то подгруженный мувик не имеет никакого класса, он просто мувик, и всё. Просто мувик. Класса MovieClip. Как сделать, чтобы он был (стал) моим классом?

loadMovie(url:String,target:Object [, method:String]) : Void

target Ссылка на мувиклип или строковое представление пути к мувиклипу, в который будет производиться загрузка. Содержимое мувиклипа, в который происходит загрузка, будет замещено загруженным SWF файлом или изображением.


Если я сделаю так:
Код AS1/AS2:
var mc : MyClass = new MyClass();
loadMovie("file:///...", mc);
то mc, насколько я понял из описания, вообще забудет всё и вся.
Даже то, что он класса MyClass, -- и то забудет.
Или нет?

Старый 02.02.2009, 18:26
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 16  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
что-то типа этого:
Код AS1/AS2:
// 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!';
	}
}
Что-то такое есть у silin'a.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 02.02.2009 в 18:31.
Старый 04.02.2009, 13:30
the_scratch вне форума Посмотреть профиль Отправить личное сообщение для the_scratch Найти все сообщения от the_scratch
  № 17  
Ответить с цитированием
the_scratch

Регистрация: May 2008
Сообщений: 19
dimarik, спасибо. Я понял, опробовал, вроде работает.
Пока ещё не переписывал код, но кажется, всё получится и с размерами победим.

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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