Показать сообщение отдельно
Старый 21.11.2009, 13:23
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 8  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Тогда уж легче задать в этой swf-ке произвольное кол-во классов, и получать их экземпляры с помощью
Код AS3:
var InstClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition('имя_класса') as Class;
var inst:* = null;
if(InstClass){
	inst = new InstClass();
}else trace('Cannot resolve class');
Добавлено через 12 минут
Цитата:
Сообщение от yzhastik Посмотреть сообщение
тогда как его реализовать, можно пример пожалуйсто?
сам я не догадаюсь просто, как можно скопировать мувик...
Да, кстати, yzhastik, если вам нужно много раз получить один и тот же мувик, то вам этот метод как раз подойдёт.

Здесь loader – это экземпляр Loader, которым вы грузили swf-библиотеку. Также, если вы знаете базовый класс, то экземпляр лучше типизировать. Пусть, например, мы знаем, что мы храним в либе мувики либо спрайты (т.е. наследники DisplayObject). Тогда лучше будет написать

Код AS3:
var InstClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition('имя_класса') as Class;
var inst:DisplayObject = null;
if(InstClass){
	inst = new InstClass() as DisplayObject;
}else trace('Cannot resolve class');
Тогда в случае, если объявление такого класса содержится в библиотеке, и он действительно имеет в качестве базового класса класс DisplayObject, то в переменной inst у вас окажется нужный вам экземпляр. В противном случае inst будет равна null.

Метод же clone() раелизовывать нужно тогда, когда требуется скопировать объект вместе с его состоянием, то есть учитывая изменения, произошедшие в нём с момента создания.