Показать сообщение отдельно
Старый 18.02.2007, 01:55
wonderwhy вне форума Посмотреть профиль Отправить личное сообщение для wonderwhy Найти все сообщения от wonderwhy
  № 1  
Ответить с цитированием
wonderwhy
 
Аватар для wonderwhy

Регистрация: Sep 2005
Сообщений: 30
Cool Подгрузка методов из swf

Я занимаюсь написанием библиотеки, которая может дополняться из вне. Тоесть swf работает с сервером, и сервер вызывает какуе-то функциональность у swf. В случае её отсутствия, сервер предоставляет ссылку на swf модуль с функциональностью. В общем-то я предполагал, что будет невидимый movieclip в который будут погружаться swf. Я провёл кое-какое тестирование и обнаружил что это не обязательно.
Я создал 2 файла. Тот, который подгружает и тот, который подгружается.

Код:
function Func()
{
	trace("Hello from "+this);//Owner name output.
}
_root.FC = Func;//function upload to _root
Это программа из которой берёться функция.
Код:
var MCL:MovieClipLoader = new MovieClipLoader();
var l1:Object = new Object();//listener object
l1.onLoadInit = function(mc) {
	trace("1");
	_root.Target.Func();//i am trying to call function from uplaoded MC
	trace("2");	
	_root.FC();//i am trying to call function that was copyed from uplaoded MC
	trace("3");
	_root.Target.removeMovieClip();
	_root.Target.Func();	//trying to call function after removal
	trace("4");
	_root.FC();	//caling copyed function
};
MCL.addListener(l1);
_root.createEmptyMovieClip("Target",0);
MCL.loadClip("HelloWorld.swf", _root.Target);//Uploaded file should be in the same directory as this swf
А это программа, которая подгружает функции.
При запуске я получаю следующий вывод:
1
Hello from _level0.Target
2
Hello from _level0
3
4
Hello from _level0

Выходит что, не смотря на удаление MC предоставившего функцию функция в текущем MC не перестаёт работать.
Я бы хотел поинтересоваться у местных Guru, на сколько корректно так поступать и может ли это привести к ошибкам.